From 57ab2b93d74f3eef8ab4730fc7262304fd6eb163 Mon Sep 17 00:00:00 2001 From: Jan Melcher Date: Wed, 31 Jul 2024 15:25:16 +0200 Subject: [PATCH] refactor: update to TypeScript 5.5 and fix an issue it found getEnumTypes() actually had a wrong type signature, which TS 5.5 is able to report as an error. --- package-lock.json | 14 ++++----- package.json | 2 +- src/schema/schema-utils.ts | 64 +++++++++++--------------------------- 3 files changed, 27 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index e3ea6086..9351a7e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -58,7 +58,7 @@ "rimraf": "^3.0.2", "stats-lite": "^2.2.0", "ts-node": "^10.8.2", - "typescript": "~5.4.5" + "typescript": "~5.5.4" }, "engines": { "node": ">=18.0.0", @@ -6587,9 +6587,9 @@ } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -11869,9 +11869,9 @@ } }, "typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "dev": true }, "unbox-primitive": { diff --git a/package.json b/package.json index 45eec7bc..da78df11 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "rimraf": "^3.0.2", "stats-lite": "^2.2.0", "ts-node": "^10.8.2", - "typescript": "~5.4.5" + "typescript": "~5.5.4" }, "dependencies": { "@graphql-tools/schema": "^8.5.0", diff --git a/src/schema/schema-utils.ts b/src/schema/schema-utils.ts index 286fc788..3e1bd9f5 100644 --- a/src/schema/schema-utils.ts +++ b/src/schema/schema-utils.ts @@ -30,82 +30,56 @@ import { CORE_SCALARS } from './graphql-base'; * @returns {ReadonlyArray} */ export function getObjectTypes(model: DocumentNode): ReadonlyArray { - return >( - model.definitions.filter((def) => def.kind === Kind.OBJECT_TYPE_DEFINITION) - ); + return model.definitions.filter((def) => def.kind === Kind.OBJECT_TYPE_DEFINITION); } -export function getEnumTypes(model: DocumentNode): ReadonlyArray { - return >( - model.definitions.filter((def) => def.kind === Kind.ENUM_TYPE_DEFINITION) - ); +export function getEnumTypes(model: DocumentNode): ReadonlyArray { + return model.definitions.filter((def) => def.kind === Kind.ENUM_TYPE_DEFINITION); } /** * Get all @link ObjectTypeDefinitionNode annotated with @rootEntity directive of a model. - * @param {DocumentNode} model (ast) - * @returns {ReadonlyArray} */ export function getRootEntityTypes(model: DocumentNode): ReadonlyArray { - return >( - model.definitions.filter( - (def) => - def.kind === Kind.OBJECT_TYPE_DEFINITION && - def.directives && - def.directives.some((directive) => directive.name.value === ROOT_ENTITY_DIRECTIVE), - ) + return getObjectTypes(model).filter( + (def) => + def.directives && + def.directives.some((directive) => directive.name.value === ROOT_ENTITY_DIRECTIVE), ); } /** * Get all @link ObjectTypeDefinitionNode annotated with @childEntity directive of a model. - * @param {DocumentNode} model (ast) - * @returns {ReadonlyArray} */ export function getChildEntityTypes(model: DocumentNode): ReadonlyArray { - return >( - model.definitions.filter( - (def) => - def.kind === Kind.OBJECT_TYPE_DEFINITION && - def.directives && - def.directives.some((directive) => directive.name.value === CHILD_ENTITY_DIRECTIVE), - ) + return getObjectTypes(model).filter( + (def) => + def.directives && + def.directives.some((directive) => directive.name.value === CHILD_ENTITY_DIRECTIVE), ); } /** * Get all @link ObjectTypeDefinitionNode annotated with @entityExtension directive of a model. - * @param {DocumentNode} model (ast) - * @returns {ReadonlyArray} */ export function getEntityExtensionTypes( model: DocumentNode, ): ReadonlyArray { - return >( - model.definitions.filter( - (def) => - def.kind === Kind.OBJECT_TYPE_DEFINITION && - def.directives && - def.directives.some( - (directive) => directive.name.value === ENTITY_EXTENSION_DIRECTIVE, - ), - ) + return getObjectTypes(model).filter( + (def) => + def.directives && + def.directives.some((directive) => directive.name.value === ENTITY_EXTENSION_DIRECTIVE), ); } /** * Get all @link ObjectTypeDefinitionNode annotated with @valueObject directive of a model. - * @param {DocumentNode} model (ast) - * @returns {ReadonlyArray} */ export function getValueObjectTypes(model: DocumentNode): ReadonlyArray { - return >( - model.definitions.filter( - (def) => - def.kind === Kind.OBJECT_TYPE_DEFINITION && - def.directives && - def.directives.some((directive) => directive.name.value === VALUE_OBJECT_DIRECTIVE), - ) + return getObjectTypes(model).filter( + (def) => + def.directives && + def.directives.some((directive) => directive.name.value === VALUE_OBJECT_DIRECTIVE), ); }