@graphitation/supermassive 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintcache +1 -1
- package/CHANGELOG.md +18 -2
- package/lib/index.d.ts +17 -14
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +24 -8
- package/lib/index.js.map +3 -3
- package/lib/index.mjs +24 -18
- package/lib/index.mjs.map +3 -3
- package/lib/legacyAST/TypedAST.d.ts +366 -0
- package/lib/legacyAST/TypedAST.d.ts.map +1 -0
- package/lib/legacyAST/TypedAST.js +16 -0
- package/lib/legacyAST/TypedAST.js.map +7 -0
- package/lib/legacyAST/TypedAST.mjs +0 -0
- package/lib/legacyAST/TypedAST.mjs.map +7 -0
- package/lib/legacyAST/addTypesToRequestDocument.d.ts +6 -0
- package/lib/legacyAST/addTypesToRequestDocument.d.ts.map +1 -0
- package/lib/legacyAST/addTypesToRequestDocument.js +161 -0
- package/lib/legacyAST/addTypesToRequestDocument.js.map +7 -0
- package/lib/legacyAST/addTypesToRequestDocument.mjs +153 -0
- package/lib/legacyAST/addTypesToRequestDocument.mjs.map +7 -0
- package/lib/legacyAST/annotateDocumentGraphQLTransform.d.ts +3 -0
- package/lib/legacyAST/annotateDocumentGraphQLTransform.d.ts.map +1 -0
- package/lib/legacyAST/annotateDocumentGraphQLTransform.js +34 -0
- package/lib/legacyAST/annotateDocumentGraphQLTransform.js.map +7 -0
- package/lib/legacyAST/annotateDocumentGraphQLTransform.mjs +17 -0
- package/lib/legacyAST/annotateDocumentGraphQLTransform.mjs.map +7 -0
- package/lib/legacyAST/index.d.ts +4 -0
- package/lib/legacyAST/index.d.ts.map +1 -0
- package/lib/legacyAST/index.js +26 -0
- package/lib/legacyAST/index.js.map +7 -0
- package/lib/legacyAST/index.mjs +7 -0
- package/lib/legacyAST/index.mjs.map +7 -0
- package/lib/schema/definition.d.ts +31 -2
- package/lib/schema/definition.d.ts.map +1 -1
- package/lib/schema/definition.js +67 -5
- package/lib/schema/definition.js.map +3 -3
- package/lib/schema/definition.mjs +67 -4
- package/lib/schema/definition.mjs.map +2 -2
- package/lib/schema/directives.d.ts.map +1 -1
- package/lib/schema/directives.js +22 -1
- package/lib/schema/directives.js.map +2 -2
- package/lib/schema/directives.mjs +23 -1
- package/lib/schema/directives.mjs.map +2 -2
- package/lib/utilities/encodeASTSchema.d.ts.map +1 -1
- package/lib/utilities/encodeASTSchema.js +16 -1
- package/lib/utilities/encodeASTSchema.js.map +3 -3
- package/lib/utilities/encodeASTSchema.mjs +18 -2
- package/lib/utilities/encodeASTSchema.mjs.map +3 -3
- package/lib/utilities/extractMinimalViableSchemaForRequestDocument.d.ts.map +1 -1
- package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js +2 -2
- package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js.map +2 -2
- package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs +3 -2
- package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs.map +2 -2
- package/lib/values.d.ts.map +1 -1
- package/lib/values.js +1 -1
- package/lib/values.js.map +2 -2
- package/lib/values.mjs +4 -3
- package/lib/values.mjs.map +2 -2
- package/package.json +3 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/schema/definition.ts"],
|
|
4
|
-
"sourcesContent": ["import { isSpecifiedScalarType } from \"./resolvers\";\nimport { TypeName, TypeReference, typeNameFromReference } from \"./reference\";\n\n// Perf: const enums are inlined in the build (+small integers are stored on the stack in v8)\n// IMPORTANT: const enums MUST NOT be exported, otherwise esbuild struggles to inline them: use exported functions\nconst enum TypeKind {\n SCALAR = 1,\n OBJECT = 2,\n INTERFACE = 3,\n UNION = 4,\n ENUM = 5,\n INPUT = 6,\n}\n\nexport type ScalarTypeDefinitionTuple = [\n kind: TypeKind.SCALAR,\n // directives?: DirectiveTuple[], // TODO ?\n];\n\nexport type ObjectTypeDefinitionTuple = [\n kind: TypeKind.OBJECT,\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n // directives?: DirectiveTuple[],\n];\nconst enum ObjectKeys {\n fields = 1,\n interfaces = 2,\n}\n\nexport type InterfaceTypeDefinitionTuple = [\n kind: TypeKind.INTERFACE,\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n // directives?: DirectiveTuple[],\n];\nconst enum InterfaceKeys {\n fields = 1,\n interfaces = 2,\n}\n\nexport type UnionTypeDefinitionTuple = [\n kind: TypeKind.UNION,\n types: TypeName[],\n // directives?: DirectiveTuple[],\n];\nconst enum UnionKeys {\n types = 1,\n}\n\nexport type EnumTypeDefinitionTuple = [\n kind: TypeKind.ENUM,\n values: string[],\n // directives?: DirectiveTuple[],\n];\nconst enum EnumKeys {\n values = 1,\n}\n\nexport type InputObjectTypeDefinitionTuple = [\n kind: TypeKind.INPUT,\n fields: InputValueDefinitionRecord,\n // directives?: DirectiveTuple[],\n];\nconst enum InputObjectKeys {\n fields = 1,\n}\n\nexport type TypeDefinitionTuple =\n | ScalarTypeDefinitionTuple\n | ObjectTypeDefinitionTuple\n | InterfaceTypeDefinitionTuple\n | UnionTypeDefinitionTuple\n | EnumTypeDefinitionTuple\n | InputObjectTypeDefinitionTuple;\n\nexport type CompositeTypeTuple =\n | ObjectTypeDefinitionTuple\n | InterfaceTypeDefinitionTuple\n | UnionTypeDefinitionTuple;\n\nexport type FieldDefinitionTuple = [\n type: TypeReference,\n arguments: InputValueDefinitionRecord,\n // directives?: DirectiveTuple[],\n];\nconst enum FieldKeys {\n type = 0,\n arguments = 1,\n}\nexport type FieldDefinition = TypeReference | FieldDefinitionTuple;\nexport type FieldDefinitionRecord = Record<string, FieldDefinition>;\n\nexport type InputValueDefinitionTuple = [\n type: TypeReference,\n defaultValue: unknown,\n // directives?: DirectiveTuple[],\n];\nconst enum InputValueKeys {\n type = 0,\n defaultValue = 1,\n}\nexport type InputValueDefinition = TypeReference | InputValueDefinitionTuple;\nexport type InputValueDefinitionRecord = Record<string, InputValueDefinition>;\n\nexport type DirectiveName = string;\nexport type DirectiveTuple = [\n name: DirectiveName,\n arguments?: Record<string, unknown>, // JS values (cannot be a variable inside schema definition, so it is fine)\n];\nexport type DirectiveDefinitionTuple = [\n name: DirectiveName,\n arguments?: InputValueDefinitionRecord,\n];\nconst enum DirectiveKeys {\n name = 0,\n arguments = 1,\n}\n\nexport type TypeDefinitionsRecord = Record<TypeName, TypeDefinitionTuple>;\nexport type InterfaceImplementationsRecord = Record<TypeName, TypeName[]>;\n\nexport type OperationTypes = {\n query?: TypeName;\n mutation?: TypeName;\n subscription?: TypeName;\n};\n\nexport type SchemaDefinitions = {\n types: TypeDefinitionsRecord;\n directives?: DirectiveDefinitionTuple[];\n // implementations?: InterfaceImplementationsRecord; // TODO?\n};\n\nconst typeNameMetaFieldDef: FieldDefinition = \"String\";\nconst specifiedScalarDefinition: ScalarTypeDefinitionTuple = [TypeKind.SCALAR];\n\nexport function findObjectType(\n defs: SchemaDefinitions,\n typeName: TypeName,\n): ObjectTypeDefinitionTuple | undefined {\n const type = defs.types[typeName];\n return type?.[0] === TypeKind.OBJECT ? type : undefined;\n}\n\nexport function getObjectFields(\n def: ObjectTypeDefinitionTuple,\n): FieldDefinitionRecord {\n return def[ObjectKeys.fields];\n}\n\nexport function addInterfaceImplementation(\n defs: SchemaDefinitions,\n interfaceType: TypeName,\n objectType: TypeName,\n) {\n const iface = getInterfaceType(defs, interfaceType);\n const type = defs.types[objectType];\n\n if (!iface) {\n throw new Error(\n `Type ${interfaceType} either doesn't exist or is not an interface`,\n );\n }\n if (type && !isObjectTypeDefinition(type)) {\n throw new Error(`Type ${objectType} is not an object type`);\n }\n if (!type) {\n defs.types[objectType] = [\n TypeKind.OBJECT,\n Object.create(null),\n [interfaceType],\n ];\n return;\n }\n let knownInterfaces = type[ObjectKeys.interfaces];\n if (!knownInterfaces) {\n knownInterfaces = [];\n type[ObjectKeys.interfaces] = knownInterfaces;\n }\n if (!knownInterfaces.includes(interfaceType)) {\n knownInterfaces.push(interfaceType);\n }\n}\n\nexport function getField(\n defs: SchemaDefinitions,\n typeName: TypeName,\n fieldName: string,\n) {\n if (fieldName === \"__typename\") {\n return typeNameMetaFieldDef;\n }\n return (\n getOwnField(defs, typeName, fieldName) ??\n findInterfaceField(defs, typeName, fieldName)\n );\n}\n\nfunction getOwnField(\n defs: SchemaDefinitions,\n typeName: TypeName,\n fieldName: string,\n): FieldDefinition | undefined {\n const type = defs.types[typeName];\n if (!type) {\n return undefined;\n }\n if (type[0] === TypeKind.OBJECT) {\n return type[ObjectKeys.fields]?.[fieldName];\n }\n if (type[0] === TypeKind.INTERFACE) {\n return type[InterfaceKeys.fields]?.[fieldName];\n }\n return undefined;\n}\n\nfunction findInterfaceField(\n defs: SchemaDefinitions,\n typeName: TypeName,\n fieldName: string,\n) {\n const type = defs.types[typeName];\n if (!type) {\n return undefined;\n }\n if (type[0] === TypeKind.OBJECT && type[ObjectKeys.interfaces]) {\n return findField(defs, type[ObjectKeys.interfaces], fieldName);\n }\n if (type[0] === TypeKind.INTERFACE && type[InterfaceKeys.interfaces]) {\n return findField(defs, type[InterfaceKeys.interfaces], fieldName);\n }\n return undefined;\n}\n\nfunction findField(\n defs: SchemaDefinitions,\n interfaceTypes: TypeName[],\n fieldName: string,\n) {\n // TODO: merge field definition from all interface types to ensure all necessary arguments are present\n // (or maybe instead always encode all arguments in the schema fragment for simplicity?)\n for (const interfaceName of interfaceTypes) {\n const ownField = getOwnField(defs, interfaceName, fieldName);\n if (ownField !== undefined) {\n return ownField;\n }\n }\n return undefined;\n}\n\nexport function getInputObjectType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): InputObjectTypeDefinitionTuple | undefined {\n const type = defs.types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.INPUT ? type : undefined;\n}\n\nexport function getLeafType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): EnumTypeDefinitionTuple | ScalarTypeDefinitionTuple | undefined {\n const typeName = typeNameFromReference(typeRef);\n\n if (isSpecifiedScalarType(typeName)) {\n return specifiedScalarDefinition;\n }\n const type = defs.types[typeName];\n if (type?.[0] !== TypeKind.ENUM && type?.[0] !== TypeKind.SCALAR) {\n return undefined;\n }\n return type;\n}\n\nexport function isDefined(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: spec type\n return true;\n }\n const types = defs.types;\n const typeName = typeNameFromReference(typeRef);\n return !!types[typeName] || isSpecifiedScalarType(typeName);\n}\n\nexport function isInputType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are input types\n return true;\n }\n const typeName = typeNameFromReference(typeRef);\n const kind = defs.types[typeName]?.[0];\n return (\n isSpecifiedScalarType(typeName) ||\n kind === TypeKind.ENUM ||\n kind === TypeKind.INPUT ||\n kind === TypeKind.SCALAR\n );\n}\n\nexport function isObjectType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are scalars\n return false;\n }\n const types = defs.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.OBJECT;\n}\n\nexport function isAbstractType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are scalars\n return false;\n }\n const type =\n defs.types[typeRef] ?? defs.types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.UNION || type?.[0] === TypeKind.INTERFACE;\n}\n\nexport function getUnionType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): UnionTypeDefinitionTuple | undefined {\n const types = defs.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.UNION ? type : undefined;\n}\n\nexport function getInterfaceType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): InterfaceTypeDefinitionTuple | undefined {\n const types = defs.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.INTERFACE ? type : undefined;\n}\n\nexport function isSubType(\n defs: SchemaDefinitions,\n abstractTypeName: TypeName,\n maybeSubTypeName: TypeName,\n): boolean {\n const union = getUnionType(defs, abstractTypeName);\n if (union) {\n return union[UnionKeys.types].includes(maybeSubTypeName);\n }\n const object = findObjectType(defs, maybeSubTypeName);\n if (object) {\n return !!object[ObjectKeys.interfaces]?.includes(abstractTypeName);\n }\n const iface = getInterfaceType(defs, maybeSubTypeName);\n if (iface) {\n return !!iface[InterfaceKeys.interfaces]?.includes(abstractTypeName);\n }\n return false;\n}\n\nexport function getDirectiveName(tuple: DirectiveDefinitionTuple): string {\n return tuple[DirectiveKeys.name];\n}\n\nexport function isObjectTypeDefinition(\n type: TypeDefinitionTuple,\n): type is ObjectTypeDefinitionTuple {\n return type[0] === TypeKind.OBJECT;\n}\n\nexport function isUnionTypeDefinition(\n type: TypeDefinitionTuple,\n): type is UnionTypeDefinitionTuple {\n return type[0] === TypeKind.UNION;\n}\n\nexport function isInterfaceTypeDefinition(\n type: TypeDefinitionTuple,\n): type is InterfaceTypeDefinitionTuple {\n return type[0] === TypeKind.INTERFACE;\n}\n\nexport function isEnumTypeDefinition(\n type: TypeDefinitionTuple,\n): type is EnumTypeDefinitionTuple {\n return type[0] === TypeKind.ENUM;\n}\n\nexport function isScalarTypeDefinition(\n type: TypeDefinitionTuple,\n): type is ScalarTypeDefinitionTuple {\n return type[0] === TypeKind.SCALAR;\n}\n\nexport function isInputObjectTypeDefinition(\n type: TypeDefinitionTuple,\n): type is InputObjectTypeDefinitionTuple {\n return type[0] === TypeKind.INPUT;\n}\n\nexport function getInputValueTypeReference(\n inputValue: InputValueDefinition,\n): TypeReference {\n return Array.isArray(inputValue)\n ? inputValue[InputValueKeys.type]\n : inputValue;\n}\n\nexport function getInputObjectFields(\n obj: InputObjectTypeDefinitionTuple,\n): InputValueDefinitionRecord {\n return obj[InputObjectKeys.fields];\n}\n\nexport function getInputDefaultValue(\n inputValue: InputValueDefinition,\n): unknown | undefined {\n return Array.isArray(inputValue)\n ? inputValue[InputValueKeys.defaultValue]\n : undefined;\n}\n\nexport function getFields(\n def: ObjectTypeDefinitionTuple | InterfaceTypeDefinitionTuple,\n): FieldDefinitionRecord {\n return def[0] === TypeKind.OBJECT\n ? def[ObjectKeys.fields]\n : def[InterfaceKeys.fields];\n}\n\nexport function getFieldTypeReference(field: FieldDefinition): TypeReference {\n return Array.isArray(field) ? field[FieldKeys.type] : field;\n}\n\nexport function getFieldArgs(\n field: FieldDefinition,\n): InputValueDefinitionRecord | undefined {\n return Array.isArray(field) ? field[FieldKeys.arguments] : undefined;\n}\n\nexport function setFieldArgs(\n field: FieldDefinitionTuple,\n args: InputValueDefinitionRecord,\n): InputValueDefinitionRecord {\n field[FieldKeys.arguments] = args;\n return args;\n}\n\nexport function getEnumValues(tuple: EnumTypeDefinitionTuple): string[] {\n return tuple[EnumKeys.values];\n}\n\nexport function getDirectiveDefinitionArgs(\n directive: DirectiveDefinitionTuple,\n): InputValueDefinitionRecord | undefined {\n return directive[DirectiveKeys.arguments];\n}\n\nexport function setDirectiveDefinitionArgs(\n directive: DirectiveDefinitionTuple,\n args: InputValueDefinitionRecord,\n): InputValueDefinitionRecord {\n directive[DirectiveKeys.arguments] = args;\n return args;\n}\n\nexport function createUnionTypeDefinition(\n types: TypeName[],\n): UnionTypeDefinitionTuple {\n return [TypeKind.UNION, types];\n}\n\nexport function createInterfaceTypeDefinition(\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n): InterfaceTypeDefinitionTuple {\n return interfaces?.length\n ? [TypeKind.INTERFACE, fields, interfaces]\n : [TypeKind.INTERFACE, fields];\n}\n\nexport function createObjectTypeDefinition(\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n): ObjectTypeDefinitionTuple {\n return interfaces?.length\n ? [TypeKind.OBJECT, fields, interfaces]\n : [TypeKind.OBJECT, fields];\n}\n\nexport function createInputObjectTypeDefinition(\n fields: InputValueDefinitionRecord,\n): InputObjectTypeDefinitionTuple {\n return [TypeKind.INPUT, fields];\n}\n\nexport function createEnumTypeDefinition(\n values: string[],\n): EnumTypeDefinitionTuple {\n return [TypeKind.ENUM, values];\n}\n\nexport function createScalarTypeDefinition(): ScalarTypeDefinitionTuple {\n return [TypeKind.SCALAR];\n}\n\nexport function getObjectTypeInterfaces(\n def: ObjectTypeDefinitionTuple,\n): TypeName[] {\n return def[ObjectKeys.interfaces] ?? [];\n}\n\nexport function getInterfaceTypeInterfaces(\n def: InterfaceTypeDefinitionTuple,\n): TypeName[] {\n return def[InterfaceKeys.interfaces] ?? [];\n}\n\nexport function getUnionTypeMembers(\n tuple: UnionTypeDefinitionTuple,\n): TypeName[] {\n return tuple[UnionKeys.types];\n}\n\nexport function getDefinitionArguments(\n def: FieldDefinition | DirectiveDefinitionTuple,\n): InputValueDefinitionRecord | undefined {\n // Note: both FieldDefinition and DirectiveDefinition store arguments at the same position\n return Array.isArray(def) ? def[FieldKeys.arguments] : undefined;\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAsC;AACtC,uBAA+D;AAI/D,IAAW,WAAX,kBAAWA,cAAX;AACE,EAAAA,oBAAA,YAAS,KAAT;AACA,EAAAA,oBAAA,YAAS,KAAT;AACA,EAAAA,oBAAA,eAAY,KAAZ;AACA,EAAAA,oBAAA,WAAQ,KAAR;AACA,EAAAA,oBAAA,UAAO,KAAP;AACA,EAAAA,oBAAA,WAAQ,KAAR;AANS,SAAAA;AAAA,GAAA;AAoBX,IAAW,aAAX,kBAAWC,gBAAX;AACE,EAAAA,wBAAA,YAAS,KAAT;AACA,EAAAA,wBAAA,gBAAa,KAAb;AAFS,SAAAA;AAAA,GAAA;AAWX,IAAW,gBAAX,kBAAWC,mBAAX;AACE,EAAAA,8BAAA,YAAS,KAAT;AACA,EAAAA,8BAAA,gBAAa,KAAb;AAFS,SAAAA;AAAA,GAAA;AAUX,IAAW,YAAX,kBAAWC,eAAX;AACE,EAAAA,sBAAA,WAAQ,KAAR;AADS,SAAAA;AAAA,GAAA;AASX,IAAW,WAAX,kBAAWC,cAAX;AACE,EAAAA,oBAAA,YAAS,KAAT;AADS,SAAAA;AAAA,GAAA;AASX,IAAW,kBAAX,kBAAWC,qBAAX;AACE,EAAAA,kCAAA,YAAS,KAAT;AADS,SAAAA;AAAA,GAAA;AAsBX,IAAW,YAAX,kBAAWC,eAAX;AACE,EAAAA,sBAAA,UAAO,KAAP;AACA,EAAAA,sBAAA,eAAY,KAAZ;AAFS,SAAAA;AAAA,GAAA;AAYX,IAAW,iBAAX,kBAAWC,oBAAX;AACE,EAAAA,gCAAA,UAAO,KAAP;AACA,EAAAA,gCAAA,kBAAe,KAAf;AAFS,SAAAA;AAAA,GAAA;
|
|
6
|
-
"names": ["TypeKind", "ObjectKeys", "InterfaceKeys", "UnionKeys", "EnumKeys", "InputObjectKeys", "FieldKeys", "InputValueKeys", "DirectiveKeys"]
|
|
4
|
+
"sourcesContent": ["import {\n DirectiveLocation as GraphQLDirectiveLocation,\n DirectiveLocationEnum,\n} from \"graphql\";\nimport { isSpecifiedScalarType } from \"./resolvers\";\nimport { TypeName, TypeReference, typeNameFromReference } from \"./reference\";\n\n// Perf: const enums are inlined in the build (+small integers are stored on the stack in v8)\n// IMPORTANT: const enums MUST NOT be exported, otherwise esbuild struggles to inline them: use exported functions\nconst enum TypeKind {\n SCALAR = 1,\n OBJECT = 2,\n INTERFACE = 3,\n UNION = 4,\n ENUM = 5,\n INPUT = 6,\n}\n\nexport type ScalarTypeDefinitionTuple = [\n kind: TypeKind.SCALAR,\n // directives?: DirectiveTuple[], // TODO ?\n];\n\nexport type ObjectTypeDefinitionTuple = [\n kind: TypeKind.OBJECT,\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n // directives?: DirectiveTuple[],\n];\nconst enum ObjectKeys {\n fields = 1,\n interfaces = 2,\n}\n\nexport type InterfaceTypeDefinitionTuple = [\n kind: TypeKind.INTERFACE,\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n // directives?: DirectiveTuple[],\n];\nconst enum InterfaceKeys {\n fields = 1,\n interfaces = 2,\n}\n\nexport type UnionTypeDefinitionTuple = [\n kind: TypeKind.UNION,\n types: TypeName[],\n // directives?: DirectiveTuple[],\n];\nconst enum UnionKeys {\n types = 1,\n}\n\nexport type EnumTypeDefinitionTuple = [\n kind: TypeKind.ENUM,\n values: string[],\n // directives?: DirectiveTuple[],\n];\nconst enum EnumKeys {\n values = 1,\n}\n\nexport type InputObjectTypeDefinitionTuple = [\n kind: TypeKind.INPUT,\n fields: InputValueDefinitionRecord,\n // directives?: DirectiveTuple[],\n];\nconst enum InputObjectKeys {\n fields = 1,\n}\n\nexport type TypeDefinitionTuple =\n | ScalarTypeDefinitionTuple\n | ObjectTypeDefinitionTuple\n | InterfaceTypeDefinitionTuple\n | UnionTypeDefinitionTuple\n | EnumTypeDefinitionTuple\n | InputObjectTypeDefinitionTuple;\n\nexport type CompositeTypeTuple =\n | ObjectTypeDefinitionTuple\n | InterfaceTypeDefinitionTuple\n | UnionTypeDefinitionTuple;\n\nexport type FieldDefinitionTuple = [\n type: TypeReference,\n arguments: InputValueDefinitionRecord,\n // directives?: DirectiveTuple[],\n];\nconst enum FieldKeys {\n type = 0,\n arguments = 1,\n}\nexport type FieldDefinition = TypeReference | FieldDefinitionTuple;\nexport type FieldDefinitionRecord = Record<string, FieldDefinition>;\n\nexport type InputValueDefinitionTuple = [\n type: TypeReference,\n defaultValue: unknown,\n // directives?: DirectiveTuple[],\n];\nconst enum InputValueKeys {\n type = 0,\n defaultValue = 1,\n}\nexport type InputValueDefinition = TypeReference | InputValueDefinitionTuple;\nexport type InputValueDefinitionRecord = Record<string, InputValueDefinition>;\n\nconst DirectiveLocation = {\n QUERY: 1,\n MUTATION: 2,\n SUBSCRIPTION: 3,\n FIELD: 4,\n FRAGMENT_DEFINITION: 5,\n FRAGMENT_SPREAD: 6,\n INLINE_FRAGMENT: 7,\n VARIABLE_DEFINITION: 8,\n /** Type System Definitions */\n SCHEMA: 9,\n SCALAR: 10,\n OBJECT: 11,\n FIELD_DEFINITION: 12,\n ARGUMENT_DEFINITION: 13,\n INTERFACE: 14,\n UNION: 15,\n ENUM: 16,\n ENUM_VALUE: 17,\n INPUT_OBJECT: 18,\n INPUT_FIELD_DEFINITION: 19,\n} as const;\ntype DirectiveLocation =\n (typeof DirectiveLocation)[keyof typeof DirectiveLocation];\nconst DirectiveLocationToGraphQL = {\n 1: GraphQLDirectiveLocation.QUERY,\n 2: GraphQLDirectiveLocation.MUTATION,\n 3: GraphQLDirectiveLocation.SUBSCRIPTION,\n 4: GraphQLDirectiveLocation.FIELD,\n 5: GraphQLDirectiveLocation.FRAGMENT_DEFINITION,\n 6: GraphQLDirectiveLocation.FRAGMENT_SPREAD,\n 7: GraphQLDirectiveLocation.INLINE_FRAGMENT,\n 8: GraphQLDirectiveLocation.VARIABLE_DEFINITION,\n /** Type System Definitions */\n 9: GraphQLDirectiveLocation.SCHEMA,\n 10: GraphQLDirectiveLocation.SCALAR,\n 11: GraphQLDirectiveLocation.OBJECT,\n 12: GraphQLDirectiveLocation.FIELD_DEFINITION,\n 13: GraphQLDirectiveLocation.ARGUMENT_DEFINITION,\n 14: GraphQLDirectiveLocation.INTERFACE,\n 15: GraphQLDirectiveLocation.UNION,\n 16: GraphQLDirectiveLocation.ENUM,\n 17: GraphQLDirectiveLocation.ENUM_VALUE,\n 18: GraphQLDirectiveLocation.INPUT_OBJECT,\n 19: GraphQLDirectiveLocation.INPUT_FIELD_DEFINITION,\n} as const;\n\nexport type DirectiveName = string;\nexport type DirectiveTuple = [\n name: DirectiveName,\n arguments: Record<string, unknown>, // JS values (cannot be a variable inside schema definition, so it is fine)\n];\nexport type DirectiveDefinitionTuple = [\n name: DirectiveName,\n locations: DirectiveLocation[],\n arguments?: InputValueDefinitionRecord,\n];\nconst enum DirectiveKeys {\n name = 0,\n locations = 1,\n arguments = 2,\n}\n\nexport type TypeDefinitionsRecord = Record<TypeName, TypeDefinitionTuple>;\nexport type InterfaceImplementationsRecord = Record<TypeName, TypeName[]>;\n\nexport type OperationTypes = {\n query?: TypeName;\n mutation?: TypeName;\n subscription?: TypeName;\n};\n\nexport type SchemaDefinitions = {\n types: TypeDefinitionsRecord;\n directives?: DirectiveDefinitionTuple[];\n // implementations?: InterfaceImplementationsRecord; // TODO?\n};\n\nconst typeNameMetaFieldDef: FieldDefinition = \"String\";\nconst specifiedScalarDefinition: ScalarTypeDefinitionTuple = [TypeKind.SCALAR];\n\nexport function findObjectType(\n defs: SchemaDefinitions,\n typeName: TypeName,\n): ObjectTypeDefinitionTuple | undefined {\n const type = defs.types[typeName];\n return type?.[0] === TypeKind.OBJECT ? type : undefined;\n}\n\nexport function getObjectFields(\n def: ObjectTypeDefinitionTuple,\n): FieldDefinitionRecord {\n return def[ObjectKeys.fields];\n}\n\nexport function addInterfaceImplementation(\n defs: SchemaDefinitions,\n interfaceType: TypeName,\n objectType: TypeName,\n) {\n const iface = getInterfaceType(defs, interfaceType);\n const type = defs.types[objectType];\n\n if (!iface) {\n throw new Error(\n `Type ${interfaceType} either doesn't exist or is not an interface`,\n );\n }\n if (type && !isObjectTypeDefinition(type)) {\n throw new Error(`Type ${objectType} is not an object type`);\n }\n if (!type) {\n defs.types[objectType] = [\n TypeKind.OBJECT,\n Object.create(null),\n [interfaceType],\n ];\n return;\n }\n let knownInterfaces = type[ObjectKeys.interfaces];\n if (!knownInterfaces) {\n knownInterfaces = [];\n type[ObjectKeys.interfaces] = knownInterfaces;\n }\n if (!knownInterfaces.includes(interfaceType)) {\n knownInterfaces.push(interfaceType);\n }\n}\n\nexport function getField(\n defs: SchemaDefinitions,\n typeName: TypeName,\n fieldName: string,\n) {\n if (fieldName === \"__typename\") {\n return typeNameMetaFieldDef;\n }\n return (\n getOwnField(defs, typeName, fieldName) ??\n findInterfaceField(defs, typeName, fieldName)\n );\n}\n\nfunction getOwnField(\n defs: SchemaDefinitions,\n typeName: TypeName,\n fieldName: string,\n): FieldDefinition | undefined {\n const type = defs.types[typeName];\n if (!type) {\n return undefined;\n }\n if (type[0] === TypeKind.OBJECT) {\n return type[ObjectKeys.fields]?.[fieldName];\n }\n if (type[0] === TypeKind.INTERFACE) {\n return type[InterfaceKeys.fields]?.[fieldName];\n }\n return undefined;\n}\n\nfunction findInterfaceField(\n defs: SchemaDefinitions,\n typeName: TypeName,\n fieldName: string,\n) {\n const type = defs.types[typeName];\n if (!type) {\n return undefined;\n }\n if (type[0] === TypeKind.OBJECT && type[ObjectKeys.interfaces]) {\n return findField(defs, type[ObjectKeys.interfaces], fieldName);\n }\n if (type[0] === TypeKind.INTERFACE && type[InterfaceKeys.interfaces]) {\n return findField(defs, type[InterfaceKeys.interfaces], fieldName);\n }\n return undefined;\n}\n\nfunction findField(\n defs: SchemaDefinitions,\n interfaceTypes: TypeName[],\n fieldName: string,\n) {\n // TODO: merge field definition from all interface types to ensure all necessary arguments are present\n // (or maybe instead always encode all arguments in the schema fragment for simplicity?)\n for (const interfaceName of interfaceTypes) {\n const ownField = getOwnField(defs, interfaceName, fieldName);\n if (ownField !== undefined) {\n return ownField;\n }\n }\n return undefined;\n}\n\nexport function getInputObjectType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): InputObjectTypeDefinitionTuple | undefined {\n const type = defs.types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.INPUT ? type : undefined;\n}\n\nexport function getLeafType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): EnumTypeDefinitionTuple | ScalarTypeDefinitionTuple | undefined {\n const typeName = typeNameFromReference(typeRef);\n\n if (isSpecifiedScalarType(typeName)) {\n return specifiedScalarDefinition;\n }\n const type = defs.types[typeName];\n if (type?.[0] !== TypeKind.ENUM && type?.[0] !== TypeKind.SCALAR) {\n return undefined;\n }\n return type;\n}\n\nexport function isDefined(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: spec type\n return true;\n }\n const types = defs.types;\n const typeName = typeNameFromReference(typeRef);\n return !!types[typeName] || isSpecifiedScalarType(typeName);\n}\n\nexport function isInputType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are input types\n return true;\n }\n const typeName = typeNameFromReference(typeRef);\n const kind = defs.types[typeName]?.[0];\n return (\n isSpecifiedScalarType(typeName) ||\n kind === TypeKind.ENUM ||\n kind === TypeKind.INPUT ||\n kind === TypeKind.SCALAR\n );\n}\n\nexport function isObjectType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are scalars\n return false;\n }\n const types = defs.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.OBJECT;\n}\n\nexport function isAbstractType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are scalars\n return false;\n }\n const type =\n defs.types[typeRef] ?? defs.types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.UNION || type?.[0] === TypeKind.INTERFACE;\n}\n\nexport function getUnionType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): UnionTypeDefinitionTuple | undefined {\n const types = defs.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.UNION ? type : undefined;\n}\n\nexport function getInterfaceType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): InterfaceTypeDefinitionTuple | undefined {\n const types = defs.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.INTERFACE ? type : undefined;\n}\n\nexport function isSubType(\n defs: SchemaDefinitions,\n abstractTypeName: TypeName,\n maybeSubTypeName: TypeName,\n): boolean {\n const union = getUnionType(defs, abstractTypeName);\n if (union) {\n return union[UnionKeys.types].includes(maybeSubTypeName);\n }\n const object = findObjectType(defs, maybeSubTypeName);\n if (object) {\n return !!object[ObjectKeys.interfaces]?.includes(abstractTypeName);\n }\n const iface = getInterfaceType(defs, maybeSubTypeName);\n if (iface) {\n return !!iface[InterfaceKeys.interfaces]?.includes(abstractTypeName);\n }\n return false;\n}\n\nexport function getDirectiveName(tuple: DirectiveDefinitionTuple): string {\n return tuple[DirectiveKeys.name];\n}\n\nexport function getDirectiveLocations(\n tuple: DirectiveDefinitionTuple,\n): DirectiveLocation[] {\n return tuple[DirectiveKeys.locations];\n}\n\nexport function encodeDirectiveLocation(\n location: DirectiveLocationEnum,\n): DirectiveLocation {\n return DirectiveLocation[location];\n}\nexport function decodeDirectiveLocation(\n location: DirectiveLocation,\n): DirectiveLocationEnum {\n return DirectiveLocationToGraphQL[location];\n}\n\nexport function isObjectTypeDefinition(\n type: TypeDefinitionTuple,\n): type is ObjectTypeDefinitionTuple {\n return type[0] === TypeKind.OBJECT;\n}\n\nexport function isUnionTypeDefinition(\n type: TypeDefinitionTuple,\n): type is UnionTypeDefinitionTuple {\n return type[0] === TypeKind.UNION;\n}\n\nexport function isInterfaceTypeDefinition(\n type: TypeDefinitionTuple,\n): type is InterfaceTypeDefinitionTuple {\n return type[0] === TypeKind.INTERFACE;\n}\n\nexport function isEnumTypeDefinition(\n type: TypeDefinitionTuple,\n): type is EnumTypeDefinitionTuple {\n return type[0] === TypeKind.ENUM;\n}\n\nexport function isScalarTypeDefinition(\n type: TypeDefinitionTuple,\n): type is ScalarTypeDefinitionTuple {\n return type[0] === TypeKind.SCALAR;\n}\n\nexport function isInputObjectTypeDefinition(\n type: TypeDefinitionTuple,\n): type is InputObjectTypeDefinitionTuple {\n return type[0] === TypeKind.INPUT;\n}\n\nexport function getInputValueTypeReference(\n inputValue: InputValueDefinition,\n): TypeReference {\n return Array.isArray(inputValue)\n ? inputValue[InputValueKeys.type]\n : inputValue;\n}\n\nexport function getInputObjectFields(\n obj: InputObjectTypeDefinitionTuple,\n): InputValueDefinitionRecord {\n return obj[InputObjectKeys.fields];\n}\n\nexport function getInputDefaultValue(\n inputValue: InputValueDefinition,\n): unknown | undefined {\n return Array.isArray(inputValue)\n ? inputValue[InputValueKeys.defaultValue]\n : undefined;\n}\n\nexport function getFields(\n def: ObjectTypeDefinitionTuple | InterfaceTypeDefinitionTuple,\n): FieldDefinitionRecord {\n return def[0] === TypeKind.OBJECT\n ? def[ObjectKeys.fields]\n : def[InterfaceKeys.fields];\n}\n\nexport function getFieldTypeReference(field: FieldDefinition): TypeReference {\n return Array.isArray(field) ? field[FieldKeys.type] : field;\n}\n\nexport function getFieldArgs(\n field: FieldDefinition,\n): InputValueDefinitionRecord | undefined {\n return Array.isArray(field) ? field[FieldKeys.arguments] : undefined;\n}\n\nexport function setFieldArgs(\n field: FieldDefinitionTuple,\n args: InputValueDefinitionRecord,\n): InputValueDefinitionRecord {\n field[FieldKeys.arguments] = args;\n return args;\n}\n\nexport function getEnumValues(tuple: EnumTypeDefinitionTuple): string[] {\n return tuple[EnumKeys.values];\n}\n\nexport function getDirectiveDefinitionArgs(\n directive: DirectiveDefinitionTuple,\n): InputValueDefinitionRecord | undefined {\n return directive[DirectiveKeys.arguments];\n}\n\nexport function setDirectiveDefinitionArgs(\n directive: DirectiveDefinitionTuple,\n args: InputValueDefinitionRecord,\n): InputValueDefinitionRecord {\n directive[DirectiveKeys.arguments] = args;\n return args;\n}\n\nexport function createUnionTypeDefinition(\n types: TypeName[],\n): UnionTypeDefinitionTuple {\n return [TypeKind.UNION, types];\n}\n\nexport function createInterfaceTypeDefinition(\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n): InterfaceTypeDefinitionTuple {\n return interfaces?.length\n ? [TypeKind.INTERFACE, fields, interfaces]\n : [TypeKind.INTERFACE, fields];\n}\n\nexport function createObjectTypeDefinition(\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n): ObjectTypeDefinitionTuple {\n return interfaces?.length\n ? [TypeKind.OBJECT, fields, interfaces]\n : [TypeKind.OBJECT, fields];\n}\n\nexport function createInputObjectTypeDefinition(\n fields: InputValueDefinitionRecord,\n): InputObjectTypeDefinitionTuple {\n return [TypeKind.INPUT, fields];\n}\n\nexport function createEnumTypeDefinition(\n values: string[],\n): EnumTypeDefinitionTuple {\n return [TypeKind.ENUM, values];\n}\n\nexport function createScalarTypeDefinition(): ScalarTypeDefinitionTuple {\n return [TypeKind.SCALAR];\n}\n\nexport function getObjectTypeInterfaces(\n def: ObjectTypeDefinitionTuple,\n): TypeName[] {\n return def[ObjectKeys.interfaces] ?? [];\n}\n\nexport function getInterfaceTypeInterfaces(\n def: InterfaceTypeDefinitionTuple,\n): TypeName[] {\n return def[InterfaceKeys.interfaces] ?? [];\n}\n\nexport function getUnionTypeMembers(\n tuple: UnionTypeDefinitionTuple,\n): TypeName[] {\n return tuple[UnionKeys.types];\n}\n\nexport function getFieldArguments(\n def: FieldDefinition,\n): InputValueDefinitionRecord | undefined {\n return Array.isArray(def) ? def[FieldKeys.arguments] : undefined;\n}\n\nexport function getDirectiveArguments(\n def: DirectiveDefinitionTuple,\n): InputValueDefinitionRecord | undefined {\n return Array.isArray(def) ? def[DirectiveKeys.arguments] : undefined;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["TypeKind", "ObjectKeys", "InterfaceKeys", "UnionKeys", "EnumKeys", "InputObjectKeys", "FieldKeys", "InputValueKeys", "GraphQLDirectiveLocation", "DirectiveKeys"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,53 @@
|
|
|
1
1
|
// src/schema/definition.ts
|
|
2
|
+
import {
|
|
3
|
+
DirectiveLocation as GraphQLDirectiveLocation
|
|
4
|
+
} from "graphql";
|
|
2
5
|
import { isSpecifiedScalarType } from "./resolvers.mjs";
|
|
3
6
|
import { typeNameFromReference } from "./reference.mjs";
|
|
7
|
+
var DirectiveLocation = {
|
|
8
|
+
QUERY: 1,
|
|
9
|
+
MUTATION: 2,
|
|
10
|
+
SUBSCRIPTION: 3,
|
|
11
|
+
FIELD: 4,
|
|
12
|
+
FRAGMENT_DEFINITION: 5,
|
|
13
|
+
FRAGMENT_SPREAD: 6,
|
|
14
|
+
INLINE_FRAGMENT: 7,
|
|
15
|
+
VARIABLE_DEFINITION: 8,
|
|
16
|
+
/** Type System Definitions */
|
|
17
|
+
SCHEMA: 9,
|
|
18
|
+
SCALAR: 10,
|
|
19
|
+
OBJECT: 11,
|
|
20
|
+
FIELD_DEFINITION: 12,
|
|
21
|
+
ARGUMENT_DEFINITION: 13,
|
|
22
|
+
INTERFACE: 14,
|
|
23
|
+
UNION: 15,
|
|
24
|
+
ENUM: 16,
|
|
25
|
+
ENUM_VALUE: 17,
|
|
26
|
+
INPUT_OBJECT: 18,
|
|
27
|
+
INPUT_FIELD_DEFINITION: 19
|
|
28
|
+
};
|
|
29
|
+
var DirectiveLocationToGraphQL = {
|
|
30
|
+
1: GraphQLDirectiveLocation.QUERY,
|
|
31
|
+
2: GraphQLDirectiveLocation.MUTATION,
|
|
32
|
+
3: GraphQLDirectiveLocation.SUBSCRIPTION,
|
|
33
|
+
4: GraphQLDirectiveLocation.FIELD,
|
|
34
|
+
5: GraphQLDirectiveLocation.FRAGMENT_DEFINITION,
|
|
35
|
+
6: GraphQLDirectiveLocation.FRAGMENT_SPREAD,
|
|
36
|
+
7: GraphQLDirectiveLocation.INLINE_FRAGMENT,
|
|
37
|
+
8: GraphQLDirectiveLocation.VARIABLE_DEFINITION,
|
|
38
|
+
/** Type System Definitions */
|
|
39
|
+
9: GraphQLDirectiveLocation.SCHEMA,
|
|
40
|
+
10: GraphQLDirectiveLocation.SCALAR,
|
|
41
|
+
11: GraphQLDirectiveLocation.OBJECT,
|
|
42
|
+
12: GraphQLDirectiveLocation.FIELD_DEFINITION,
|
|
43
|
+
13: GraphQLDirectiveLocation.ARGUMENT_DEFINITION,
|
|
44
|
+
14: GraphQLDirectiveLocation.INTERFACE,
|
|
45
|
+
15: GraphQLDirectiveLocation.UNION,
|
|
46
|
+
16: GraphQLDirectiveLocation.ENUM,
|
|
47
|
+
17: GraphQLDirectiveLocation.ENUM_VALUE,
|
|
48
|
+
18: GraphQLDirectiveLocation.INPUT_OBJECT,
|
|
49
|
+
19: GraphQLDirectiveLocation.INPUT_FIELD_DEFINITION
|
|
50
|
+
};
|
|
4
51
|
var typeNameMetaFieldDef = "String";
|
|
5
52
|
var specifiedScalarDefinition = [1 /* SCALAR */];
|
|
6
53
|
function findObjectType(defs, typeName) {
|
|
@@ -161,6 +208,15 @@ function isSubType(defs, abstractTypeName, maybeSubTypeName) {
|
|
|
161
208
|
function getDirectiveName(tuple) {
|
|
162
209
|
return tuple[0 /* name */];
|
|
163
210
|
}
|
|
211
|
+
function getDirectiveLocations(tuple) {
|
|
212
|
+
return tuple[1 /* locations */];
|
|
213
|
+
}
|
|
214
|
+
function encodeDirectiveLocation(location) {
|
|
215
|
+
return DirectiveLocation[location];
|
|
216
|
+
}
|
|
217
|
+
function decodeDirectiveLocation(location) {
|
|
218
|
+
return DirectiveLocationToGraphQL[location];
|
|
219
|
+
}
|
|
164
220
|
function isObjectTypeDefinition(type) {
|
|
165
221
|
return type[0] === 2 /* OBJECT */;
|
|
166
222
|
}
|
|
@@ -205,10 +261,10 @@ function getEnumValues(tuple) {
|
|
|
205
261
|
return tuple[1 /* values */];
|
|
206
262
|
}
|
|
207
263
|
function getDirectiveDefinitionArgs(directive) {
|
|
208
|
-
return directive[
|
|
264
|
+
return directive[2 /* arguments */];
|
|
209
265
|
}
|
|
210
266
|
function setDirectiveDefinitionArgs(directive, args) {
|
|
211
|
-
directive[
|
|
267
|
+
directive[2 /* arguments */] = args;
|
|
212
268
|
return args;
|
|
213
269
|
}
|
|
214
270
|
function createUnionTypeDefinition(types) {
|
|
@@ -240,9 +296,12 @@ function getInterfaceTypeInterfaces(def) {
|
|
|
240
296
|
function getUnionTypeMembers(tuple) {
|
|
241
297
|
return tuple[1 /* types */];
|
|
242
298
|
}
|
|
243
|
-
function
|
|
299
|
+
function getFieldArguments(def) {
|
|
244
300
|
return Array.isArray(def) ? def[1 /* arguments */] : void 0;
|
|
245
301
|
}
|
|
302
|
+
function getDirectiveArguments(def) {
|
|
303
|
+
return Array.isArray(def) ? def[2 /* arguments */] : void 0;
|
|
304
|
+
}
|
|
246
305
|
export {
|
|
247
306
|
addInterfaceImplementation,
|
|
248
307
|
createEnumTypeDefinition,
|
|
@@ -251,13 +310,17 @@ export {
|
|
|
251
310
|
createObjectTypeDefinition,
|
|
252
311
|
createScalarTypeDefinition,
|
|
253
312
|
createUnionTypeDefinition,
|
|
313
|
+
decodeDirectiveLocation,
|
|
314
|
+
encodeDirectiveLocation,
|
|
254
315
|
findObjectType,
|
|
255
|
-
|
|
316
|
+
getDirectiveArguments,
|
|
256
317
|
getDirectiveDefinitionArgs,
|
|
318
|
+
getDirectiveLocations,
|
|
257
319
|
getDirectiveName,
|
|
258
320
|
getEnumValues,
|
|
259
321
|
getField,
|
|
260
322
|
getFieldArgs,
|
|
323
|
+
getFieldArguments,
|
|
261
324
|
getFieldTypeReference,
|
|
262
325
|
getFields,
|
|
263
326
|
getInputDefaultValue,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/schema/definition.ts"],
|
|
4
|
-
"sourcesContent": ["import { isSpecifiedScalarType } from \"./resolvers\";\nimport { TypeName, TypeReference, typeNameFromReference } from \"./reference\";\n\n// Perf: const enums are inlined in the build (+small integers are stored on the stack in v8)\n// IMPORTANT: const enums MUST NOT be exported, otherwise esbuild struggles to inline them: use exported functions\nconst enum TypeKind {\n SCALAR = 1,\n OBJECT = 2,\n INTERFACE = 3,\n UNION = 4,\n ENUM = 5,\n INPUT = 6,\n}\n\nexport type ScalarTypeDefinitionTuple = [\n kind: TypeKind.SCALAR,\n // directives?: DirectiveTuple[], // TODO ?\n];\n\nexport type ObjectTypeDefinitionTuple = [\n kind: TypeKind.OBJECT,\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n // directives?: DirectiveTuple[],\n];\nconst enum ObjectKeys {\n fields = 1,\n interfaces = 2,\n}\n\nexport type InterfaceTypeDefinitionTuple = [\n kind: TypeKind.INTERFACE,\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n // directives?: DirectiveTuple[],\n];\nconst enum InterfaceKeys {\n fields = 1,\n interfaces = 2,\n}\n\nexport type UnionTypeDefinitionTuple = [\n kind: TypeKind.UNION,\n types: TypeName[],\n // directives?: DirectiveTuple[],\n];\nconst enum UnionKeys {\n types = 1,\n}\n\nexport type EnumTypeDefinitionTuple = [\n kind: TypeKind.ENUM,\n values: string[],\n // directives?: DirectiveTuple[],\n];\nconst enum EnumKeys {\n values = 1,\n}\n\nexport type InputObjectTypeDefinitionTuple = [\n kind: TypeKind.INPUT,\n fields: InputValueDefinitionRecord,\n // directives?: DirectiveTuple[],\n];\nconst enum InputObjectKeys {\n fields = 1,\n}\n\nexport type TypeDefinitionTuple =\n | ScalarTypeDefinitionTuple\n | ObjectTypeDefinitionTuple\n | InterfaceTypeDefinitionTuple\n | UnionTypeDefinitionTuple\n | EnumTypeDefinitionTuple\n | InputObjectTypeDefinitionTuple;\n\nexport type CompositeTypeTuple =\n | ObjectTypeDefinitionTuple\n | InterfaceTypeDefinitionTuple\n | UnionTypeDefinitionTuple;\n\nexport type FieldDefinitionTuple = [\n type: TypeReference,\n arguments: InputValueDefinitionRecord,\n // directives?: DirectiveTuple[],\n];\nconst enum FieldKeys {\n type = 0,\n arguments = 1,\n}\nexport type FieldDefinition = TypeReference | FieldDefinitionTuple;\nexport type FieldDefinitionRecord = Record<string, FieldDefinition>;\n\nexport type InputValueDefinitionTuple = [\n type: TypeReference,\n defaultValue: unknown,\n // directives?: DirectiveTuple[],\n];\nconst enum InputValueKeys {\n type = 0,\n defaultValue = 1,\n}\nexport type InputValueDefinition = TypeReference | InputValueDefinitionTuple;\nexport type InputValueDefinitionRecord = Record<string, InputValueDefinition>;\n\nexport type DirectiveName = string;\nexport type DirectiveTuple = [\n name: DirectiveName,\n arguments?: Record<string, unknown>, // JS values (cannot be a variable inside schema definition, so it is fine)\n];\nexport type DirectiveDefinitionTuple = [\n name: DirectiveName,\n arguments?: InputValueDefinitionRecord,\n];\nconst enum DirectiveKeys {\n name = 0,\n arguments = 1,\n}\n\nexport type TypeDefinitionsRecord = Record<TypeName, TypeDefinitionTuple>;\nexport type InterfaceImplementationsRecord = Record<TypeName, TypeName[]>;\n\nexport type OperationTypes = {\n query?: TypeName;\n mutation?: TypeName;\n subscription?: TypeName;\n};\n\nexport type SchemaDefinitions = {\n types: TypeDefinitionsRecord;\n directives?: DirectiveDefinitionTuple[];\n // implementations?: InterfaceImplementationsRecord; // TODO?\n};\n\nconst typeNameMetaFieldDef: FieldDefinition = \"String\";\nconst specifiedScalarDefinition: ScalarTypeDefinitionTuple = [TypeKind.SCALAR];\n\nexport function findObjectType(\n defs: SchemaDefinitions,\n typeName: TypeName,\n): ObjectTypeDefinitionTuple | undefined {\n const type = defs.types[typeName];\n return type?.[0] === TypeKind.OBJECT ? type : undefined;\n}\n\nexport function getObjectFields(\n def: ObjectTypeDefinitionTuple,\n): FieldDefinitionRecord {\n return def[ObjectKeys.fields];\n}\n\nexport function addInterfaceImplementation(\n defs: SchemaDefinitions,\n interfaceType: TypeName,\n objectType: TypeName,\n) {\n const iface = getInterfaceType(defs, interfaceType);\n const type = defs.types[objectType];\n\n if (!iface) {\n throw new Error(\n `Type ${interfaceType} either doesn't exist or is not an interface`,\n );\n }\n if (type && !isObjectTypeDefinition(type)) {\n throw new Error(`Type ${objectType} is not an object type`);\n }\n if (!type) {\n defs.types[objectType] = [\n TypeKind.OBJECT,\n Object.create(null),\n [interfaceType],\n ];\n return;\n }\n let knownInterfaces = type[ObjectKeys.interfaces];\n if (!knownInterfaces) {\n knownInterfaces = [];\n type[ObjectKeys.interfaces] = knownInterfaces;\n }\n if (!knownInterfaces.includes(interfaceType)) {\n knownInterfaces.push(interfaceType);\n }\n}\n\nexport function getField(\n defs: SchemaDefinitions,\n typeName: TypeName,\n fieldName: string,\n) {\n if (fieldName === \"__typename\") {\n return typeNameMetaFieldDef;\n }\n return (\n getOwnField(defs, typeName, fieldName) ??\n findInterfaceField(defs, typeName, fieldName)\n );\n}\n\nfunction getOwnField(\n defs: SchemaDefinitions,\n typeName: TypeName,\n fieldName: string,\n): FieldDefinition | undefined {\n const type = defs.types[typeName];\n if (!type) {\n return undefined;\n }\n if (type[0] === TypeKind.OBJECT) {\n return type[ObjectKeys.fields]?.[fieldName];\n }\n if (type[0] === TypeKind.INTERFACE) {\n return type[InterfaceKeys.fields]?.[fieldName];\n }\n return undefined;\n}\n\nfunction findInterfaceField(\n defs: SchemaDefinitions,\n typeName: TypeName,\n fieldName: string,\n) {\n const type = defs.types[typeName];\n if (!type) {\n return undefined;\n }\n if (type[0] === TypeKind.OBJECT && type[ObjectKeys.interfaces]) {\n return findField(defs, type[ObjectKeys.interfaces], fieldName);\n }\n if (type[0] === TypeKind.INTERFACE && type[InterfaceKeys.interfaces]) {\n return findField(defs, type[InterfaceKeys.interfaces], fieldName);\n }\n return undefined;\n}\n\nfunction findField(\n defs: SchemaDefinitions,\n interfaceTypes: TypeName[],\n fieldName: string,\n) {\n // TODO: merge field definition from all interface types to ensure all necessary arguments are present\n // (or maybe instead always encode all arguments in the schema fragment for simplicity?)\n for (const interfaceName of interfaceTypes) {\n const ownField = getOwnField(defs, interfaceName, fieldName);\n if (ownField !== undefined) {\n return ownField;\n }\n }\n return undefined;\n}\n\nexport function getInputObjectType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): InputObjectTypeDefinitionTuple | undefined {\n const type = defs.types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.INPUT ? type : undefined;\n}\n\nexport function getLeafType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): EnumTypeDefinitionTuple | ScalarTypeDefinitionTuple | undefined {\n const typeName = typeNameFromReference(typeRef);\n\n if (isSpecifiedScalarType(typeName)) {\n return specifiedScalarDefinition;\n }\n const type = defs.types[typeName];\n if (type?.[0] !== TypeKind.ENUM && type?.[0] !== TypeKind.SCALAR) {\n return undefined;\n }\n return type;\n}\n\nexport function isDefined(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: spec type\n return true;\n }\n const types = defs.types;\n const typeName = typeNameFromReference(typeRef);\n return !!types[typeName] || isSpecifiedScalarType(typeName);\n}\n\nexport function isInputType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are input types\n return true;\n }\n const typeName = typeNameFromReference(typeRef);\n const kind = defs.types[typeName]?.[0];\n return (\n isSpecifiedScalarType(typeName) ||\n kind === TypeKind.ENUM ||\n kind === TypeKind.INPUT ||\n kind === TypeKind.SCALAR\n );\n}\n\nexport function isObjectType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are scalars\n return false;\n }\n const types = defs.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.OBJECT;\n}\n\nexport function isAbstractType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are scalars\n return false;\n }\n const type =\n defs.types[typeRef] ?? defs.types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.UNION || type?.[0] === TypeKind.INTERFACE;\n}\n\nexport function getUnionType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): UnionTypeDefinitionTuple | undefined {\n const types = defs.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.UNION ? type : undefined;\n}\n\nexport function getInterfaceType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): InterfaceTypeDefinitionTuple | undefined {\n const types = defs.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.INTERFACE ? type : undefined;\n}\n\nexport function isSubType(\n defs: SchemaDefinitions,\n abstractTypeName: TypeName,\n maybeSubTypeName: TypeName,\n): boolean {\n const union = getUnionType(defs, abstractTypeName);\n if (union) {\n return union[UnionKeys.types].includes(maybeSubTypeName);\n }\n const object = findObjectType(defs, maybeSubTypeName);\n if (object) {\n return !!object[ObjectKeys.interfaces]?.includes(abstractTypeName);\n }\n const iface = getInterfaceType(defs, maybeSubTypeName);\n if (iface) {\n return !!iface[InterfaceKeys.interfaces]?.includes(abstractTypeName);\n }\n return false;\n}\n\nexport function getDirectiveName(tuple: DirectiveDefinitionTuple): string {\n return tuple[DirectiveKeys.name];\n}\n\nexport function isObjectTypeDefinition(\n type: TypeDefinitionTuple,\n): type is ObjectTypeDefinitionTuple {\n return type[0] === TypeKind.OBJECT;\n}\n\nexport function isUnionTypeDefinition(\n type: TypeDefinitionTuple,\n): type is UnionTypeDefinitionTuple {\n return type[0] === TypeKind.UNION;\n}\n\nexport function isInterfaceTypeDefinition(\n type: TypeDefinitionTuple,\n): type is InterfaceTypeDefinitionTuple {\n return type[0] === TypeKind.INTERFACE;\n}\n\nexport function isEnumTypeDefinition(\n type: TypeDefinitionTuple,\n): type is EnumTypeDefinitionTuple {\n return type[0] === TypeKind.ENUM;\n}\n\nexport function isScalarTypeDefinition(\n type: TypeDefinitionTuple,\n): type is ScalarTypeDefinitionTuple {\n return type[0] === TypeKind.SCALAR;\n}\n\nexport function isInputObjectTypeDefinition(\n type: TypeDefinitionTuple,\n): type is InputObjectTypeDefinitionTuple {\n return type[0] === TypeKind.INPUT;\n}\n\nexport function getInputValueTypeReference(\n inputValue: InputValueDefinition,\n): TypeReference {\n return Array.isArray(inputValue)\n ? inputValue[InputValueKeys.type]\n : inputValue;\n}\n\nexport function getInputObjectFields(\n obj: InputObjectTypeDefinitionTuple,\n): InputValueDefinitionRecord {\n return obj[InputObjectKeys.fields];\n}\n\nexport function getInputDefaultValue(\n inputValue: InputValueDefinition,\n): unknown | undefined {\n return Array.isArray(inputValue)\n ? inputValue[InputValueKeys.defaultValue]\n : undefined;\n}\n\nexport function getFields(\n def: ObjectTypeDefinitionTuple | InterfaceTypeDefinitionTuple,\n): FieldDefinitionRecord {\n return def[0] === TypeKind.OBJECT\n ? def[ObjectKeys.fields]\n : def[InterfaceKeys.fields];\n}\n\nexport function getFieldTypeReference(field: FieldDefinition): TypeReference {\n return Array.isArray(field) ? field[FieldKeys.type] : field;\n}\n\nexport function getFieldArgs(\n field: FieldDefinition,\n): InputValueDefinitionRecord | undefined {\n return Array.isArray(field) ? field[FieldKeys.arguments] : undefined;\n}\n\nexport function setFieldArgs(\n field: FieldDefinitionTuple,\n args: InputValueDefinitionRecord,\n): InputValueDefinitionRecord {\n field[FieldKeys.arguments] = args;\n return args;\n}\n\nexport function getEnumValues(tuple: EnumTypeDefinitionTuple): string[] {\n return tuple[EnumKeys.values];\n}\n\nexport function getDirectiveDefinitionArgs(\n directive: DirectiveDefinitionTuple,\n): InputValueDefinitionRecord | undefined {\n return directive[DirectiveKeys.arguments];\n}\n\nexport function setDirectiveDefinitionArgs(\n directive: DirectiveDefinitionTuple,\n args: InputValueDefinitionRecord,\n): InputValueDefinitionRecord {\n directive[DirectiveKeys.arguments] = args;\n return args;\n}\n\nexport function createUnionTypeDefinition(\n types: TypeName[],\n): UnionTypeDefinitionTuple {\n return [TypeKind.UNION, types];\n}\n\nexport function createInterfaceTypeDefinition(\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n): InterfaceTypeDefinitionTuple {\n return interfaces?.length\n ? [TypeKind.INTERFACE, fields, interfaces]\n : [TypeKind.INTERFACE, fields];\n}\n\nexport function createObjectTypeDefinition(\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n): ObjectTypeDefinitionTuple {\n return interfaces?.length\n ? [TypeKind.OBJECT, fields, interfaces]\n : [TypeKind.OBJECT, fields];\n}\n\nexport function createInputObjectTypeDefinition(\n fields: InputValueDefinitionRecord,\n): InputObjectTypeDefinitionTuple {\n return [TypeKind.INPUT, fields];\n}\n\nexport function createEnumTypeDefinition(\n values: string[],\n): EnumTypeDefinitionTuple {\n return [TypeKind.ENUM, values];\n}\n\nexport function createScalarTypeDefinition(): ScalarTypeDefinitionTuple {\n return [TypeKind.SCALAR];\n}\n\nexport function getObjectTypeInterfaces(\n def: ObjectTypeDefinitionTuple,\n): TypeName[] {\n return def[ObjectKeys.interfaces] ?? [];\n}\n\nexport function getInterfaceTypeInterfaces(\n def: InterfaceTypeDefinitionTuple,\n): TypeName[] {\n return def[InterfaceKeys.interfaces] ?? [];\n}\n\nexport function getUnionTypeMembers(\n tuple: UnionTypeDefinitionTuple,\n): TypeName[] {\n return tuple[UnionKeys.types];\n}\n\nexport function getDefinitionArguments(\n def: FieldDefinition | DirectiveDefinitionTuple,\n): InputValueDefinitionRecord | undefined {\n // Note: both FieldDefinition and DirectiveDefinition store arguments at the same position\n return Array.isArray(def) ? def[FieldKeys.arguments] : undefined;\n}\n"],
|
|
5
|
-
"mappings": ";AAAA,SAAS,6BAA6B;AACtC,SAAkC,6BAA6B;
|
|
4
|
+
"sourcesContent": ["import {\n DirectiveLocation as GraphQLDirectiveLocation,\n DirectiveLocationEnum,\n} from \"graphql\";\nimport { isSpecifiedScalarType } from \"./resolvers\";\nimport { TypeName, TypeReference, typeNameFromReference } from \"./reference\";\n\n// Perf: const enums are inlined in the build (+small integers are stored on the stack in v8)\n// IMPORTANT: const enums MUST NOT be exported, otherwise esbuild struggles to inline them: use exported functions\nconst enum TypeKind {\n SCALAR = 1,\n OBJECT = 2,\n INTERFACE = 3,\n UNION = 4,\n ENUM = 5,\n INPUT = 6,\n}\n\nexport type ScalarTypeDefinitionTuple = [\n kind: TypeKind.SCALAR,\n // directives?: DirectiveTuple[], // TODO ?\n];\n\nexport type ObjectTypeDefinitionTuple = [\n kind: TypeKind.OBJECT,\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n // directives?: DirectiveTuple[],\n];\nconst enum ObjectKeys {\n fields = 1,\n interfaces = 2,\n}\n\nexport type InterfaceTypeDefinitionTuple = [\n kind: TypeKind.INTERFACE,\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n // directives?: DirectiveTuple[],\n];\nconst enum InterfaceKeys {\n fields = 1,\n interfaces = 2,\n}\n\nexport type UnionTypeDefinitionTuple = [\n kind: TypeKind.UNION,\n types: TypeName[],\n // directives?: DirectiveTuple[],\n];\nconst enum UnionKeys {\n types = 1,\n}\n\nexport type EnumTypeDefinitionTuple = [\n kind: TypeKind.ENUM,\n values: string[],\n // directives?: DirectiveTuple[],\n];\nconst enum EnumKeys {\n values = 1,\n}\n\nexport type InputObjectTypeDefinitionTuple = [\n kind: TypeKind.INPUT,\n fields: InputValueDefinitionRecord,\n // directives?: DirectiveTuple[],\n];\nconst enum InputObjectKeys {\n fields = 1,\n}\n\nexport type TypeDefinitionTuple =\n | ScalarTypeDefinitionTuple\n | ObjectTypeDefinitionTuple\n | InterfaceTypeDefinitionTuple\n | UnionTypeDefinitionTuple\n | EnumTypeDefinitionTuple\n | InputObjectTypeDefinitionTuple;\n\nexport type CompositeTypeTuple =\n | ObjectTypeDefinitionTuple\n | InterfaceTypeDefinitionTuple\n | UnionTypeDefinitionTuple;\n\nexport type FieldDefinitionTuple = [\n type: TypeReference,\n arguments: InputValueDefinitionRecord,\n // directives?: DirectiveTuple[],\n];\nconst enum FieldKeys {\n type = 0,\n arguments = 1,\n}\nexport type FieldDefinition = TypeReference | FieldDefinitionTuple;\nexport type FieldDefinitionRecord = Record<string, FieldDefinition>;\n\nexport type InputValueDefinitionTuple = [\n type: TypeReference,\n defaultValue: unknown,\n // directives?: DirectiveTuple[],\n];\nconst enum InputValueKeys {\n type = 0,\n defaultValue = 1,\n}\nexport type InputValueDefinition = TypeReference | InputValueDefinitionTuple;\nexport type InputValueDefinitionRecord = Record<string, InputValueDefinition>;\n\nconst DirectiveLocation = {\n QUERY: 1,\n MUTATION: 2,\n SUBSCRIPTION: 3,\n FIELD: 4,\n FRAGMENT_DEFINITION: 5,\n FRAGMENT_SPREAD: 6,\n INLINE_FRAGMENT: 7,\n VARIABLE_DEFINITION: 8,\n /** Type System Definitions */\n SCHEMA: 9,\n SCALAR: 10,\n OBJECT: 11,\n FIELD_DEFINITION: 12,\n ARGUMENT_DEFINITION: 13,\n INTERFACE: 14,\n UNION: 15,\n ENUM: 16,\n ENUM_VALUE: 17,\n INPUT_OBJECT: 18,\n INPUT_FIELD_DEFINITION: 19,\n} as const;\ntype DirectiveLocation =\n (typeof DirectiveLocation)[keyof typeof DirectiveLocation];\nconst DirectiveLocationToGraphQL = {\n 1: GraphQLDirectiveLocation.QUERY,\n 2: GraphQLDirectiveLocation.MUTATION,\n 3: GraphQLDirectiveLocation.SUBSCRIPTION,\n 4: GraphQLDirectiveLocation.FIELD,\n 5: GraphQLDirectiveLocation.FRAGMENT_DEFINITION,\n 6: GraphQLDirectiveLocation.FRAGMENT_SPREAD,\n 7: GraphQLDirectiveLocation.INLINE_FRAGMENT,\n 8: GraphQLDirectiveLocation.VARIABLE_DEFINITION,\n /** Type System Definitions */\n 9: GraphQLDirectiveLocation.SCHEMA,\n 10: GraphQLDirectiveLocation.SCALAR,\n 11: GraphQLDirectiveLocation.OBJECT,\n 12: GraphQLDirectiveLocation.FIELD_DEFINITION,\n 13: GraphQLDirectiveLocation.ARGUMENT_DEFINITION,\n 14: GraphQLDirectiveLocation.INTERFACE,\n 15: GraphQLDirectiveLocation.UNION,\n 16: GraphQLDirectiveLocation.ENUM,\n 17: GraphQLDirectiveLocation.ENUM_VALUE,\n 18: GraphQLDirectiveLocation.INPUT_OBJECT,\n 19: GraphQLDirectiveLocation.INPUT_FIELD_DEFINITION,\n} as const;\n\nexport type DirectiveName = string;\nexport type DirectiveTuple = [\n name: DirectiveName,\n arguments: Record<string, unknown>, // JS values (cannot be a variable inside schema definition, so it is fine)\n];\nexport type DirectiveDefinitionTuple = [\n name: DirectiveName,\n locations: DirectiveLocation[],\n arguments?: InputValueDefinitionRecord,\n];\nconst enum DirectiveKeys {\n name = 0,\n locations = 1,\n arguments = 2,\n}\n\nexport type TypeDefinitionsRecord = Record<TypeName, TypeDefinitionTuple>;\nexport type InterfaceImplementationsRecord = Record<TypeName, TypeName[]>;\n\nexport type OperationTypes = {\n query?: TypeName;\n mutation?: TypeName;\n subscription?: TypeName;\n};\n\nexport type SchemaDefinitions = {\n types: TypeDefinitionsRecord;\n directives?: DirectiveDefinitionTuple[];\n // implementations?: InterfaceImplementationsRecord; // TODO?\n};\n\nconst typeNameMetaFieldDef: FieldDefinition = \"String\";\nconst specifiedScalarDefinition: ScalarTypeDefinitionTuple = [TypeKind.SCALAR];\n\nexport function findObjectType(\n defs: SchemaDefinitions,\n typeName: TypeName,\n): ObjectTypeDefinitionTuple | undefined {\n const type = defs.types[typeName];\n return type?.[0] === TypeKind.OBJECT ? type : undefined;\n}\n\nexport function getObjectFields(\n def: ObjectTypeDefinitionTuple,\n): FieldDefinitionRecord {\n return def[ObjectKeys.fields];\n}\n\nexport function addInterfaceImplementation(\n defs: SchemaDefinitions,\n interfaceType: TypeName,\n objectType: TypeName,\n) {\n const iface = getInterfaceType(defs, interfaceType);\n const type = defs.types[objectType];\n\n if (!iface) {\n throw new Error(\n `Type ${interfaceType} either doesn't exist or is not an interface`,\n );\n }\n if (type && !isObjectTypeDefinition(type)) {\n throw new Error(`Type ${objectType} is not an object type`);\n }\n if (!type) {\n defs.types[objectType] = [\n TypeKind.OBJECT,\n Object.create(null),\n [interfaceType],\n ];\n return;\n }\n let knownInterfaces = type[ObjectKeys.interfaces];\n if (!knownInterfaces) {\n knownInterfaces = [];\n type[ObjectKeys.interfaces] = knownInterfaces;\n }\n if (!knownInterfaces.includes(interfaceType)) {\n knownInterfaces.push(interfaceType);\n }\n}\n\nexport function getField(\n defs: SchemaDefinitions,\n typeName: TypeName,\n fieldName: string,\n) {\n if (fieldName === \"__typename\") {\n return typeNameMetaFieldDef;\n }\n return (\n getOwnField(defs, typeName, fieldName) ??\n findInterfaceField(defs, typeName, fieldName)\n );\n}\n\nfunction getOwnField(\n defs: SchemaDefinitions,\n typeName: TypeName,\n fieldName: string,\n): FieldDefinition | undefined {\n const type = defs.types[typeName];\n if (!type) {\n return undefined;\n }\n if (type[0] === TypeKind.OBJECT) {\n return type[ObjectKeys.fields]?.[fieldName];\n }\n if (type[0] === TypeKind.INTERFACE) {\n return type[InterfaceKeys.fields]?.[fieldName];\n }\n return undefined;\n}\n\nfunction findInterfaceField(\n defs: SchemaDefinitions,\n typeName: TypeName,\n fieldName: string,\n) {\n const type = defs.types[typeName];\n if (!type) {\n return undefined;\n }\n if (type[0] === TypeKind.OBJECT && type[ObjectKeys.interfaces]) {\n return findField(defs, type[ObjectKeys.interfaces], fieldName);\n }\n if (type[0] === TypeKind.INTERFACE && type[InterfaceKeys.interfaces]) {\n return findField(defs, type[InterfaceKeys.interfaces], fieldName);\n }\n return undefined;\n}\n\nfunction findField(\n defs: SchemaDefinitions,\n interfaceTypes: TypeName[],\n fieldName: string,\n) {\n // TODO: merge field definition from all interface types to ensure all necessary arguments are present\n // (or maybe instead always encode all arguments in the schema fragment for simplicity?)\n for (const interfaceName of interfaceTypes) {\n const ownField = getOwnField(defs, interfaceName, fieldName);\n if (ownField !== undefined) {\n return ownField;\n }\n }\n return undefined;\n}\n\nexport function getInputObjectType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): InputObjectTypeDefinitionTuple | undefined {\n const type = defs.types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.INPUT ? type : undefined;\n}\n\nexport function getLeafType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): EnumTypeDefinitionTuple | ScalarTypeDefinitionTuple | undefined {\n const typeName = typeNameFromReference(typeRef);\n\n if (isSpecifiedScalarType(typeName)) {\n return specifiedScalarDefinition;\n }\n const type = defs.types[typeName];\n if (type?.[0] !== TypeKind.ENUM && type?.[0] !== TypeKind.SCALAR) {\n return undefined;\n }\n return type;\n}\n\nexport function isDefined(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: spec type\n return true;\n }\n const types = defs.types;\n const typeName = typeNameFromReference(typeRef);\n return !!types[typeName] || isSpecifiedScalarType(typeName);\n}\n\nexport function isInputType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are input types\n return true;\n }\n const typeName = typeNameFromReference(typeRef);\n const kind = defs.types[typeName]?.[0];\n return (\n isSpecifiedScalarType(typeName) ||\n kind === TypeKind.ENUM ||\n kind === TypeKind.INPUT ||\n kind === TypeKind.SCALAR\n );\n}\n\nexport function isObjectType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are scalars\n return false;\n }\n const types = defs.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.OBJECT;\n}\n\nexport function isAbstractType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are scalars\n return false;\n }\n const type =\n defs.types[typeRef] ?? defs.types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.UNION || type?.[0] === TypeKind.INTERFACE;\n}\n\nexport function getUnionType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): UnionTypeDefinitionTuple | undefined {\n const types = defs.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.UNION ? type : undefined;\n}\n\nexport function getInterfaceType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): InterfaceTypeDefinitionTuple | undefined {\n const types = defs.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.INTERFACE ? type : undefined;\n}\n\nexport function isSubType(\n defs: SchemaDefinitions,\n abstractTypeName: TypeName,\n maybeSubTypeName: TypeName,\n): boolean {\n const union = getUnionType(defs, abstractTypeName);\n if (union) {\n return union[UnionKeys.types].includes(maybeSubTypeName);\n }\n const object = findObjectType(defs, maybeSubTypeName);\n if (object) {\n return !!object[ObjectKeys.interfaces]?.includes(abstractTypeName);\n }\n const iface = getInterfaceType(defs, maybeSubTypeName);\n if (iface) {\n return !!iface[InterfaceKeys.interfaces]?.includes(abstractTypeName);\n }\n return false;\n}\n\nexport function getDirectiveName(tuple: DirectiveDefinitionTuple): string {\n return tuple[DirectiveKeys.name];\n}\n\nexport function getDirectiveLocations(\n tuple: DirectiveDefinitionTuple,\n): DirectiveLocation[] {\n return tuple[DirectiveKeys.locations];\n}\n\nexport function encodeDirectiveLocation(\n location: DirectiveLocationEnum,\n): DirectiveLocation {\n return DirectiveLocation[location];\n}\nexport function decodeDirectiveLocation(\n location: DirectiveLocation,\n): DirectiveLocationEnum {\n return DirectiveLocationToGraphQL[location];\n}\n\nexport function isObjectTypeDefinition(\n type: TypeDefinitionTuple,\n): type is ObjectTypeDefinitionTuple {\n return type[0] === TypeKind.OBJECT;\n}\n\nexport function isUnionTypeDefinition(\n type: TypeDefinitionTuple,\n): type is UnionTypeDefinitionTuple {\n return type[0] === TypeKind.UNION;\n}\n\nexport function isInterfaceTypeDefinition(\n type: TypeDefinitionTuple,\n): type is InterfaceTypeDefinitionTuple {\n return type[0] === TypeKind.INTERFACE;\n}\n\nexport function isEnumTypeDefinition(\n type: TypeDefinitionTuple,\n): type is EnumTypeDefinitionTuple {\n return type[0] === TypeKind.ENUM;\n}\n\nexport function isScalarTypeDefinition(\n type: TypeDefinitionTuple,\n): type is ScalarTypeDefinitionTuple {\n return type[0] === TypeKind.SCALAR;\n}\n\nexport function isInputObjectTypeDefinition(\n type: TypeDefinitionTuple,\n): type is InputObjectTypeDefinitionTuple {\n return type[0] === TypeKind.INPUT;\n}\n\nexport function getInputValueTypeReference(\n inputValue: InputValueDefinition,\n): TypeReference {\n return Array.isArray(inputValue)\n ? inputValue[InputValueKeys.type]\n : inputValue;\n}\n\nexport function getInputObjectFields(\n obj: InputObjectTypeDefinitionTuple,\n): InputValueDefinitionRecord {\n return obj[InputObjectKeys.fields];\n}\n\nexport function getInputDefaultValue(\n inputValue: InputValueDefinition,\n): unknown | undefined {\n return Array.isArray(inputValue)\n ? inputValue[InputValueKeys.defaultValue]\n : undefined;\n}\n\nexport function getFields(\n def: ObjectTypeDefinitionTuple | InterfaceTypeDefinitionTuple,\n): FieldDefinitionRecord {\n return def[0] === TypeKind.OBJECT\n ? def[ObjectKeys.fields]\n : def[InterfaceKeys.fields];\n}\n\nexport function getFieldTypeReference(field: FieldDefinition): TypeReference {\n return Array.isArray(field) ? field[FieldKeys.type] : field;\n}\n\nexport function getFieldArgs(\n field: FieldDefinition,\n): InputValueDefinitionRecord | undefined {\n return Array.isArray(field) ? field[FieldKeys.arguments] : undefined;\n}\n\nexport function setFieldArgs(\n field: FieldDefinitionTuple,\n args: InputValueDefinitionRecord,\n): InputValueDefinitionRecord {\n field[FieldKeys.arguments] = args;\n return args;\n}\n\nexport function getEnumValues(tuple: EnumTypeDefinitionTuple): string[] {\n return tuple[EnumKeys.values];\n}\n\nexport function getDirectiveDefinitionArgs(\n directive: DirectiveDefinitionTuple,\n): InputValueDefinitionRecord | undefined {\n return directive[DirectiveKeys.arguments];\n}\n\nexport function setDirectiveDefinitionArgs(\n directive: DirectiveDefinitionTuple,\n args: InputValueDefinitionRecord,\n): InputValueDefinitionRecord {\n directive[DirectiveKeys.arguments] = args;\n return args;\n}\n\nexport function createUnionTypeDefinition(\n types: TypeName[],\n): UnionTypeDefinitionTuple {\n return [TypeKind.UNION, types];\n}\n\nexport function createInterfaceTypeDefinition(\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n): InterfaceTypeDefinitionTuple {\n return interfaces?.length\n ? [TypeKind.INTERFACE, fields, interfaces]\n : [TypeKind.INTERFACE, fields];\n}\n\nexport function createObjectTypeDefinition(\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n): ObjectTypeDefinitionTuple {\n return interfaces?.length\n ? [TypeKind.OBJECT, fields, interfaces]\n : [TypeKind.OBJECT, fields];\n}\n\nexport function createInputObjectTypeDefinition(\n fields: InputValueDefinitionRecord,\n): InputObjectTypeDefinitionTuple {\n return [TypeKind.INPUT, fields];\n}\n\nexport function createEnumTypeDefinition(\n values: string[],\n): EnumTypeDefinitionTuple {\n return [TypeKind.ENUM, values];\n}\n\nexport function createScalarTypeDefinition(): ScalarTypeDefinitionTuple {\n return [TypeKind.SCALAR];\n}\n\nexport function getObjectTypeInterfaces(\n def: ObjectTypeDefinitionTuple,\n): TypeName[] {\n return def[ObjectKeys.interfaces] ?? [];\n}\n\nexport function getInterfaceTypeInterfaces(\n def: InterfaceTypeDefinitionTuple,\n): TypeName[] {\n return def[InterfaceKeys.interfaces] ?? [];\n}\n\nexport function getUnionTypeMembers(\n tuple: UnionTypeDefinitionTuple,\n): TypeName[] {\n return tuple[UnionKeys.types];\n}\n\nexport function getFieldArguments(\n def: FieldDefinition,\n): InputValueDefinitionRecord | undefined {\n return Array.isArray(def) ? def[FieldKeys.arguments] : undefined;\n}\n\nexport function getDirectiveArguments(\n def: DirectiveDefinitionTuple,\n): InputValueDefinitionRecord | undefined {\n return Array.isArray(def) ? def[DirectiveKeys.arguments] : undefined;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../src/schema/directives.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../src/schema/directives.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,aAAa,EAGd,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,wBAQrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,wBAQlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,wBAAwB,CAAC;AAChE;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,wBAIxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,wBAIzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,wBAMnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,wBAIpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,wBAAwB,CAQpE,CAAC;AACL,eAAO,MAAM,kCAAkC,WAAW,CAAC;AAC3D,eAAO,MAAM,uDAAuD,gBACrD,CAAC;AAChB;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,wBAQzC,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,aAAa,GAAG,wBAAwB,GAClD,OAAO,CAOT;AACD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,aAAa,GAAG,wBAAwB,GAClD,OAAO,CAMT"}
|
package/lib/schema/directives.js
CHANGED
|
@@ -33,31 +33,47 @@ __export(directives_exports, {
|
|
|
33
33
|
specifiedDirectives: () => specifiedDirectives
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(directives_exports);
|
|
36
|
+
var import_graphql = require("graphql");
|
|
36
37
|
var import_definition = require("./definition");
|
|
37
38
|
const GraphQLIncludeDirective = [
|
|
38
39
|
"include",
|
|
40
|
+
[
|
|
41
|
+
import_graphql.DirectiveLocation.FIELD,
|
|
42
|
+
import_graphql.DirectiveLocation.FRAGMENT_SPREAD,
|
|
43
|
+
import_graphql.DirectiveLocation.INLINE_FRAGMENT
|
|
44
|
+
].map(import_definition.encodeDirectiveLocation),
|
|
39
45
|
{ if: "Boolean!" }
|
|
40
|
-
// TODO: locations for all directives (maybe not - they are irrelevant for runtime)?
|
|
41
46
|
];
|
|
42
47
|
const GraphQLSkipDirective = [
|
|
43
48
|
"skip",
|
|
49
|
+
[
|
|
50
|
+
import_graphql.DirectiveLocation.FIELD,
|
|
51
|
+
import_graphql.DirectiveLocation.FRAGMENT_SPREAD,
|
|
52
|
+
import_graphql.DirectiveLocation.INLINE_FRAGMENT
|
|
53
|
+
].map(import_definition.encodeDirectiveLocation),
|
|
44
54
|
{ if: "Boolean!" }
|
|
45
55
|
];
|
|
46
56
|
const DEFAULT_DEPRECATION_REASON = "No longer supported";
|
|
47
57
|
const GraphQLDeprecatedDirective = [
|
|
48
58
|
"deprecated",
|
|
59
|
+
[import_graphql.DirectiveLocation.FIELD_DEFINITION].map(import_definition.encodeDirectiveLocation),
|
|
49
60
|
{ reason: ["String", DEFAULT_DEPRECATION_REASON] }
|
|
50
61
|
];
|
|
51
62
|
const GraphQLSpecifiedByDirective = [
|
|
52
63
|
"specifiedBy",
|
|
64
|
+
[import_graphql.DirectiveLocation.INPUT_OBJECT].map(import_definition.encodeDirectiveLocation),
|
|
53
65
|
{ url: "String!" }
|
|
54
66
|
];
|
|
55
67
|
const GraphQLDeferDirective = [
|
|
56
68
|
"defer",
|
|
69
|
+
[import_graphql.DirectiveLocation.FRAGMENT_SPREAD, import_graphql.DirectiveLocation.INLINE_FRAGMENT].map(
|
|
70
|
+
import_definition.encodeDirectiveLocation
|
|
71
|
+
),
|
|
57
72
|
{ if: ["Boolean!", true], label: "String" }
|
|
58
73
|
];
|
|
59
74
|
const GraphQLStreamDirective = [
|
|
60
75
|
"stream",
|
|
76
|
+
[import_graphql.DirectiveLocation.FIELD].map(import_definition.encodeDirectiveLocation),
|
|
61
77
|
{ if: ["Boolean!", true], label: "String", initialCount: ["Int", 0] }
|
|
62
78
|
];
|
|
63
79
|
const specifiedDirectives = Object.freeze([
|
|
@@ -72,6 +88,11 @@ const SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME = "schema";
|
|
|
72
88
|
const SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME = "definitions";
|
|
73
89
|
const SupermassiveSchemaDirective = [
|
|
74
90
|
SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,
|
|
91
|
+
[
|
|
92
|
+
import_graphql.DirectiveLocation.QUERY,
|
|
93
|
+
import_graphql.DirectiveLocation.MUTATION,
|
|
94
|
+
import_graphql.DirectiveLocation.SUBSCRIPTION
|
|
95
|
+
].map(import_definition.encodeDirectiveLocation),
|
|
75
96
|
{ [SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME]: "String!" }
|
|
76
97
|
// Essentially JSON
|
|
77
98
|
];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/schema/directives.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n DirectiveDefinitionTuple,\n DirectiveName,\n getDirectiveName,\n} from \"./definition\";\n\n/**\n * Used to conditionally include fields or fragments.\n */\nexport const GraphQLIncludeDirective: DirectiveDefinitionTuple = [\n \"include\",\n { if: \"Boolean!\" },\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
4
|
+
"sourcesContent": ["import { DirectiveLocation } from \"graphql\";\nimport {\n DirectiveDefinitionTuple,\n DirectiveName,\n encodeDirectiveLocation,\n getDirectiveName,\n} from \"./definition\";\n\n/**\n * Used to conditionally include fields or fragments.\n */\nexport const GraphQLIncludeDirective: DirectiveDefinitionTuple = [\n \"include\",\n [\n DirectiveLocation.FIELD,\n DirectiveLocation.FRAGMENT_SPREAD,\n DirectiveLocation.INLINE_FRAGMENT,\n ].map(encodeDirectiveLocation),\n { if: \"Boolean!\" },\n];\n\n/**\n * Used to conditionally skip (exclude) fields or fragments.\n */\nexport const GraphQLSkipDirective: DirectiveDefinitionTuple = [\n \"skip\",\n [\n DirectiveLocation.FIELD,\n DirectiveLocation.FRAGMENT_SPREAD,\n DirectiveLocation.INLINE_FRAGMENT,\n ].map(encodeDirectiveLocation),\n { if: \"Boolean!\" },\n];\n\n/**\n * Constant string used for default reason for a deprecation.\n */\nexport const DEFAULT_DEPRECATION_REASON = \"No longer supported\";\n/**\n * Used to declare element of a GraphQL schema as deprecated.\n */\nexport const GraphQLDeprecatedDirective: DirectiveDefinitionTuple = [\n \"deprecated\",\n [DirectiveLocation.FIELD_DEFINITION].map(encodeDirectiveLocation),\n { reason: [\"String\", DEFAULT_DEPRECATION_REASON] },\n];\n\n/**\n * Used to provide a URL for specifying the behaviour of custom scalar definitions.\n */\nexport const GraphQLSpecifiedByDirective: DirectiveDefinitionTuple = [\n \"specifiedBy\",\n [DirectiveLocation.INPUT_OBJECT].map(encodeDirectiveLocation),\n { url: \"String!\" },\n];\n\n/**\n * Used to conditionally defer fragments.\n */\nexport const GraphQLDeferDirective: DirectiveDefinitionTuple = [\n \"defer\",\n [DirectiveLocation.FRAGMENT_SPREAD, DirectiveLocation.INLINE_FRAGMENT].map(\n encodeDirectiveLocation,\n ),\n { if: [\"Boolean!\", true], label: \"String\" },\n];\n\n/**\n * Used to conditionally stream list fields.\n */\nexport const GraphQLStreamDirective: DirectiveDefinitionTuple = [\n \"stream\",\n [DirectiveLocation.FIELD].map(encodeDirectiveLocation),\n { if: [\"Boolean!\", true], label: \"String\", initialCount: [\"Int\", 0] },\n];\n\n/**\n * The full list of specified directives.\n */\nexport const specifiedDirectives: ReadonlyArray<DirectiveDefinitionTuple> =\n Object.freeze([\n GraphQLIncludeDirective,\n GraphQLSkipDirective,\n GraphQLDeprecatedDirective,\n GraphQLSpecifiedByDirective,\n GraphQLDeferDirective,\n GraphQLStreamDirective,\n ]);\nexport const SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME = \"schema\";\nexport const SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME =\n \"definitions\";\n/**\n * Used to conditionally stream list fields.\n */\nexport const SupermassiveSchemaDirective: DirectiveDefinitionTuple = [\n SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,\n [\n DirectiveLocation.QUERY,\n DirectiveLocation.MUTATION,\n DirectiveLocation.SUBSCRIPTION,\n ].map(encodeDirectiveLocation),\n { [SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME]: \"String!\" }, // Essentially JSON\n];\n\nexport function isKnownDirective(\n directive: DirectiveName | DirectiveDefinitionTuple,\n): boolean {\n const name =\n typeof directive === \"string\" ? directive : getDirectiveName(directive);\n return (\n isSpecifiedDirective(directive) ||\n name === SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME\n );\n}\nexport function isSpecifiedDirective(\n directive: DirectiveName | DirectiveDefinitionTuple,\n): boolean {\n const name =\n typeof directive === \"string\" ? directive : getDirectiveName(directive);\n return specifiedDirectives.some(\n (specDirective) => getDirectiveName(specDirective) === name,\n );\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAkC;AAClC,wBAKO;AAKA,MAAM,0BAAoD;AAAA,EAC/D;AAAA,EACA;AAAA,IACE,iCAAkB;AAAA,IAClB,iCAAkB;AAAA,IAClB,iCAAkB;AAAA,EACpB,EAAE,IAAI,yCAAuB;AAAA,EAC7B,EAAE,IAAI,WAAW;AACnB;AAKO,MAAM,uBAAiD;AAAA,EAC5D;AAAA,EACA;AAAA,IACE,iCAAkB;AAAA,IAClB,iCAAkB;AAAA,IAClB,iCAAkB;AAAA,EACpB,EAAE,IAAI,yCAAuB;AAAA,EAC7B,EAAE,IAAI,WAAW;AACnB;AAKO,MAAM,6BAA6B;AAInC,MAAM,6BAAuD;AAAA,EAClE;AAAA,EACA,CAAC,iCAAkB,gBAAgB,EAAE,IAAI,yCAAuB;AAAA,EAChE,EAAE,QAAQ,CAAC,UAAU,0BAA0B,EAAE;AACnD;AAKO,MAAM,8BAAwD;AAAA,EACnE;AAAA,EACA,CAAC,iCAAkB,YAAY,EAAE,IAAI,yCAAuB;AAAA,EAC5D,EAAE,KAAK,UAAU;AACnB;AAKO,MAAM,wBAAkD;AAAA,EAC7D;AAAA,EACA,CAAC,iCAAkB,iBAAiB,iCAAkB,eAAe,EAAE;AAAA,IACrE;AAAA,EACF;AAAA,EACA,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,OAAO,SAAS;AAC5C;AAKO,MAAM,yBAAmD;AAAA,EAC9D;AAAA,EACA,CAAC,iCAAkB,KAAK,EAAE,IAAI,yCAAuB;AAAA,EACrD,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,OAAO,UAAU,cAAc,CAAC,OAAO,CAAC,EAAE;AACtE;AAKO,MAAM,sBACX,OAAO,OAAO;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACI,MAAM,qCAAqC;AAC3C,MAAM,0DACX;AAIK,MAAM,8BAAwD;AAAA,EACnE;AAAA,EACA;AAAA,IACE,iCAAkB;AAAA,IAClB,iCAAkB;AAAA,IAClB,iCAAkB;AAAA,EACpB,EAAE,IAAI,yCAAuB;AAAA,EAC7B,EAAE,CAAC,uDAAuD,GAAG,UAAU;AAAA;AACzE;AAEO,SAAS,iBACd,WACS;AACT,QAAM,OACJ,OAAO,cAAc,WAAW,gBAAY,oCAAiB,SAAS;AACxE,SACE,qBAAqB,SAAS,KAC9B,SAAS;AAEb;AACO,SAAS,qBACd,WACS;AACT,QAAM,OACJ,OAAO,cAAc,WAAW,gBAAY,oCAAiB,SAAS;AACxE,SAAO,oBAAoB;AAAA,IACzB,CAAC,sBAAkB,oCAAiB,aAAa,MAAM;AAAA,EACzD;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,31 +1,48 @@
|
|
|
1
1
|
// src/schema/directives.ts
|
|
2
|
+
import { DirectiveLocation } from "graphql";
|
|
2
3
|
import {
|
|
4
|
+
encodeDirectiveLocation,
|
|
3
5
|
getDirectiveName
|
|
4
6
|
} from "./definition.mjs";
|
|
5
7
|
var GraphQLIncludeDirective = [
|
|
6
8
|
"include",
|
|
9
|
+
[
|
|
10
|
+
DirectiveLocation.FIELD,
|
|
11
|
+
DirectiveLocation.FRAGMENT_SPREAD,
|
|
12
|
+
DirectiveLocation.INLINE_FRAGMENT
|
|
13
|
+
].map(encodeDirectiveLocation),
|
|
7
14
|
{ if: "Boolean!" }
|
|
8
|
-
// TODO: locations for all directives (maybe not - they are irrelevant for runtime)?
|
|
9
15
|
];
|
|
10
16
|
var GraphQLSkipDirective = [
|
|
11
17
|
"skip",
|
|
18
|
+
[
|
|
19
|
+
DirectiveLocation.FIELD,
|
|
20
|
+
DirectiveLocation.FRAGMENT_SPREAD,
|
|
21
|
+
DirectiveLocation.INLINE_FRAGMENT
|
|
22
|
+
].map(encodeDirectiveLocation),
|
|
12
23
|
{ if: "Boolean!" }
|
|
13
24
|
];
|
|
14
25
|
var DEFAULT_DEPRECATION_REASON = "No longer supported";
|
|
15
26
|
var GraphQLDeprecatedDirective = [
|
|
16
27
|
"deprecated",
|
|
28
|
+
[DirectiveLocation.FIELD_DEFINITION].map(encodeDirectiveLocation),
|
|
17
29
|
{ reason: ["String", DEFAULT_DEPRECATION_REASON] }
|
|
18
30
|
];
|
|
19
31
|
var GraphQLSpecifiedByDirective = [
|
|
20
32
|
"specifiedBy",
|
|
33
|
+
[DirectiveLocation.INPUT_OBJECT].map(encodeDirectiveLocation),
|
|
21
34
|
{ url: "String!" }
|
|
22
35
|
];
|
|
23
36
|
var GraphQLDeferDirective = [
|
|
24
37
|
"defer",
|
|
38
|
+
[DirectiveLocation.FRAGMENT_SPREAD, DirectiveLocation.INLINE_FRAGMENT].map(
|
|
39
|
+
encodeDirectiveLocation
|
|
40
|
+
),
|
|
25
41
|
{ if: ["Boolean!", true], label: "String" }
|
|
26
42
|
];
|
|
27
43
|
var GraphQLStreamDirective = [
|
|
28
44
|
"stream",
|
|
45
|
+
[DirectiveLocation.FIELD].map(encodeDirectiveLocation),
|
|
29
46
|
{ if: ["Boolean!", true], label: "String", initialCount: ["Int", 0] }
|
|
30
47
|
];
|
|
31
48
|
var specifiedDirectives = Object.freeze([
|
|
@@ -40,6 +57,11 @@ var SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME = "schema";
|
|
|
40
57
|
var SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME = "definitions";
|
|
41
58
|
var SupermassiveSchemaDirective = [
|
|
42
59
|
SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,
|
|
60
|
+
[
|
|
61
|
+
DirectiveLocation.QUERY,
|
|
62
|
+
DirectiveLocation.MUTATION,
|
|
63
|
+
DirectiveLocation.SUBSCRIPTION
|
|
64
|
+
].map(encodeDirectiveLocation),
|
|
43
65
|
{ [SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME]: "String!" }
|
|
44
66
|
// Essentially JSON
|
|
45
67
|
];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/schema/directives.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n DirectiveDefinitionTuple,\n DirectiveName,\n getDirectiveName,\n} from \"./definition\";\n\n/**\n * Used to conditionally include fields or fragments.\n */\nexport const GraphQLIncludeDirective: DirectiveDefinitionTuple = [\n \"include\",\n { if: \"Boolean!\" },\n
|
|
5
|
-
"mappings": ";AAAA;AAAA,EAGE;AAAA,OACK;AAKA,IAAM,0BAAoD;AAAA,EAC/D;AAAA,EACA,EAAE,IAAI,
|
|
4
|
+
"sourcesContent": ["import { DirectiveLocation } from \"graphql\";\nimport {\n DirectiveDefinitionTuple,\n DirectiveName,\n encodeDirectiveLocation,\n getDirectiveName,\n} from \"./definition\";\n\n/**\n * Used to conditionally include fields or fragments.\n */\nexport const GraphQLIncludeDirective: DirectiveDefinitionTuple = [\n \"include\",\n [\n DirectiveLocation.FIELD,\n DirectiveLocation.FRAGMENT_SPREAD,\n DirectiveLocation.INLINE_FRAGMENT,\n ].map(encodeDirectiveLocation),\n { if: \"Boolean!\" },\n];\n\n/**\n * Used to conditionally skip (exclude) fields or fragments.\n */\nexport const GraphQLSkipDirective: DirectiveDefinitionTuple = [\n \"skip\",\n [\n DirectiveLocation.FIELD,\n DirectiveLocation.FRAGMENT_SPREAD,\n DirectiveLocation.INLINE_FRAGMENT,\n ].map(encodeDirectiveLocation),\n { if: \"Boolean!\" },\n];\n\n/**\n * Constant string used for default reason for a deprecation.\n */\nexport const DEFAULT_DEPRECATION_REASON = \"No longer supported\";\n/**\n * Used to declare element of a GraphQL schema as deprecated.\n */\nexport const GraphQLDeprecatedDirective: DirectiveDefinitionTuple = [\n \"deprecated\",\n [DirectiveLocation.FIELD_DEFINITION].map(encodeDirectiveLocation),\n { reason: [\"String\", DEFAULT_DEPRECATION_REASON] },\n];\n\n/**\n * Used to provide a URL for specifying the behaviour of custom scalar definitions.\n */\nexport const GraphQLSpecifiedByDirective: DirectiveDefinitionTuple = [\n \"specifiedBy\",\n [DirectiveLocation.INPUT_OBJECT].map(encodeDirectiveLocation),\n { url: \"String!\" },\n];\n\n/**\n * Used to conditionally defer fragments.\n */\nexport const GraphQLDeferDirective: DirectiveDefinitionTuple = [\n \"defer\",\n [DirectiveLocation.FRAGMENT_SPREAD, DirectiveLocation.INLINE_FRAGMENT].map(\n encodeDirectiveLocation,\n ),\n { if: [\"Boolean!\", true], label: \"String\" },\n];\n\n/**\n * Used to conditionally stream list fields.\n */\nexport const GraphQLStreamDirective: DirectiveDefinitionTuple = [\n \"stream\",\n [DirectiveLocation.FIELD].map(encodeDirectiveLocation),\n { if: [\"Boolean!\", true], label: \"String\", initialCount: [\"Int\", 0] },\n];\n\n/**\n * The full list of specified directives.\n */\nexport const specifiedDirectives: ReadonlyArray<DirectiveDefinitionTuple> =\n Object.freeze([\n GraphQLIncludeDirective,\n GraphQLSkipDirective,\n GraphQLDeprecatedDirective,\n GraphQLSpecifiedByDirective,\n GraphQLDeferDirective,\n GraphQLStreamDirective,\n ]);\nexport const SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME = \"schema\";\nexport const SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME =\n \"definitions\";\n/**\n * Used to conditionally stream list fields.\n */\nexport const SupermassiveSchemaDirective: DirectiveDefinitionTuple = [\n SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,\n [\n DirectiveLocation.QUERY,\n DirectiveLocation.MUTATION,\n DirectiveLocation.SUBSCRIPTION,\n ].map(encodeDirectiveLocation),\n { [SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME]: \"String!\" }, // Essentially JSON\n];\n\nexport function isKnownDirective(\n directive: DirectiveName | DirectiveDefinitionTuple,\n): boolean {\n const name =\n typeof directive === \"string\" ? directive : getDirectiveName(directive);\n return (\n isSpecifiedDirective(directive) ||\n name === SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME\n );\n}\nexport function isSpecifiedDirective(\n directive: DirectiveName | DirectiveDefinitionTuple,\n): boolean {\n const name =\n typeof directive === \"string\" ? directive : getDirectiveName(directive);\n return specifiedDirectives.some(\n (specDirective) => getDirectiveName(specDirective) === name,\n );\n}\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,yBAAyB;AAClC;AAAA,EAGE;AAAA,EACA;AAAA,OACK;AAKA,IAAM,0BAAoD;AAAA,EAC/D;AAAA,EACA;AAAA,IACE,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,EACpB,EAAE,IAAI,uBAAuB;AAAA,EAC7B,EAAE,IAAI,WAAW;AACnB;AAKO,IAAM,uBAAiD;AAAA,EAC5D;AAAA,EACA;AAAA,IACE,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,EACpB,EAAE,IAAI,uBAAuB;AAAA,EAC7B,EAAE,IAAI,WAAW;AACnB;AAKO,IAAM,6BAA6B;AAInC,IAAM,6BAAuD;AAAA,EAClE;AAAA,EACA,CAAC,kBAAkB,gBAAgB,EAAE,IAAI,uBAAuB;AAAA,EAChE,EAAE,QAAQ,CAAC,UAAU,0BAA0B,EAAE;AACnD;AAKO,IAAM,8BAAwD;AAAA,EACnE;AAAA,EACA,CAAC,kBAAkB,YAAY,EAAE,IAAI,uBAAuB;AAAA,EAC5D,EAAE,KAAK,UAAU;AACnB;AAKO,IAAM,wBAAkD;AAAA,EAC7D;AAAA,EACA,CAAC,kBAAkB,iBAAiB,kBAAkB,eAAe,EAAE;AAAA,IACrE;AAAA,EACF;AAAA,EACA,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,OAAO,SAAS;AAC5C;AAKO,IAAM,yBAAmD;AAAA,EAC9D;AAAA,EACA,CAAC,kBAAkB,KAAK,EAAE,IAAI,uBAAuB;AAAA,EACrD,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,OAAO,UAAU,cAAc,CAAC,OAAO,CAAC,EAAE;AACtE;AAKO,IAAM,sBACX,OAAO,OAAO;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACI,IAAM,qCAAqC;AAC3C,IAAM,0DACX;AAIK,IAAM,8BAAwD;AAAA,EACnE;AAAA,EACA;AAAA,IACE,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,EACpB,EAAE,IAAI,uBAAuB;AAAA,EAC7B,EAAE,CAAC,uDAAuD,GAAG,UAAU;AAAA;AACzE;AAEO,SAAS,iBACd,WACS;AACT,QAAM,OACJ,OAAO,cAAc,WAAW,YAAY,iBAAiB,SAAS;AACxE,SACE,qBAAqB,SAAS,KAC9B,SAAS;AAEb;AACO,SAAS,qBACd,WACS;AACT,QAAM,OACJ,OAAO,cAAc,WAAW,YAAY,iBAAiB,SAAS;AACxE,SAAO,oBAAoB;AAAA,IACzB,CAAC,kBAAkB,iBAAiB,aAAa,MAAM;AAAA,EACzD;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encodeASTSchema.d.ts","sourceRoot":"","sources":["../../src/utilities/encodeASTSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,YAAY,
|
|
1
|
+
{"version":3,"file":"encodeASTSchema.d.ts","sourceRoot":"","sources":["../../src/utilities/encodeASTSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,YAAY,EAQb,MAAM,SAAS,CAAC;AACjB,OAAO,EAWL,iBAAiB,EASlB,MAAM,sBAAsB,CAAC;AAI9B,wBAAgB,eAAe,CAC7B,cAAc,EAAE,YAAY,GAC3B,iBAAiB,EAAE,CAsCrB"}
|
|
@@ -143,5 +143,20 @@ function encodeInputValue(node) {
|
|
|
143
143
|
}
|
|
144
144
|
function encodeDirective(node) {
|
|
145
145
|
var _a;
|
|
146
|
-
|
|
146
|
+
if ((_a = node.arguments) == null ? void 0 : _a.length) {
|
|
147
|
+
return [
|
|
148
|
+
node.name.value,
|
|
149
|
+
node.locations.map(
|
|
150
|
+
(node2) => (0, import_definition.encodeDirectiveLocation)(node2.value)
|
|
151
|
+
),
|
|
152
|
+
encodeArguments(node)
|
|
153
|
+
];
|
|
154
|
+
} else {
|
|
155
|
+
return [
|
|
156
|
+
node.name.value,
|
|
157
|
+
node.locations.map(
|
|
158
|
+
(node2) => (0, import_definition.encodeDirectiveLocation)(node2.value)
|
|
159
|
+
)
|
|
160
|
+
];
|
|
161
|
+
}
|
|
147
162
|
}
|