@baeta/plugin-graphql 0.1.4 → 1.0.8
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/CHANGELOG.md +19 -0
- package/dist/index.js.map +1 -1
- package/package.json +10 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @baeta/plugin-graphql
|
|
2
2
|
|
|
3
|
+
## 1.0.8
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#189](https://github.com/andreisergiu98/baeta/pull/189) [`d500378`](https://github.com/andreisergiu98/baeta/commit/d500378198e0a9c48298c4242913bca8ad348228) Thanks [@andreisergiu98](https://github.com/andreisergiu98)! - add jsdocs
|
|
8
|
+
|
|
9
|
+
- [#165](https://github.com/andreisergiu98/baeta/pull/165) [`1334c2a`](https://github.com/andreisergiu98/baeta/commit/1334c2a866676c88f0f3d380b22133d81c4e98bc) Thanks [@andreisergiu98](https://github.com/andreisergiu98)! - mark as stable
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [[`d500378`](https://github.com/andreisergiu98/baeta/commit/d500378198e0a9c48298c4242913bca8ad348228), [`1334c2a`](https://github.com/andreisergiu98/baeta/commit/1334c2a866676c88f0f3d380b22133d81c4e98bc)]:
|
|
12
|
+
- @baeta/generator-sdk@1.0.0
|
|
13
|
+
- @baeta/util-path@1.0.0
|
|
14
|
+
|
|
15
|
+
## 0.1.5
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Updated dependencies [[`bf2d1a3`](https://github.com/andreisergiu98/baeta/commit/bf2d1a326235e5f34e723a5acc81cd7b974b913b)]:
|
|
20
|
+
- @baeta/generator-sdk@0.1.5
|
|
21
|
+
|
|
3
22
|
## 0.1.4
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../index.ts","../lib/codegen.ts","../utils/cache.ts","../utils/load.ts","../utils/hash.ts","../utils/scalars.ts","../lib/context/index.ts","../lib/modules/index.ts","../lib/modules/builder.ts","../lib/modules/hashes.ts","../lib/modules/utils.ts"],"sourcesContent":["import { type WatcherFile, createPluginV1, isMatch } from '@baeta/generator-sdk';\nimport { generate } from './lib/codegen.ts';\n\nexport function graphqlPlugin() {\n\treturn createPluginV1({\n\t\tname: 'graphql',\n\t\tactionName: 'GraphQL modules',\n\t\twatch: (options, watcher, reload) => {\n\t\t\tconst handleChange = (file: WatcherFile) => {\n\t\t\t\tif (isMatch(file.relativePath, options.schemas)) {\n\t\t\t\t\treload(file);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\twatcher.on('update', handleChange);\n\t\t\twatcher.on('delete', handleChange);\n\t\t},\n\t\tgenerate: async (ctx, next) => {\n\t\t\tconst items = await generate(ctx.generatorOptions);\n\n\t\t\tfor (const item of items) {\n\t\t\t\tctx.fileManager.createAndAdd(item.filename, item.content, 'graphql');\n\t\t\t}\n\n\t\t\treturn next();\n\t\t},\n\t});\n}\n","import type { NormalizedGeneratorOptions } from '@baeta/generator-sdk';\nimport { join } from '@baeta/util-path';\nimport { codegen as gqlCodegen } from '@graphql-codegen/core';\nimport { normalizeConfig, normalizeInstanceOrArray } from '@graphql-codegen/plugin-helpers';\nimport * as typescriptPlugin from '@graphql-codegen/typescript';\nimport type { UnnormalizedTypeDefPointer } from '@graphql-tools/load';\nimport { createCache } from '../utils/cache.ts';\nimport { loadSchema } from '../utils/load.ts';\nimport { buildScalarMap } from '../utils/scalars.ts';\nimport * as contextPlugin from './context/index.ts';\nimport * as modules from './modules/index.ts';\n\nexport async function generate(options: NormalizedGeneratorOptions) {\n\tconst rootConfig = {\n\t\tschemas: normalizeInstanceOrArray(options.schemas),\n\t\tmodulesDir: options.modulesDir,\n\t\tbaseTypesPath: options.baseTypesPath,\n\t\tcontextType: options.contextType,\n\t\tmoduleDefinitionName: options.moduleDefinitionName,\n\t\tscalars: options.scalars,\n\t\tplugins: normalizeConfig(['typescript', 'context']),\n\t\tpluginMap: {\n\t\t\ttypescript: typescriptPlugin,\n\t\t\tcontext: contextPlugin,\n\t\t},\n\t};\n\n\tconst cache = createCache();\n\n\tconst schemaPointerMap: UnnormalizedTypeDefPointer = {};\n\tfor (const ptr of rootConfig.schemas) {\n\t\tif (typeof ptr === 'string') {\n\t\t\tschemaPointerMap[ptr] = {};\n\t\t} else if (typeof ptr === 'object') {\n\t\t\tObject.assign(schemaPointerMap, ptr);\n\t\t}\n\t}\n\n\tconst hash = JSON.stringify(schemaPointerMap);\n\tconst result = await cache('schema', hash, async () => {\n\t\treturn loadSchema(schemaPointerMap, options.cwd, options.loaders);\n\t});\n\n\tconst outputs = await modules.preset.buildGeneratesSection({\n\t\tbaseOutputDir: options.modulesDir,\n\t\tpresetConfig: {\n\t\t\tbaseTypesPath: rootConfig.baseTypesPath,\n\t\t\tfilename: rootConfig.moduleDefinitionName,\n\t\t\tencapsulateModuleTypes: 'none',\n\t\t\textensionsPath: options.extensions,\n\t\t\timportExtension: options.importExtension,\n\t\t},\n\t\tschema: result.outputSchema,\n\t\tschemaAst: result.outputSchemaAst,\n\t\tdocuments: [],\n\t\tpluginMap: rootConfig.pluginMap,\n\t\tplugins: rootConfig.plugins,\n\t\tconfig: {\n\t\t\tinputMaybeValue: 'T | undefined',\n\t\t\tcontextType: rootConfig.contextType,\n\t\t\tuseTypeImports: true,\n\t\t\tscalars: buildScalarMap(\n\t\t\t\trootConfig.scalars,\n\t\t\t\toptions.cwd,\n\t\t\t\tjoin(options.modulesDir, options.baseTypesPath),\n\t\t\t),\n\t\t},\n\t});\n\n\tconst promises = outputs.map(async (output) => {\n\t\tconst result = await gqlCodegen({\n\t\t\t...output,\n\t\t\tcache,\n\t\t});\n\n\t\treturn {\n\t\t\tfilename: output.filename,\n\t\t\tcontent: result,\n\t\t};\n\t});\n\n\treturn Promise.all(promises);\n}\n","export function createCache(): <T>(\n\tnamespace: string,\n\tkey: string,\n\tfactory: () => Promise<T>,\n) => Promise<T> {\n\tconst cache = new Map<string, Promise<unknown>>();\n\n\treturn function ensure<T>(namespace: string, key: string, factory: () => Promise<T>): Promise<T> {\n\t\tconst cacheKey = `${namespace}:${key}`;\n\n\t\tconst cachedValue = cache.get(cacheKey);\n\n\t\tif (cachedValue) {\n\t\t\treturn cachedValue as Promise<T>;\n\t\t}\n\n\t\tconst value = factory();\n\t\tcache.set(cacheKey, value);\n\n\t\treturn value;\n\t};\n}\n","import { getCachedDocumentNodeFromSchema } from '@graphql-codegen/plugin-helpers';\nimport { GraphQLFileLoader } from '@graphql-tools/graphql-file-loader';\nimport {\n\ttype UnnormalizedTypeDefPointer,\n\tloadSchema as loadSchemaToolkit,\n} from '@graphql-tools/load';\nimport type { BaseLoaderOptions, Loader } from '@graphql-tools/utils';\nimport { type GraphQLSchemaExtensions, validateSchema } from 'graphql';\nimport { hashSchema } from './hash.ts';\n\nexport async function loadSchema(\n\tschemaPointerMap: UnnormalizedTypeDefPointer,\n\tcwd: string,\n\textraLoaders: Loader<BaseLoaderOptions>[] = [],\n) {\n\tconst outputSchemaAst = await loadSchemaToolkit(schemaPointerMap, {\n\t\tloaders: [new GraphQLFileLoader(), ...extraLoaders],\n\t\tcwd,\n\t\tincludeSources: true,\n\t});\n\n\tconst errors = validateSchema(outputSchemaAst);\n\n\tif (errors.length > 0) {\n\t\tconst messages = errors.map((e) => e.toString()).join('\\n\\n--------------------\\n\\n');\n\t\tconst subject = errors.length === 1 ? 'error' : 'errors';\n\t\tthrow new Error(`Invalid schema. Found ${errors.length} ${subject}:\\n\\n${messages}`);\n\t}\n\n\tif (!outputSchemaAst.extensions) {\n\t\toutputSchemaAst.extensions = {};\n\t}\n\n\t(outputSchemaAst.extensions as GraphQLSchemaExtensions).hash = hashSchema(outputSchemaAst);\n\n\treturn {\n\t\toutputSchemaAst,\n\t\toutputSchema: getCachedDocumentNodeFromSchema(outputSchemaAst),\n\t};\n}\n","import { createHash } from 'node:crypto';\nimport { getCachedDocumentNodeFromSchema } from '@graphql-codegen/plugin-helpers';\nimport { type GraphQLSchema, print } from 'graphql';\n\nexport function hashContent(content: string): string {\n\treturn createHash('sha256').update(content).digest('hex');\n}\n\nexport function hashSchema(schema: GraphQLSchema): string {\n\treturn hashContent(print(getCachedDocumentNodeFromSchema(schema)));\n}\n","import { dirname, isAbsolute, joinSafe, relative } from '@baeta/util-path';\nimport { parseMapper } from '@graphql-codegen/visitor-plugin-common';\n\nexport function buildScalarMap(\n\tmap: Record<string, string> | undefined,\n\tcwd: string,\n\ttypesPath: string,\n) {\n\tif (!map) {\n\t\treturn {};\n\t}\n\n\tconst fixedMap: Record<string, string> = {};\n\n\tfor (const key in map) {\n\t\tconst mapped = parseMapper(map[key]);\n\n\t\tif (!mapped.isExternal) {\n\t\t\tfixedMap[key] = map[key];\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isAbsolute(mapped.source)) {\n\t\t\tfixedMap[key] = map[key];\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst scalarPath = joinSafe(cwd, mapped.source);\n\t\tconst relativePath = relative(dirname(typesPath), scalarPath);\n\n\t\tif (mapped.default) {\n\t\t\tfixedMap[key] = `${relativePath}#default`;\n\t\t\tcontinue;\n\t\t}\n\n\t\tfixedMap[key] = `${relativePath}#${mapped.import}`;\n\t}\n\n\treturn fixedMap;\n}\n","import type { PluginFunction, Types } from '@graphql-codegen/plugin-helpers';\nimport { buildMapperImport, parseMapper } from '@graphql-codegen/visitor-plugin-common';\nimport type { GraphQLSchema } from 'graphql';\n\ninterface Config {\n\tcontextType: string | undefined;\n}\n\nexport const plugin: PluginFunction<Config> = async (\n\tschema: GraphQLSchema,\n\tdocuments: Types.DocumentFile[],\n\tconfig: Config,\n): Promise<Types.PluginOutput> => {\n\tconst prepend: string[] = [];\n\tconst mapper = parseMapper(config.contextType || 'any');\n\n\tif (mapper.isExternal && mapper.source) {\n\t\tconst identifier = mapper.default ? 'ContextType' : `${mapper.import} as ContextType`;\n\n\t\tconst result = buildMapperImport(\n\t\t\tmapper.source,\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tidentifier,\n\t\t\t\t\tasDefault: mapper.default,\n\t\t\t\t},\n\t\t\t],\n\t\t\ttrue,\n\t\t);\n\n\t\tif (result) {\n\t\t\tprepend.push(result);\n\t\t}\n\t} else {\n\t\tprepend.push(`type ContextType = ${mapper.type}`);\n\t}\n\n\tprepend.push('export type { ContextType }');\n\n\treturn {\n\t\tcontent: '',\n\t\tprepend: prepend,\n\t};\n};\n\nexport default { plugin };\n","import { basename, join, relative, resolve } from '@baeta/util-path';\nimport type { Types } from '@graphql-codegen/plugin-helpers';\nimport { BaseVisitor, getConfigValue } from '@graphql-codegen/visitor-plugin-common';\nimport type { Source } from '@graphql-tools/utils';\nimport {\n\ttype DocumentNode,\n\ttype ObjectTypeDefinitionNode,\n\ttype UnionTypeDefinitionNode,\n\ttype UnionTypeExtensionNode,\n\tconcatAST,\n\tisScalarType,\n} from 'graphql';\nimport { buildModule } from './builder.ts';\nimport type { ModulesConfig } from './config.ts';\nimport {\n\tcollectObjectFieldTypesAndArguments,\n\tgroupSourcesByModule,\n\tisGraphQLPrimitive,\n\tnormalize,\n\tstripFilename,\n} from './utils.ts';\n\nexport const preset: Types.OutputPreset<ModulesConfig> = {\n\tbuildGeneratesSection: (options) => {\n\t\tconst { baseOutputDir } = options;\n\t\tconst { baseTypesPath, extensionsPath, encapsulateModuleTypes, importExtension } =\n\t\t\toptions.presetConfig;\n\n\t\tconst requireRootResolvers = getConfigValue(options?.presetConfig.requireRootResolvers, false);\n\n\t\tconst cwd = resolve(options.presetConfig.cwd || process.cwd());\n\t\tconst importTypesNamespace = options.presetConfig.importTypesNamespace || 'Types';\n\n\t\tif (!baseTypesPath) {\n\t\t\tthrow new Error(\n\t\t\t\t`Preset \"graphql-modules\" requires you to specify \"baseTypesPath\" configuration and point it to your base types file (generated by \"typescript\" plugin)!`,\n\t\t\t);\n\t\t}\n\n\t\tif (!options.schemaAst?.extensions.sources) {\n\t\t\tthrow new Error(`Preset \"graphql-modules\" requires to use GraphQL SDL`);\n\t\t}\n\n\t\tconst extensions = options.schemaAst?.extensions;\n\t\tconst sources = (extensions?.extendedSources ?? []) as Source[];\n\t\tconst sourcesByModuleMap = groupSourcesByModule(sources, baseOutputDir);\n\t\tconst modules = Object.keys(sourcesByModuleMap);\n\n\t\tconst baseVisitor = new BaseVisitor(options.config, {});\n\t\tconst { fieldTypes, fieldArguments } = collectObjectFieldTypesAndArguments(options.schemaAst);\n\n\t\t// One file with an output from all plugins\n\t\tconst baseOutput: Types.GenerateOptions = {\n\t\t\tfilename: resolve(cwd, baseOutputDir, baseTypesPath),\n\t\t\tschema: options.schema,\n\t\t\tdocuments: options.documents,\n\t\t\tplugins: [\n\t\t\t\t...options.plugins,\n\t\t\t\t{\n\t\t\t\t\t'modules-exported-scalars': {},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t'modules-exported-picks': {},\n\t\t\t\t},\n\t\t\t],\n\t\t\tpluginMap: {\n\t\t\t\t...options.pluginMap,\n\t\t\t\t'modules-exported-scalars': {\n\t\t\t\t\tplugin: (schema) => {\n\t\t\t\t\t\tconst typeMap = schema.getTypeMap();\n\n\t\t\t\t\t\treturn Object.keys(typeMap)\n\t\t\t\t\t\t\t.map((t) => {\n\t\t\t\t\t\t\t\tif (t && typeMap[t] && isScalarType(typeMap[t]) && !isGraphQLPrimitive(t)) {\n\t\t\t\t\t\t\t\t\tconst convertedName = baseVisitor.convertName(t);\n\t\t\t\t\t\t\t\t\treturn `export type ${convertedName} = Scalars[\"${t}\"];`;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t\t.join('\\n');\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'modules-exported-picks': {\n\t\t\t\t\tplugin: (schema) => {\n\t\t\t\t\t\tconst typePicks: string[] = [];\n\t\t\t\t\t\tconst unionPicks: string[] = [];\n\t\t\t\t\t\tconst unionResults: string[] = [];\n\t\t\t\t\t\tconst interfacePicks: string[] = [];\n\t\t\t\t\t\tconst interfaceResults: string[] = [];\n\n\t\t\t\t\t\tconst unionTypesMap: Record<string, string[] | undefined> = {};\n\t\t\t\t\t\tconst interfacesTypesMap: Record<string, string[] | undefined> = {};\n\n\t\t\t\t\t\tfor (const moduleName of modules) {\n\t\t\t\t\t\t\tconst sources = sourcesByModuleMap[moduleName];\n\t\t\t\t\t\t\tconst documents = sources.map((source) => source.document) as DocumentNode[];\n\t\t\t\t\t\t\tconst moduleDocument = concatAST(documents);\n\n\t\t\t\t\t\t\tconst types = moduleDocument.definitions.filter(\n\t\t\t\t\t\t\t\t(def) => def.kind === 'ObjectTypeDefinition',\n\t\t\t\t\t\t\t) as ObjectTypeDefinitionNode[];\n\n\t\t\t\t\t\t\tconst unionsDefinition = moduleDocument.definitions.filter(\n\t\t\t\t\t\t\t\t(def) => def.kind === 'UnionTypeDefinition',\n\t\t\t\t\t\t\t) as UnionTypeDefinitionNode[];\n\n\t\t\t\t\t\t\tconst unionsExtensions = moduleDocument.definitions.filter(\n\t\t\t\t\t\t\t\t(def) => def.kind === 'UnionTypeExtension',\n\t\t\t\t\t\t\t) as UnionTypeExtensionNode[];\n\n\t\t\t\t\t\t\tconst unions = [...unionsDefinition, ...unionsExtensions];\n\n\t\t\t\t\t\t\tfor (const type of types) {\n\t\t\t\t\t\t\t\tconst name = type.name.value;\n\n\t\t\t\t\t\t\t\tfor (const interfaceNode of type.interfaces ?? []) {\n\t\t\t\t\t\t\t\t\tconst interfaceName = interfaceNode.name.value;\n\n\t\t\t\t\t\t\t\t\tif (interfacesTypesMap[interfaceName] == null) {\n\t\t\t\t\t\t\t\t\t\tinterfacesTypesMap[interfaceName] = [];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tinterfacesTypesMap[interfaceName]?.push(name);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (name === 'Query' || name === 'Mutation' || name === 'Subscription') {\n\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst fields = type.fields ?? [];\n\n\t\t\t\t\t\t\t\tif (fields.length === 0) {\n\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst fieldNames = fields.map((f) => `\"${f.name.value}\"`).join(' | ');\n\n\t\t\t\t\t\t\t\ttypePicks.push(` ${name}: ${fieldNames};`);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (const union of unions) {\n\t\t\t\t\t\t\t\tconst types = union.types?.map((t) => t.name.value) ?? [];\n\n\t\t\t\t\t\t\t\tif (unionTypesMap[union.name.value] == null) {\n\t\t\t\t\t\t\t\t\tunionTypesMap[union.name.value] = [];\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tunionTypesMap[union.name.value]?.push(...types);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (const unionName in unionTypesMap) {\n\t\t\t\t\t\t\tconst types = unionTypesMap[unionName];\n\n\t\t\t\t\t\t\tif (types == null || types.length === 0) {\n\t\t\t\t\t\t\t\tunionPicks.push(` ${unionName}: never;`);\n\t\t\t\t\t\t\t\tunionResults.push(` ${unionName}: null;`);\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst typePicks = types.map((t) => {\n\t\t\t\t\t\t\t\tconst normalizedTypeName = baseVisitor.convertName(t, {\n\t\t\t\t\t\t\t\t\tuseTypesSuffix: true,\n\t\t\t\t\t\t\t\t\tuseTypesPrefix: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\treturn `Pick<${normalizedTypeName}, DefinedFieldsWithoutExtensions[\"${t}\"] | \"__typename\">`;\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tconst resultPicks = types.map((t) => `\"${t}\"`);\n\n\t\t\t\t\t\t\tunionPicks.push(` ${unionName}: ${typePicks.join(' | ')};`);\n\t\t\t\t\t\t\tunionResults.push(` ${unionName}: ${resultPicks.join(' | ')} | null;`);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (const interfaceName in interfacesTypesMap) {\n\t\t\t\t\t\t\tconst types = interfacesTypesMap[interfaceName];\n\n\t\t\t\t\t\t\tif (types == null || types.length === 0) {\n\t\t\t\t\t\t\t\tinterfacePicks.push(` ${interfaceName}: never;`);\n\t\t\t\t\t\t\t\tinterfaceResults.push(` ${interfaceName}: null;`);\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst typePicks = types.map((t) => {\n\t\t\t\t\t\t\t\tconst normalizedTypeName = baseVisitor.convertName(t, {\n\t\t\t\t\t\t\t\t\tuseTypesSuffix: true,\n\t\t\t\t\t\t\t\t\tuseTypesPrefix: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\treturn `Pick<${normalizedTypeName}, DefinedFieldsWithoutExtensions[\"${t}\"] | \"__typename\">`;\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tconst resultPicks = types.map((t) => `\"${t}\"`);\n\n\t\t\t\t\t\t\tinterfacePicks.push(` ${interfaceName}: ${typePicks.join(' | ')};`);\n\t\t\t\t\t\t\tinterfaceResults.push(` ${interfaceName}: ${resultPicks.join(' | ')} | null;`);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst fieldsDefinition = `export type DefinedFieldsWithoutExtensions = {\\n${typePicks.join('\\n')}\\n};`;\n\t\t\t\t\t\tconst unionsDefinition = `export type DefinedUnionsWithoutExtensions = {\\n${unionPicks.join('\\n')}\\n};`;\n\t\t\t\t\t\tconst unionsResultsDefinition = `export type DefinedUnionsResults = {\\n${unionResults.join('\\n')}\\n};`;\n\t\t\t\t\t\tconst interfacesDefinition = `export type DefinedInterfacesWithoutExtensions = {\\n${interfacePicks.join('\\n')}\\n};`;\n\t\t\t\t\t\tconst interfacesResultsDefinition = `export type DefinedInterfacesResults = {\\n${interfaceResults.join(\n\t\t\t\t\t\t\t'\\n',\n\t\t\t\t\t\t)}\\n};`;\n\n\t\t\t\t\t\tconst result = [\n\t\t\t\t\t\t\tfieldsDefinition,\n\t\t\t\t\t\t\tunionsDefinition,\n\t\t\t\t\t\t\tunionsResultsDefinition,\n\t\t\t\t\t\t\tinterfacesDefinition,\n\t\t\t\t\t\t\tinterfacesResultsDefinition,\n\t\t\t\t\t\t].join('\\n\\n');\n\n\t\t\t\t\t\treturn `\\n${result}\\n`;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tconfig: {\n\t\t\t\t...options.config,\n\t\t\t\tenumsAsTypes: true,\n\t\t\t},\n\t\t\tschemaAst: options.schemaAst,\n\t\t};\n\n\t\tconst baseTypesFilename =\n\t\t\tbasename(baseTypesPath).replace(/\\.(js|ts|d.ts)$/, '') + (importExtension || '');\n\t\tconst baseTypesDir = stripFilename(baseOutput.filename);\n\n\t\t// One file per each module\n\t\tconst outputs: Types.GenerateOptions[] = modules.map((moduleName) => {\n\t\t\tconst filename = resolve(cwd, baseOutputDir, moduleName, options.presetConfig.filename);\n\t\t\tconst dirpath = stripFilename(filename);\n\t\t\tconst relativePath = relative(dirpath, baseTypesDir);\n\t\t\tconst importPath =\n\t\t\t\toptions.presetConfig.importBaseTypesFrom ||\n\t\t\t\tnormalize(join(relativePath, baseTypesFilename));\n\t\t\tconst sources = sourcesByModuleMap[moduleName];\n\n\t\t\tconst documents = sources.map((source) => source.document) as DocumentNode[];\n\n\t\t\tconst moduleDocument = concatAST(documents);\n\n\t\t\tconst shouldDeclare = filename.endsWith('.d.ts');\n\n\t\t\treturn {\n\t\t\t\tfilename,\n\t\t\t\tschema: options.schema,\n\t\t\t\tdocuments: [],\n\t\t\t\tplugins: [\n\t\t\t\t\t...options.plugins.filter((p) => typeof p === 'object' && !!p.add),\n\t\t\t\t\t{\n\t\t\t\t\t\t'graphql-modules-plugin': {},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tpluginMap: {\n\t\t\t\t\t...options.pluginMap,\n\t\t\t\t\t'graphql-modules-plugin': {\n\t\t\t\t\t\tplugin: (schema) =>\n\t\t\t\t\t\t\tbuildModule(moduleName, moduleDocument, {\n\t\t\t\t\t\t\t\timportNamespace: importTypesNamespace,\n\t\t\t\t\t\t\t\timportPath,\n\t\t\t\t\t\t\t\tencapsulate: encapsulateModuleTypes || 'namespace',\n\t\t\t\t\t\t\t\trequireRootResolvers,\n\t\t\t\t\t\t\t\tshouldDeclare,\n\t\t\t\t\t\t\t\tschema,\n\t\t\t\t\t\t\t\tbaseVisitor,\n\t\t\t\t\t\t\t\tuseGraphQLModules: false,\n\t\t\t\t\t\t\t\tfieldTypes,\n\t\t\t\t\t\t\t\tfieldArguments,\n\t\t\t\t\t\t\t\textensionsPath,\n\t\t\t\t\t\t\t\trootTypes: [\n\t\t\t\t\t\t\t\t\tschema.getQueryType()?.name || '',\n\t\t\t\t\t\t\t\t\tschema.getMutationType()?.name || '',\n\t\t\t\t\t\t\t\t\tschema.getSubscriptionType()?.name || '',\n\t\t\t\t\t\t\t\t].filter(Boolean),\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tconfig: options.config,\n\t\t\t\tschemaAst: options.schemaAst,\n\t\t\t};\n\t\t});\n\n\t\treturn [baseOutput].concat(outputs);\n\t},\n};\n\nexport default preset;\n","import type { BaseVisitor } from '@graphql-codegen/visitor-plugin-common';\nimport { pascalCase } from 'change-case-all';\nimport {\n\ttype DocumentNode,\n\ttype EnumTypeDefinitionNode,\n\ttype EnumTypeExtensionNode,\n\ttype GraphQLSchema,\n\ttype InputObjectTypeDefinitionNode,\n\ttype InputObjectTypeExtensionNode,\n\ttype InterfaceTypeDefinitionNode,\n\ttype InterfaceTypeExtensionNode,\n\tKind,\n\ttype ObjectTypeDefinitionNode,\n\ttype ObjectTypeExtensionNode,\n\ttype TypeDefinitionNode,\n\ttype TypeExtensionNode,\n\ttype UnionTypeDefinitionNode,\n\tisInterfaceType,\n\tisScalarType,\n\tisUnionType,\n\tvisit,\n} from 'graphql';\nimport type { ModulesConfig } from './config.ts';\nimport { type TypeHash, getObjectTypeHash } from './hashes.ts';\nimport {\n\tbuildBlock,\n\tcollectUsedTypes,\n\tconcatByKey,\n\tcreateObject,\n\tindent,\n\tpushUnique,\n\tunique,\n\tuniqueByKey,\n\twithQuotes,\n} from './utils.ts';\n\ntype RegistryKeys = 'objects' | 'inputs' | 'interfaces' | 'scalars' | 'unions' | 'enums';\ntype Registry = Record<RegistryKeys, string[]>;\nconst registryKeys: RegistryKeys[] = [\n\t'objects',\n\t'inputs',\n\t'interfaces',\n\t'scalars',\n\t'unions',\n\t'enums',\n];\nconst resolverKeys: Extract<RegistryKeys, 'objects' | 'enums' | 'scalars'>[] = [\n\t'scalars',\n\t'objects',\n\t'enums',\n];\n\nexport function buildModule(\n\tname: string,\n\tdoc: DocumentNode,\n\t{\n\t\timportNamespace,\n\t\timportPath,\n\t\tencapsulate,\n\t\trequireRootResolvers,\n\t\tshouldDeclare,\n\t\trootTypes,\n\t\tschema,\n\t\tbaseVisitor,\n\t\tfieldTypes,\n\t\tfieldArguments,\n\t\textensionsPath,\n\t}: {\n\t\timportNamespace: string;\n\t\timportPath: string;\n\t\tencapsulate: ModulesConfig['encapsulateModuleTypes'];\n\t\trequireRootResolvers: ModulesConfig['requireRootResolvers'];\n\t\tshouldDeclare: boolean;\n\t\trootTypes: string[];\n\t\tbaseVisitor: BaseVisitor;\n\t\tschema?: GraphQLSchema;\n\t\tuseGraphQLModules: boolean;\n\t\tfieldTypes: Record<string, Record<string, string>>;\n\t\tfieldArguments: Record<string, Record<string, boolean>>;\n\t\textensionsPath?: string;\n\t},\n): string {\n\tconst picks: Record<RegistryKeys, Record<string, string[]>> = createObject(\n\t\tregistryKeys,\n\t\t() => ({}),\n\t);\n\tconst defined: Registry = createObject(registryKeys, () => []);\n\tconst extended: Registry = createObject(registryKeys, () => []);\n\n\tconst hashes: Record<string, TypeHash> = {};\n\n\t// List of types used in objects, fields, arguments etc\n\tconst usedTypes = collectUsedTypes(doc);\n\n\tvisit(doc, {\n\t\tObjectTypeDefinition(node) {\n\t\t\tcollectTypeDefinition(node);\n\t\t},\n\t\tObjectTypeExtension(node) {\n\t\t\tcollectTypeExtension(node);\n\t\t},\n\t\tInputObjectTypeDefinition(node) {\n\t\t\tcollectTypeDefinition(node);\n\t\t},\n\t\tInputObjectTypeExtension(node) {\n\t\t\tcollectTypeExtension(node);\n\t\t},\n\t\tInterfaceTypeDefinition(node) {\n\t\t\tcollectTypeDefinition(node);\n\t\t},\n\t\tInterfaceTypeExtension(node) {\n\t\t\tcollectTypeExtension(node);\n\t\t},\n\t\tScalarTypeDefinition(node) {\n\t\t\tcollectTypeDefinition(node);\n\t\t},\n\t\tUnionTypeDefinition(node) {\n\t\t\tcollectTypeDefinition(node);\n\t\t},\n\t\tUnionTypeExtension(node) {\n\t\t\tcollectTypeExtension(node);\n\t\t},\n\t\tEnumTypeDefinition(node) {\n\t\t\tcollectTypeDefinition(node);\n\t\t},\n\t\tEnumTypeExtension(node) {\n\t\t\tcollectTypeExtension(node);\n\t\t},\n\t});\n\n\t// Defined and Extended types\n\tconst visited: Registry = createObject(registryKeys, (key) =>\n\t\tconcatByKey(defined, extended, key),\n\t);\n\n\t// Types that are not defined or extended in a module, they come from other modules\n\tconst external: Registry = createObject(registryKeys, (key) =>\n\t\tuniqueByKey(extended, defined, key),\n\t);\n\n\t//\n\t//\n\t//\n\t// Prints\n\t//\n\t//\n\t//\n\n\t// An actual output\n\tconst imports = [\n\t\t`import * as ${importNamespace} from \"${importPath}\";`,\n\t\t'import type { DocumentNode } from \"graphql\";',\n\t\t'import * as Baeta from \"@baeta/core/sdk\";',\n\t];\n\n\tif (extensionsPath) {\n\t\timports.push(`import baetaExtensions from \"${extensionsPath}\";`);\n\t}\n\n\timports.push('\\n');\n\n\tlet content = [\n\t\tprintDefinedFields(),\n\t\tprintDefinedEnumValues(),\n\t\tprintDefinedInputFields(),\n\t\tprintSchemaTypes(usedTypes),\n\t\tprintMetadata(),\n\t]\n\t\t.filter(Boolean)\n\t\t.join('\\n\\n');\n\n\tconst moduleNamespace = baseVisitor.convertName(name, {\n\t\tsuffix: 'Module',\n\t\tuseTypesPrefix: false,\n\t\tuseTypesSuffix: false,\n\t});\n\n\tif (encapsulate === 'namespace') {\n\t\tcontent = `${shouldDeclare ? 'declare' : 'export'} namespace ${baseVisitor.convertName(name, {\n\t\t\tsuffix: 'Module',\n\t\t\tuseTypesPrefix: false,\n\t\t\tuseTypesSuffix: false,\n\t\t})} {\\n${shouldDeclare ? `${indent(2)(imports.join('\\n'))}\\n` : ''}${indent(2)(content)}\\n}`;\n\t}\n\n\treturn [...(shouldDeclare ? [] : imports), content, printFactoryMethod()]\n\t\t.filter(Boolean)\n\t\t.join('\\n');\n\n\tfunction printMetadata() {\n\t\treturn `export namespace ModuleMetadata {\n export const id = '${name}';\n export const dirname = './${name}';\n export const hashes = ${JSON.stringify(hashes)};\n export const typedef = ${JSON.stringify(doc)} as unknown as DocumentNode;\n ${printBaetaManager()}\n}`;\n\t}\n\n\t/**\n\t * A dictionary of fields to pick from an object\n\t */\n\tfunction printDefinedFields() {\n\t\treturn buildBlock({\n\t\t\tname: 'interface DefinedFields',\n\t\t\tlines: [...visited.objects, ...visited.interfaces].map(\n\t\t\t\t(typeName) =>\n\t\t\t\t\t`${typeName}: ${printPicks(typeName, {\n\t\t\t\t\t\t...picks.objects,\n\t\t\t\t\t\t...picks.interfaces,\n\t\t\t\t\t})};`,\n\t\t\t),\n\t\t});\n\t}\n\n\tfunction printFactoryMethod() {\n\t\tconst name = moduleNamespace.slice(0, moduleNamespace.length - 6);\n\t\tconst createModuleFn = `create${name}Module`;\n\t\tconst getModuleFn = `get${name}Module`;\n\t\tconst extensionsArg = extensionsPath ? ', baetaExtensions' : '';\n\n\t\treturn `\nexport const ${createModuleFn} = () => Baeta.createModuleManager(ModuleMetadata${extensionsArg});\nexport const ${getModuleFn} = Baeta.createSingletonModule(${createModuleFn});\n`;\n\t}\n\n\t/**\n\t * Baeta manager\n\t */\n\n\tfunction printObjectFieldResolverBuilder(typeName: string, field: string) {\n\t\tconst parentType = getParentType(typeName);\n\t\tconst resultType = getResultType(typeName, field);\n\t\tconst argumentsType = getArgsType(typeName, field);\n\t\tconst contextType = getContextType();\n\t\treturn `${field}: module.createResolverBuilder<${resultType}, ${parentType}, ${contextType}, ${argumentsType}>(\"${typeName}\", \"${field}\"),`;\n\t}\n\n\tfunction printObjectResolverBuilder(typeName: string, objects: Record<string, string[]>) {\n\t\tconst fields =\n\t\t\tobjects[typeName]\n\t\t\t\t?.filter(unique)\n\t\t\t\t.map((field) => printObjectFieldResolverBuilder(typeName, field)) ?? [];\n\n\t\tif (fields.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst parentType = getParentType(typeName);\n\t\tconst contextType = getContextType();\n\n\t\tconst addons = [`...module.createTypeMethods<${parentType}, ${contextType}>(\"${typeName}\"),`];\n\t\tconst contentBody = [...addons, ...fields].map(indent(2)).join('\\n');\n\t\tconst content = `{\\n${contentBody}\\n}`;\n\t\treturn `${typeName}: ${content},`;\n\t}\n\n\tfunction printSubscriptionFieldBuilder(field: string) {\n\t\tconst parentType = getParentType('Subscription');\n\t\tconst resultType = getResultType('Subscription', field);\n\t\tconst argumentsType = getArgsType('Subscription', field);\n\t\tconst contextType = getContextType();\n\t\treturn `${field}: module.createSubscriptionBuilder<${resultType}, ${parentType}, ${contextType}, ${argumentsType}>(\"${field}\"),`;\n\t}\n\n\tfunction printSubscriptionObjectBuilder() {\n\t\tconst subscriptions = picks.objects.Subscription?.filter(unique) ?? [];\n\n\t\tif (subscriptions.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst fields = subscriptions.map((subscription) => printSubscriptionFieldBuilder(subscription));\n\n\t\tconst parentType = getParentType('Subscription');\n\t\tconst contextType = getContextType();\n\t\tconst addons = [`...module.createSubscriptionMethods<${parentType}, ${contextType}>(),`];\n\t\tconst contentBody = [...addons, ...fields].map(indent(2)).join('\\n');\n\n\t\tconst content = `{\\n${contentBody}\\n}`;\n\t\treturn `Subscription: ${content},`;\n\t}\n\n\tfunction printScalarBuilder() {\n\t\tconst scalars = visited.scalars;\n\t\tif (scalars.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst fields = scalars.map((scalar) => `${scalar}: module.createScalarBuilder(\"${scalar}\"),`);\n\t\tconst content = fields.map(indent(2)).join('\\n');\n\t\treturn `Scalar: {\\n${content}\\n},`;\n\t}\n\n\tfunction printTypenameResolverBuilder(\n\t\tname: string,\n\t\tresultNamespace: string,\n\t\tvalueNamespace: string,\n\t) {\n\t\tconst resultType = `${importNamespace}.${resultNamespace}[\"${name}\"]`;\n\t\tconst valueType = `${importNamespace}.${valueNamespace}[\"${name}\"]`;\n\t\tconst contextType = getContextType();\n\t\tconst resolver = `$resolveType: module.createResolveType<${resultType}, ${valueType}, ${contextType}>(\"${name}\"),`;\n\t\treturn `${name}: {\\n${indent(2)(resolver)}\\n},`;\n\t}\n\n\tfunction printInterfaceBuilder() {\n\t\tconst interfaces = defined.interfaces;\n\n\t\tif (interfaces.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn interfaces\n\t\t\t.map((interfaceName) =>\n\t\t\t\tprintTypenameResolverBuilder(\n\t\t\t\t\tinterfaceName,\n\t\t\t\t\t'DefinedInterfacesResults',\n\t\t\t\t\t'DefinedInterfacesWithoutExtensions',\n\t\t\t\t),\n\t\t\t)\n\t\t\t.join('\\n');\n\t}\n\n\tfunction printUnionBuilder() {\n\t\tconst unions = defined.unions;\n\n\t\tif (unions.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn unions\n\t\t\t.map((unionName) =>\n\t\t\t\tprintTypenameResolverBuilder(\n\t\t\t\t\tunionName,\n\t\t\t\t\t'DefinedUnionsResults',\n\t\t\t\t\t'DefinedUnionsWithoutExtensions',\n\t\t\t\t),\n\t\t\t)\n\t\t\t.join('\\n');\n\t}\n\n\tfunction printBaetaManager() {\n\t\tconst objects = visited.objects\n\t\t\t.filter((type) => type !== 'Subscription')\n\t\t\t.map((typeName) => printObjectResolverBuilder(typeName, picks.objects))\n\t\t\t.filter(Boolean);\n\n\t\tconst contextType = getContextType();\n\t\tconst addons = [`...module.createModuleMethods<${contextType}>(),`];\n\n\t\tconst bodyFields = [\n\t\t\t...addons,\n\t\t\t...objects,\n\t\t\tprintScalarBuilder(),\n\t\t\tprintSubscriptionObjectBuilder(),\n\t\t\tprintInterfaceBuilder(),\n\t\t\tprintUnionBuilder(),\n\t\t];\n\n\t\tconst body = bodyFields.filter(Boolean).map(indent(6)).join('\\n');\n\t\tconst content = `{\\n${body}\\n }`;\n\n\t\treturn `\n export function createManager(module: Baeta.ModuleBuilder) {\n return ${content};\n }`;\n\t}\n\n\t/**\n\t * A dictionary of values to pick from an enum\n\t */\n\tfunction printDefinedEnumValues() {\n\t\treturn buildBlock({\n\t\t\tname: 'interface DefinedEnumValues',\n\t\t\tlines: visited.enums.map((typeName) => `${typeName}: ${printPicks(typeName, picks.enums)};`),\n\t\t});\n\t}\n\n\tfunction encapsulateTypeName(typeName: string): string {\n\t\tif (encapsulate === 'prefix') {\n\t\t\treturn `${pascalCase(name)}_${typeName}`;\n\t\t}\n\n\t\treturn typeName;\n\t}\n\n\t/**\n\t * A dictionary of fields to pick from an input\n\t */\n\tfunction printDefinedInputFields() {\n\t\treturn buildBlock({\n\t\t\tname: 'interface DefinedInputFields',\n\t\t\tlines: visited.inputs.map(\n\t\t\t\t(typeName) => `${typeName}: ${printPicks(typeName, picks.inputs)};`,\n\t\t\t),\n\t\t});\n\t}\n\n\t/**\n\t * Prints signatures of schema types with picks\n\t */\n\tfunction printSchemaTypes(types: string[]) {\n\t\treturn types\n\t\t\t.filter((type) => !visited.scalars.includes(type))\n\t\t\t.map(printExportType)\n\t\t\t.join('\\n');\n\t}\n\n\tfunction printPicks(typeName: string, records: Record<string, string[]>): string {\n\t\treturn records[typeName].filter(unique).map(withQuotes).join(' | ');\n\t}\n\n\tfunction printTypeBody(typeName: string): string {\n\t\tconst normalizedTypeName = baseVisitor.convertName(typeName, {\n\t\t\tuseTypesSuffix: true,\n\t\t\tuseTypesPrefix: true,\n\t\t});\n\n\t\tconst coreType = `${importNamespace}.${normalizedTypeName}`;\n\n\t\tif (external.enums.includes(typeName) || external.objects.includes(typeName)) {\n\t\t\tif (schema && isScalarType(schema.getType(typeName))) {\n\t\t\t\treturn `${importNamespace}.Scalars['${typeName}']`;\n\t\t\t}\n\n\t\t\treturn `Pick<${coreType}, ${importNamespace}.DefinedFieldsWithoutExtensions[\"${typeName}\"]>`;\n\t\t}\n\n\t\tif (external.unions.includes(typeName)) {\n\t\t\treturn `${importNamespace}.DefinedUnionsWithoutExtensions[\"${typeName}\"]`;\n\t\t}\n\n\t\tif (external.interfaces.includes(typeName)) {\n\t\t\treturn `Pick<${coreType}, ${importNamespace}.DefinedFieldsWithoutExtensions[\"${typeName}\"]>`;\n\t\t}\n\n\t\tif (defined.enums.includes(typeName) && picks.enums[typeName]) {\n\t\t\treturn `DefinedEnumValues['${typeName}']`;\n\t\t}\n\n\t\tif (defined.unions.includes(typeName) && picks.unions[typeName]) {\n\t\t\treturn `${importNamespace}.DefinedUnionsWithoutExtensions[\"${typeName}\"]`;\n\t\t}\n\n\t\tif (defined.objects.includes(typeName) && picks.objects[typeName]) {\n\t\t\treturn `Pick<${coreType}, DefinedFields['${typeName}']>`;\n\t\t}\n\n\t\tif (defined.interfaces.includes(typeName) && picks.interfaces[typeName]) {\n\t\t\treturn `${importNamespace}.DefinedInterfacesWithoutExtensions[\"${typeName}\"]`;\n\t\t}\n\n\t\tif (defined.inputs.includes(typeName) && picks.inputs[typeName]) {\n\t\t\treturn `Pick<${coreType}, DefinedInputFields['${typeName}']>`;\n\t\t}\n\n\t\tif (isScalarType(schema?.getType(typeName))) {\n\t\t\treturn coreType;\n\t\t}\n\n\t\tif (isInterfaceType(schema?.getType(typeName))) {\n\t\t\treturn `${importNamespace}.DefinedInterfacesWithoutExtensions[\"${typeName}\"]`;\n\t\t}\n\n\t\tif (isUnionType(schema?.getType(typeName))) {\n\t\t\treturn `${importNamespace}.DefinedUnionsWithoutExtensions[\"${typeName}\"]`;\n\t\t}\n\n\t\treturn `Pick<${coreType}, ${importNamespace}.DefinedFieldsWithoutExtensions[\"${typeName}\"]>`;\n\t}\n\n\tfunction printExportType(typeName: string): string {\n\t\treturn `export type ${encapsulateTypeName(typeName)} = ${printTypeBody(typeName)};`;\n\t}\n\n\t//\n\t//\n\t//\n\t// Utils\n\t//\n\t//\n\t//\n\n\tfunction collectFields(\n\t\tnode:\n\t\t\t| ObjectTypeDefinitionNode\n\t\t\t| ObjectTypeExtensionNode\n\t\t\t| InterfaceTypeDefinitionNode\n\t\t\t| InterfaceTypeExtensionNode\n\t\t\t| InputObjectTypeDefinitionNode\n\t\t\t| InputObjectTypeExtensionNode,\n\t\tpicksObj: Record<string, string[]>,\n\t) {\n\t\tconst name = node.name.value;\n\n\t\tif (node.fields) {\n\t\t\tif (!picksObj[name]) {\n\t\t\t\tpicksObj[name] = [];\n\t\t\t}\n\n\t\t\tfor (const field of node.fields) {\n\t\t\t\tpicksObj[name].push(field.name.value);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction collectValuesFromEnum(node: EnumTypeDefinitionNode | EnumTypeExtensionNode) {\n\t\tconst name = node.name.value;\n\n\t\tif (node.values) {\n\t\t\tif (!picks.enums[name]) {\n\t\t\t\tpicks.enums[name] = [];\n\t\t\t}\n\n\t\t\tfor (const field of node.values) {\n\t\t\t\tpicks.enums[name].push(field.name.value);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction collectUnionTypes(node: UnionTypeDefinitionNode) {\n\t\tconst name = node.name.value;\n\n\t\tif (node.types) {\n\t\t\tif (!picks.unions[name]) {\n\t\t\t\tpicks.unions[name] = [];\n\t\t\t}\n\n\t\t\tfor (const type of node.types) {\n\t\t\t\tpicks.unions[name].push(type.name.value);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction collectTypeDefinition(node: TypeDefinitionNode) {\n\t\tconst name = node.name.value;\n\n\t\tswitch (node.kind) {\n\t\t\tcase Kind.OBJECT_TYPE_DEFINITION: {\n\t\t\t\tdefined.objects.push(name);\n\t\t\t\tcollectFields(node, picks.objects);\n\t\t\t\thashes[name] = getObjectTypeHash(node);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.ENUM_TYPE_DEFINITION: {\n\t\t\t\tdefined.enums.push(name);\n\t\t\t\tcollectValuesFromEnum(node);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.INPUT_OBJECT_TYPE_DEFINITION: {\n\t\t\t\tdefined.inputs.push(name);\n\t\t\t\tcollectFields(node, picks.inputs);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.SCALAR_TYPE_DEFINITION: {\n\t\t\t\tdefined.scalars.push(name);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.INTERFACE_TYPE_DEFINITION: {\n\t\t\t\tdefined.interfaces.push(name);\n\t\t\t\tcollectFields(node, picks.interfaces);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.UNION_TYPE_DEFINITION: {\n\t\t\t\tdefined.unions.push(name);\n\t\t\t\tcollectUnionTypes(node);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction collectTypeExtension(node: TypeExtensionNode) {\n\t\tconst name = node.name.value;\n\n\t\tswitch (node.kind) {\n\t\t\tcase Kind.OBJECT_TYPE_EXTENSION: {\n\t\t\t\tcollectFields(node, picks.objects);\n\t\t\t\thashes[name] = getObjectTypeHash(node);\n\n\t\t\t\t// Do not include root types as extensions\n\t\t\t\t// so we can use them in DefinedFields\n\t\t\t\tif (rootTypes.includes(name)) {\n\t\t\t\t\tpushUnique(defined.objects, name);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tpushUnique(extended.objects, name);\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.ENUM_TYPE_EXTENSION: {\n\t\t\t\tcollectValuesFromEnum(node);\n\t\t\t\tpushUnique(extended.enums, name);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.INPUT_OBJECT_TYPE_EXTENSION: {\n\t\t\t\tcollectFields(node, picks.inputs);\n\t\t\t\tpushUnique(extended.inputs, name);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.INTERFACE_TYPE_EXTENSION: {\n\t\t\t\tcollectFields(node, picks.interfaces);\n\t\t\t\tpushUnique(extended.interfaces, name);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.UNION_TYPE_EXTENSION: {\n\t\t\t\tpushUnique(extended.unions, name);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction getParentType(type: string) {\n\t\tif (['Query', 'Mutation', 'Subscription'].includes(type)) {\n\t\t\treturn '{ }';\n\t\t}\n\t\treturn type;\n\t}\n\n\tfunction getResultType(type: string, field: string) {\n\t\treturn fieldTypes?.[type]?.[field] || '{ }';\n\t}\n\n\tfunction getArgsType(type: string, field: string) {\n\t\tconst hasArgs = fieldArguments?.[type]?.[field] ?? false;\n\t\tif (!hasArgs) {\n\t\t\treturn '{ }';\n\t\t}\n\t\tconst fieldUpper = field[0].toUpperCase() + field.slice(1);\n\t\treturn `Types.${type}${fieldUpper}Args`;\n\t}\n\n\tfunction getContextType() {\n\t\treturn 'Types.ContextType';\n\t}\n}\n","import {\n\ttype FieldDefinitionNode,\n\tKind,\n\ttype ObjectTypeDefinitionNode,\n\ttype ObjectTypeExtensionNode,\n\ttype TypeNode,\n} from 'graphql';\nimport hash from 'murmurhash';\n\nexport type TypeHash = {\n\thash: string;\n\tfieldsHashes: Record<string, string>;\n};\n\nexport function getObjectTypeHash(\n\tnode: ObjectTypeDefinitionNode | ObjectTypeExtensionNode,\n): TypeHash {\n\tconst fieldNames = buildFieldsNames(node.fields);\n\tconst typeFields = fieldNames\n\t\t.map(([fieldName, fieldType]) => `${fieldName}:${fieldType}`)\n\t\t.join(',');\n\n\tconst fieldMap: Record<string, string> = {};\n\n\tfor (const [fieldName, fieldType] of fieldNames) {\n\t\tfieldMap[fieldName] = hash.v3(fieldType).toString(36);\n\t}\n\n\treturn {\n\t\thash: hash.v3(typeFields).toString(36),\n\t\tfieldsHashes: fieldMap,\n\t};\n}\n\nfunction buildFieldsNames(fields: readonly FieldDefinitionNode[] = []) {\n\tif (fields.length === 0) {\n\t\treturn [];\n\t}\n\n\tconst fieldsNames: Array<[string, string]> = [];\n\n\tfor (const field of fields) {\n\t\tconst fieldName = field.name.value;\n\t\tconst fieldType = buildTypeName(field.type);\n\t\tfieldsNames.push([fieldName, fieldType]);\n\t}\n\n\treturn fieldsNames.sort(([a], [b]) => a.localeCompare(b));\n}\n\nfunction buildTypeName(node: TypeNode): string {\n\tif (node.kind === Kind.NAMED_TYPE) {\n\t\treturn node.name.value;\n\t}\n\n\tif (node.kind === Kind.LIST_TYPE) {\n\t\treturn `[${buildTypeName(node.type)}]`;\n\t}\n\n\tif (node.kind === Kind.NON_NULL_TYPE) {\n\t\treturn `${buildTypeName(node.type)}!`;\n\t}\n\n\treturn '';\n}\n","import { platform } from 'node:os';\nimport { getBaseType } from '@graphql-codegen/plugin-helpers';\nimport { DEFAULT_SCALARS, wrapTypeWithModifiers } from '@graphql-codegen/visitor-plugin-common';\nimport type { Source } from '@graphql-tools/utils';\nimport {\n\ttype DefinitionNode,\n\ttype DocumentNode,\n\ttype FieldDefinitionNode,\n\ttype GraphQLFieldMap,\n\ttype GraphQLObjectType,\n\ttype GraphQLSchema,\n\ttype InputValueDefinitionNode,\n\tKind,\n\ttype NamedTypeNode,\n\ttype ObjectTypeDefinitionNode,\n\ttype TypeNode,\n} from 'graphql';\nimport parse from 'parse-filepath';\n\nconst sep = '/';\n\n/**\n * Searches every node to collect used types\n */\nexport function collectUsedTypes(doc: DocumentNode): string[] {\n\tconst used: string[] = [];\n\n\tfor (const definition of doc.definitions) {\n\t\tfindRelated(definition);\n\t}\n\n\tfunction markAsUsed(type: string) {\n\t\tpushUnique(used, type);\n\t}\n\n\tfunction findRelated(\n\t\tnode: DefinitionNode | FieldDefinitionNode | InputValueDefinitionNode | NamedTypeNode,\n\t) {\n\t\tif (node.kind === Kind.OBJECT_TYPE_DEFINITION || node.kind === Kind.OBJECT_TYPE_EXTENSION) {\n\t\t\t// Object\n\t\t\tmarkAsUsed(node.name.value);\n\n\t\t\tif (node.fields) {\n\t\t\t\tfor (const field of node.fields) {\n\t\t\t\t\tfindRelated(field);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (node.interfaces) {\n\t\t\t\tfor (const _interface of node.interfaces) {\n\t\t\t\t\tfindRelated(_interface);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (\n\t\t\tnode.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION ||\n\t\t\tnode.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION\n\t\t) {\n\t\t\t// Input\n\t\t\tmarkAsUsed(node.name.value);\n\n\t\t\tif (node.fields) {\n\t\t\t\tfor (const field of node.fields) {\n\t\t\t\t\tfindRelated(field);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (\n\t\t\tnode.kind === Kind.INTERFACE_TYPE_DEFINITION ||\n\t\t\tnode.kind === Kind.INTERFACE_TYPE_EXTENSION\n\t\t) {\n\t\t\t// Interface\n\t\t\tmarkAsUsed(node.name.value);\n\n\t\t\tif (node.fields) {\n\t\t\t\tfor (const field of node.fields) {\n\t\t\t\t\tfindRelated(field);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (node.interfaces) {\n\t\t\t\tfor (const _interface of node.interfaces) {\n\t\t\t\t\tfindRelated(_interface);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (\n\t\t\tnode.kind === Kind.UNION_TYPE_DEFINITION ||\n\t\t\tnode.kind === Kind.UNION_TYPE_EXTENSION\n\t\t) {\n\t\t\t// Union\n\t\t\tmarkAsUsed(node.name.value);\n\n\t\t\tif (node.types) {\n\t\t\t\tfor (const type of node.types) {\n\t\t\t\t\tfindRelated(type);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (node.kind === Kind.ENUM_TYPE_DEFINITION || node.kind === Kind.ENUM_TYPE_EXTENSION) {\n\t\t\t// Enum\n\t\t\tmarkAsUsed(node.name.value);\n\t\t} else if (\n\t\t\tnode.kind === Kind.SCALAR_TYPE_DEFINITION ||\n\t\t\tnode.kind === Kind.SCALAR_TYPE_EXTENSION\n\t\t) {\n\t\t\t// Scalar\n\t\t\tif (!isGraphQLPrimitive(node.name.value)) {\n\t\t\t\tmarkAsUsed(node.name.value);\n\t\t\t}\n\t\t} else if (node.kind === Kind.INPUT_VALUE_DEFINITION) {\n\t\t\t// Argument\n\t\t\tfindRelated(resolveTypeNode(node.type));\n\t\t} else if (node.kind === Kind.FIELD_DEFINITION) {\n\t\t\t// Field\n\t\t\tfindRelated(resolveTypeNode(node.type));\n\n\t\t\tif (node.arguments) {\n\t\t\t\tfor (const argument of node.arguments) {\n\t\t\t\t\tfindRelated(argument);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (\n\t\t\tnode.kind === Kind.NAMED_TYPE &&\n\t\t\t// Named type\n\t\t\t!isGraphQLPrimitive(node.name.value)\n\t\t) {\n\t\t\tmarkAsUsed(node.name.value);\n\t\t}\n\t}\n\n\treturn used;\n}\n\nfunction collectObjectFieldType(\n\tnode: ObjectTypeDefinitionNode,\n\tfieldDefinition: FieldDefinitionNode,\n\tfieldsMap: GraphQLFieldMap<unknown, unknown>,\n\tfieldTypes: Record<string, Record<string, string>>,\n) {\n\tconst objectName = node.name.value;\n\tconst fieldName = fieldDefinition.name.value;\n\n\tconst field = fieldsMap[fieldDefinition.name.value];\n\tconst baseName = getBaseType(field.type).name;\n\tconst isDefaultScalar = DEFAULT_SCALARS[baseName] != null;\n\tconst name = isDefaultScalar ? `Types.Scalars[\"${baseName}\"][\"output\"]` : baseName;\n\n\tconst type = wrapTypeWithModifiers(name, field.type, {\n\t\twrapOptional: (str: string) => {\n\t\t\treturn `Types.Maybe<${str}>`;\n\t\t},\n\t\twrapArray: (str: string) => {\n\t\t\treturn `Array<${str}>`;\n\t\t},\n\t});\n\n\tif (fieldTypes[objectName] == null) {\n\t\tfieldTypes[objectName] = {};\n\t}\n\tfieldTypes[objectName][fieldName] = type;\n}\n\nfunction collectObjectFieldArguments(\n\tnode: ObjectTypeDefinitionNode,\n\tfieldDefinition: FieldDefinitionNode,\n\tfieldArguments: Record<string, Record<string, boolean>>,\n) {\n\tconst objectName = node.name.value;\n\tconst fieldName = fieldDefinition.name.value;\n\tconst hasArguments = fieldDefinition.arguments != null && fieldDefinition.arguments.length > 0;\n\n\tif (fieldArguments[objectName] == null) {\n\t\tfieldArguments[objectName] = {};\n\t}\n\tfieldArguments[objectName][fieldName] = hasArguments;\n}\n\nexport function collectObjectFieldTypesAndArguments(schema?: GraphQLSchema) {\n\tconst fieldTypes: Record<string, Record<string, string>> = {};\n\tconst fieldArguments: Record<string, Record<string, boolean>> = {};\n\n\tif (!schema) {\n\t\treturn { fieldTypes, fieldArguments };\n\t}\n\n\tconst schemaTypes = schema.getTypeMap();\n\n\tfor (const type of Object.values(schemaTypes)) {\n\t\tif (type.astNode?.kind !== Kind.OBJECT_TYPE_DEFINITION) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst schemaType = schemaTypes[type.name] as GraphQLObjectType;\n\t\tconst fieldsMap = schemaType.getFields();\n\n\t\tfor (const field of type.astNode.fields ?? []) {\n\t\t\tcollectObjectFieldArguments(type.astNode, field, fieldArguments);\n\t\t\tcollectObjectFieldType(type.astNode, field, fieldsMap, fieldTypes);\n\t\t}\n\t}\n\n\treturn { fieldTypes, fieldArguments };\n}\n\nexport function resolveTypeNode(node: TypeNode): NamedTypeNode {\n\tif (node.kind === Kind.LIST_TYPE) {\n\t\treturn resolveTypeNode(node.type);\n\t}\n\n\tif (node.kind === Kind.NON_NULL_TYPE) {\n\t\treturn resolveTypeNode(node.type);\n\t}\n\n\treturn node;\n}\n\nexport function isGraphQLPrimitive(name: string): boolean {\n\treturn ['String', 'Boolean', 'ID', 'Float', 'Int'].includes(name);\n}\n\nexport function unique<T>(val: T, i: number, all: T[]): boolean {\n\treturn i === all.indexOf(val);\n}\n\nexport function withQuotes(val: string): string {\n\treturn `'${val}'`;\n}\n\nexport function indent(size: number) {\n\tconst space = new Array(size).fill(' ').join('');\n\n\tfunction indentInner(val: string): string {\n\t\treturn val\n\t\t\t.split('\\n')\n\t\t\t.map((line) => `${space}${line}`)\n\t\t\t.join('\\n');\n\t}\n\n\treturn indentInner;\n}\n\nexport function buildBlock({ name, lines }: { name: string; lines: string[] }): string {\n\tif (!lines.length) {\n\t\treturn '';\n\t}\n\n\treturn [`${name} {`, ...lines.map(indent(2)), '};'].join('\\n');\n}\n\nconst getRelativePath = (filepath: string, basePath: string) => {\n\tconst normalizedFilepath = normalize(filepath);\n\tconst normalizedBasePath = ensureStartsWithSeparator(\n\t\tnormalize(ensureEndsWithSeparator(basePath)),\n\t);\n\tconst [, relativePath] = normalizedFilepath.split(normalizedBasePath);\n\treturn relativePath;\n};\n\nexport function groupSourcesByModule(\n\tsources: Source[],\n\tbasePath: string,\n): Record<string, Source[]> {\n\tconst grouped: Record<string, Source[]> = {};\n\n\tfor (const source of sources) {\n\t\tif (!source.location) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst relativePath = getRelativePath(source.location, basePath);\n\n\t\tif (relativePath) {\n\t\t\t// PERF: we could guess the module by matching source.location with a list of already resolved paths\n\t\t\tconst mod = extractModuleDirectory(source.location, basePath);\n\n\t\t\tif (!grouped[mod]) {\n\t\t\t\tgrouped[mod] = [];\n\t\t\t}\n\n\t\t\tgrouped[mod].push(source);\n\t\t}\n\t}\n\n\treturn grouped;\n}\n\nfunction extractModuleDirectory(filepath: string, basePath: string): string {\n\tconst relativePath = getRelativePath(filepath, basePath);\n\n\tconst [moduleDirectory] = relativePath.split(sep);\n\n\treturn moduleDirectory;\n}\n\nexport function stripFilename(path: string) {\n\tconst parsedPath = parse(path);\n\treturn normalize(parsedPath.dir);\n}\n\nexport function normalize(path: string) {\n\treturn path.replace(/\\\\/g, '/');\n}\n\nfunction ensureEndsWithSeparator(path: string) {\n\treturn path.endsWith(sep) ? path : path + sep;\n}\n\nfunction ensureStartsWithSeparator(path: string) {\n\tif (platform() === 'win32') {\n\t\treturn path;\n\t}\n\n\treturn path.startsWith('.')\n\t\t? path.replace(/^(..\\/)|(.\\/)/, '/')\n\t\t: path.startsWith('/')\n\t\t\t? path\n\t\t\t: `/${path}`;\n}\n\n/**\n * Pushes an item to a list only if the list doesn't include the item\n */\nexport function pushUnique<T>(list: T[], item: T): void {\n\tif (!list.includes(item)) {\n\t\tlist.push(item);\n\t}\n}\n\nexport function concatByKey<T extends Record<string, string[]>, K extends keyof T>(\n\tleft: T,\n\tright: T,\n\tkey: K,\n) {\n\t// Remove duplicate, if an element is in right & left, it will be only once in the returned array.\n\treturn [...new Set([...left[key], ...right[key]])];\n}\n\nexport function uniqueByKey<T extends Record<string, string[]>, K extends keyof T>(\n\tleft: T,\n\tright: T,\n\tkey: K,\n) {\n\treturn left[key].filter((item) => !right[key].includes(item));\n}\n\nexport function createObject<K extends string, T>(keys: K[], valueFn: (key: K) => T) {\n\tconst obj: Record<K, T> = {} as Record<K, T>;\n\n\tfor (const key of keys) {\n\t\tobj[key] = valueFn(key);\n\t}\n\n\treturn obj;\n}\n"],"mappings":"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","names":["join","getCachedDocumentNodeFromSchema","getCachedDocumentNodeFromSchema","parseMapper","relative","isScalarType","Kind","Kind","name","content","Kind","isScalarType","sources","unionsDefinition","types","typePicks","relative","hash","join","result"]}
|
|
1
|
+
{"version":3,"sources":["../index.ts","../lib/codegen.ts","../utils/cache.ts","../utils/load.ts","../utils/hash.ts","../utils/scalars.ts","../lib/context/index.ts","../lib/modules/index.ts","../lib/modules/builder.ts","../lib/modules/hashes.ts","../lib/modules/utils.ts"],"sourcesContent":["import { type WatcherFile, createPluginV1, isMatch } from '@baeta/generator-sdk';\nimport { generate } from './lib/codegen.ts';\n\nexport function graphqlPlugin() {\n\treturn createPluginV1({\n\t\tname: 'graphql',\n\t\tactionName: 'GraphQL modules',\n\t\twatch: (options, watcher, reload) => {\n\t\t\tconst handleChange = (file: WatcherFile) => {\n\t\t\t\tif (isMatch(file.relativePath, options.schemas)) {\n\t\t\t\t\treload(file);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\twatcher.on('update', handleChange);\n\t\t\twatcher.on('delete', handleChange);\n\t\t},\n\t\tgenerate: async (ctx, next) => {\n\t\t\tconst items = await generate(ctx.generatorOptions);\n\n\t\t\tfor (const item of items) {\n\t\t\t\tctx.fileManager.createAndAdd(item.filename, item.content, 'graphql');\n\t\t\t}\n\n\t\t\treturn next();\n\t\t},\n\t});\n}\n","import type { NormalizedGeneratorOptions } from '@baeta/generator-sdk';\nimport { join } from '@baeta/util-path';\nimport { codegen as gqlCodegen } from '@graphql-codegen/core';\nimport { normalizeConfig, normalizeInstanceOrArray } from '@graphql-codegen/plugin-helpers';\nimport * as typescriptPlugin from '@graphql-codegen/typescript';\nimport type { UnnormalizedTypeDefPointer } from '@graphql-tools/load';\nimport { createCache } from '../utils/cache.ts';\nimport { loadSchema } from '../utils/load.ts';\nimport { buildScalarMap } from '../utils/scalars.ts';\nimport * as contextPlugin from './context/index.ts';\nimport * as modules from './modules/index.ts';\n\nexport async function generate(options: NormalizedGeneratorOptions) {\n\tconst rootConfig = {\n\t\tschemas: normalizeInstanceOrArray(options.schemas),\n\t\tmodulesDir: options.modulesDir,\n\t\tbaseTypesPath: options.baseTypesPath,\n\t\tcontextType: options.contextType,\n\t\tmoduleDefinitionName: options.moduleDefinitionName,\n\t\tscalars: options.scalars,\n\t\tplugins: normalizeConfig(['typescript', 'context']),\n\t\tpluginMap: {\n\t\t\ttypescript: typescriptPlugin,\n\t\t\tcontext: contextPlugin,\n\t\t},\n\t};\n\n\tconst cache = createCache();\n\n\tconst schemaPointerMap: UnnormalizedTypeDefPointer = {};\n\tfor (const ptr of rootConfig.schemas) {\n\t\tif (typeof ptr === 'string') {\n\t\t\tschemaPointerMap[ptr] = {};\n\t\t} else if (typeof ptr === 'object') {\n\t\t\tObject.assign(schemaPointerMap, ptr);\n\t\t}\n\t}\n\n\tconst hash = JSON.stringify(schemaPointerMap);\n\tconst result = await cache('schema', hash, async () => {\n\t\treturn loadSchema(schemaPointerMap, options.cwd, options.loaders);\n\t});\n\n\tconst outputs = await modules.preset.buildGeneratesSection({\n\t\tbaseOutputDir: options.modulesDir,\n\t\tpresetConfig: {\n\t\t\tbaseTypesPath: rootConfig.baseTypesPath,\n\t\t\tfilename: rootConfig.moduleDefinitionName,\n\t\t\tencapsulateModuleTypes: 'none',\n\t\t\textensionsPath: options.extensions,\n\t\t\timportExtension: options.importExtension,\n\t\t},\n\t\tschema: result.outputSchema,\n\t\tschemaAst: result.outputSchemaAst,\n\t\tdocuments: [],\n\t\tpluginMap: rootConfig.pluginMap,\n\t\tplugins: rootConfig.plugins,\n\t\tconfig: {\n\t\t\tinputMaybeValue: 'T | undefined',\n\t\t\tcontextType: rootConfig.contextType,\n\t\t\tuseTypeImports: true,\n\t\t\tscalars: buildScalarMap(\n\t\t\t\trootConfig.scalars,\n\t\t\t\toptions.cwd,\n\t\t\t\tjoin(options.modulesDir, options.baseTypesPath),\n\t\t\t),\n\t\t},\n\t});\n\n\tconst promises = outputs.map(async (output) => {\n\t\tconst result = await gqlCodegen({\n\t\t\t...output,\n\t\t\tcache,\n\t\t});\n\n\t\treturn {\n\t\t\tfilename: output.filename,\n\t\t\tcontent: result,\n\t\t};\n\t});\n\n\treturn Promise.all(promises);\n}\n","export function createCache(): <T>(\n\tnamespace: string,\n\tkey: string,\n\tfactory: () => Promise<T>,\n) => Promise<T> {\n\tconst cache = new Map<string, Promise<unknown>>();\n\n\treturn function ensure<T>(namespace: string, key: string, factory: () => Promise<T>): Promise<T> {\n\t\tconst cacheKey = `${namespace}:${key}`;\n\n\t\tconst cachedValue = cache.get(cacheKey);\n\n\t\tif (cachedValue) {\n\t\t\treturn cachedValue as Promise<T>;\n\t\t}\n\n\t\tconst value = factory();\n\t\tcache.set(cacheKey, value);\n\n\t\treturn value;\n\t};\n}\n","import { getCachedDocumentNodeFromSchema } from '@graphql-codegen/plugin-helpers';\nimport { GraphQLFileLoader } from '@graphql-tools/graphql-file-loader';\nimport {\n\ttype UnnormalizedTypeDefPointer,\n\tloadSchema as loadSchemaToolkit,\n} from '@graphql-tools/load';\nimport type { BaseLoaderOptions, Loader } from '@graphql-tools/utils';\nimport { type GraphQLSchemaExtensions, validateSchema } from 'graphql';\nimport { hashSchema } from './hash.ts';\n\nexport async function loadSchema(\n\tschemaPointerMap: UnnormalizedTypeDefPointer,\n\tcwd: string,\n\textraLoaders: Loader<BaseLoaderOptions>[] = [],\n) {\n\tconst outputSchemaAst = await loadSchemaToolkit(schemaPointerMap, {\n\t\tloaders: [new GraphQLFileLoader(), ...extraLoaders],\n\t\tcwd,\n\t\tincludeSources: true,\n\t});\n\n\tconst errors = validateSchema(outputSchemaAst);\n\n\tif (errors.length > 0) {\n\t\tconst messages = errors.map((e) => e.toString()).join('\\n\\n--------------------\\n\\n');\n\t\tconst subject = errors.length === 1 ? 'error' : 'errors';\n\t\tthrow new Error(`Invalid schema. Found ${errors.length} ${subject}:\\n\\n${messages}`);\n\t}\n\n\tif (!outputSchemaAst.extensions) {\n\t\toutputSchemaAst.extensions = {};\n\t}\n\n\t(outputSchemaAst.extensions as GraphQLSchemaExtensions).hash = hashSchema(outputSchemaAst);\n\n\treturn {\n\t\toutputSchemaAst,\n\t\toutputSchema: getCachedDocumentNodeFromSchema(outputSchemaAst),\n\t};\n}\n","import { createHash } from 'node:crypto';\nimport { getCachedDocumentNodeFromSchema } from '@graphql-codegen/plugin-helpers';\nimport { type GraphQLSchema, print } from 'graphql';\n\nexport function hashContent(content: string): string {\n\treturn createHash('sha256').update(content).digest('hex');\n}\n\nexport function hashSchema(schema: GraphQLSchema): string {\n\treturn hashContent(print(getCachedDocumentNodeFromSchema(schema)));\n}\n","import { dirname, isAbsolute, joinSafe, relative } from '@baeta/util-path';\nimport { parseMapper } from '@graphql-codegen/visitor-plugin-common';\n\nexport function buildScalarMap(\n\tmap: Record<string, string> | undefined,\n\tcwd: string,\n\ttypesPath: string,\n) {\n\tif (!map) {\n\t\treturn {};\n\t}\n\n\tconst fixedMap: Record<string, string> = {};\n\n\tfor (const key in map) {\n\t\tconst mapped = parseMapper(map[key]);\n\n\t\tif (!mapped.isExternal) {\n\t\t\tfixedMap[key] = map[key];\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isAbsolute(mapped.source)) {\n\t\t\tfixedMap[key] = map[key];\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst scalarPath = joinSafe(cwd, mapped.source);\n\t\tconst relativePath = relative(dirname(typesPath), scalarPath);\n\n\t\tif (mapped.default) {\n\t\t\tfixedMap[key] = `${relativePath}#default`;\n\t\t\tcontinue;\n\t\t}\n\n\t\tfixedMap[key] = `${relativePath}#${mapped.import}`;\n\t}\n\n\treturn fixedMap;\n}\n","import type { PluginFunction, Types } from '@graphql-codegen/plugin-helpers';\nimport { buildMapperImport, parseMapper } from '@graphql-codegen/visitor-plugin-common';\nimport type { GraphQLSchema } from 'graphql';\n\ninterface Config {\n\tcontextType: string | undefined;\n}\n\nexport const plugin: PluginFunction<Config> = async (\n\tschema: GraphQLSchema,\n\tdocuments: Types.DocumentFile[],\n\tconfig: Config,\n): Promise<Types.PluginOutput> => {\n\tconst prepend: string[] = [];\n\tconst mapper = parseMapper(config.contextType || 'any');\n\n\tif (mapper.isExternal && mapper.source) {\n\t\tconst identifier = mapper.default ? 'ContextType' : `${mapper.import} as ContextType`;\n\n\t\tconst result = buildMapperImport(\n\t\t\tmapper.source,\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tidentifier,\n\t\t\t\t\tasDefault: mapper.default,\n\t\t\t\t},\n\t\t\t],\n\t\t\ttrue,\n\t\t);\n\n\t\tif (result) {\n\t\t\tprepend.push(result);\n\t\t}\n\t} else {\n\t\tprepend.push(`type ContextType = ${mapper.type}`);\n\t}\n\n\tprepend.push('export type { ContextType }');\n\n\treturn {\n\t\tcontent: '',\n\t\tprepend: prepend,\n\t};\n};\n\nexport default { plugin };\n","/**\n * Originally based on graphql-modules preset of graphql-code-generator\n * Source: https://github.com/dotansimha/graphql-code-generator/blob/master/packages/presets/graphql-modules/src/index.ts\n * Copyright (c) 2016 Dotan Simha\n * Modified by Baeta developers\n */\nimport { basename, join, relative, resolve } from '@baeta/util-path';\nimport type { Types } from '@graphql-codegen/plugin-helpers';\nimport { BaseVisitor, getConfigValue } from '@graphql-codegen/visitor-plugin-common';\nimport type { Source } from '@graphql-tools/utils';\nimport {\n\ttype DocumentNode,\n\ttype ObjectTypeDefinitionNode,\n\ttype UnionTypeDefinitionNode,\n\ttype UnionTypeExtensionNode,\n\tconcatAST,\n\tisScalarType,\n} from 'graphql';\nimport { buildModule } from './builder.ts';\nimport type { ModulesConfig } from './config.ts';\nimport {\n\tcollectObjectFieldTypesAndArguments,\n\tgroupSourcesByModule,\n\tisGraphQLPrimitive,\n\tnormalize,\n\tstripFilename,\n} from './utils.ts';\n\nexport const preset: Types.OutputPreset<ModulesConfig> = {\n\tbuildGeneratesSection: (options) => {\n\t\tconst { baseOutputDir } = options;\n\t\tconst { baseTypesPath, extensionsPath, encapsulateModuleTypes, importExtension } =\n\t\t\toptions.presetConfig;\n\n\t\tconst requireRootResolvers = getConfigValue(options?.presetConfig.requireRootResolvers, false);\n\n\t\tconst cwd = resolve(options.presetConfig.cwd || process.cwd());\n\t\tconst importTypesNamespace = options.presetConfig.importTypesNamespace || 'Types';\n\n\t\tif (!baseTypesPath) {\n\t\t\tthrow new Error(\n\t\t\t\t`Preset \"graphql-modules\" requires you to specify \"baseTypesPath\" configuration and point it to your base types file (generated by \"typescript\" plugin)!`,\n\t\t\t);\n\t\t}\n\n\t\tif (!options.schemaAst?.extensions.sources) {\n\t\t\tthrow new Error(`Preset \"graphql-modules\" requires to use GraphQL SDL`);\n\t\t}\n\n\t\tconst extensions = options.schemaAst?.extensions;\n\t\tconst sources = (extensions?.extendedSources ?? []) as Source[];\n\t\tconst sourcesByModuleMap = groupSourcesByModule(sources, baseOutputDir);\n\t\tconst modules = Object.keys(sourcesByModuleMap);\n\n\t\tconst baseVisitor = new BaseVisitor(options.config, {});\n\t\tconst { fieldTypes, fieldArguments } = collectObjectFieldTypesAndArguments(options.schemaAst);\n\n\t\t// One file with an output from all plugins\n\t\tconst baseOutput: Types.GenerateOptions = {\n\t\t\tfilename: resolve(cwd, baseOutputDir, baseTypesPath),\n\t\t\tschema: options.schema,\n\t\t\tdocuments: options.documents,\n\t\t\tplugins: [\n\t\t\t\t...options.plugins,\n\t\t\t\t{\n\t\t\t\t\t'modules-exported-scalars': {},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t'modules-exported-picks': {},\n\t\t\t\t},\n\t\t\t],\n\t\t\tpluginMap: {\n\t\t\t\t...options.pluginMap,\n\t\t\t\t'modules-exported-scalars': {\n\t\t\t\t\tplugin: (schema) => {\n\t\t\t\t\t\tconst typeMap = schema.getTypeMap();\n\n\t\t\t\t\t\treturn Object.keys(typeMap)\n\t\t\t\t\t\t\t.map((t) => {\n\t\t\t\t\t\t\t\tif (t && typeMap[t] && isScalarType(typeMap[t]) && !isGraphQLPrimitive(t)) {\n\t\t\t\t\t\t\t\t\tconst convertedName = baseVisitor.convertName(t);\n\t\t\t\t\t\t\t\t\treturn `export type ${convertedName} = Scalars[\"${t}\"];`;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t\t.join('\\n');\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'modules-exported-picks': {\n\t\t\t\t\tplugin: (schema) => {\n\t\t\t\t\t\tconst typePicks: string[] = [];\n\t\t\t\t\t\tconst unionPicks: string[] = [];\n\t\t\t\t\t\tconst unionResults: string[] = [];\n\t\t\t\t\t\tconst interfacePicks: string[] = [];\n\t\t\t\t\t\tconst interfaceResults: string[] = [];\n\n\t\t\t\t\t\tconst unionTypesMap: Record<string, string[] | undefined> = {};\n\t\t\t\t\t\tconst interfacesTypesMap: Record<string, string[] | undefined> = {};\n\n\t\t\t\t\t\tfor (const moduleName of modules) {\n\t\t\t\t\t\t\tconst sources = sourcesByModuleMap[moduleName];\n\t\t\t\t\t\t\tconst documents = sources.map((source) => source.document) as DocumentNode[];\n\t\t\t\t\t\t\tconst moduleDocument = concatAST(documents);\n\n\t\t\t\t\t\t\tconst types = moduleDocument.definitions.filter(\n\t\t\t\t\t\t\t\t(def) => def.kind === 'ObjectTypeDefinition',\n\t\t\t\t\t\t\t) as ObjectTypeDefinitionNode[];\n\n\t\t\t\t\t\t\tconst unionsDefinition = moduleDocument.definitions.filter(\n\t\t\t\t\t\t\t\t(def) => def.kind === 'UnionTypeDefinition',\n\t\t\t\t\t\t\t) as UnionTypeDefinitionNode[];\n\n\t\t\t\t\t\t\tconst unionsExtensions = moduleDocument.definitions.filter(\n\t\t\t\t\t\t\t\t(def) => def.kind === 'UnionTypeExtension',\n\t\t\t\t\t\t\t) as UnionTypeExtensionNode[];\n\n\t\t\t\t\t\t\tconst unions = [...unionsDefinition, ...unionsExtensions];\n\n\t\t\t\t\t\t\tfor (const type of types) {\n\t\t\t\t\t\t\t\tconst name = type.name.value;\n\n\t\t\t\t\t\t\t\tfor (const interfaceNode of type.interfaces ?? []) {\n\t\t\t\t\t\t\t\t\tconst interfaceName = interfaceNode.name.value;\n\n\t\t\t\t\t\t\t\t\tif (interfacesTypesMap[interfaceName] == null) {\n\t\t\t\t\t\t\t\t\t\tinterfacesTypesMap[interfaceName] = [];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tinterfacesTypesMap[interfaceName]?.push(name);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (name === 'Query' || name === 'Mutation' || name === 'Subscription') {\n\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst fields = type.fields ?? [];\n\n\t\t\t\t\t\t\t\tif (fields.length === 0) {\n\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst fieldNames = fields.map((f) => `\"${f.name.value}\"`).join(' | ');\n\n\t\t\t\t\t\t\t\ttypePicks.push(` ${name}: ${fieldNames};`);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (const union of unions) {\n\t\t\t\t\t\t\t\tconst types = union.types?.map((t) => t.name.value) ?? [];\n\n\t\t\t\t\t\t\t\tif (unionTypesMap[union.name.value] == null) {\n\t\t\t\t\t\t\t\t\tunionTypesMap[union.name.value] = [];\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tunionTypesMap[union.name.value]?.push(...types);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (const unionName in unionTypesMap) {\n\t\t\t\t\t\t\tconst types = unionTypesMap[unionName];\n\n\t\t\t\t\t\t\tif (types == null || types.length === 0) {\n\t\t\t\t\t\t\t\tunionPicks.push(` ${unionName}: never;`);\n\t\t\t\t\t\t\t\tunionResults.push(` ${unionName}: null;`);\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst typePicks = types.map((t) => {\n\t\t\t\t\t\t\t\tconst normalizedTypeName = baseVisitor.convertName(t, {\n\t\t\t\t\t\t\t\t\tuseTypesSuffix: true,\n\t\t\t\t\t\t\t\t\tuseTypesPrefix: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\treturn `Pick<${normalizedTypeName}, DefinedFieldsWithoutExtensions[\"${t}\"] | \"__typename\">`;\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tconst resultPicks = types.map((t) => `\"${t}\"`);\n\n\t\t\t\t\t\t\tunionPicks.push(` ${unionName}: ${typePicks.join(' | ')};`);\n\t\t\t\t\t\t\tunionResults.push(` ${unionName}: ${resultPicks.join(' | ')} | null;`);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (const interfaceName in interfacesTypesMap) {\n\t\t\t\t\t\t\tconst types = interfacesTypesMap[interfaceName];\n\n\t\t\t\t\t\t\tif (types == null || types.length === 0) {\n\t\t\t\t\t\t\t\tinterfacePicks.push(` ${interfaceName}: never;`);\n\t\t\t\t\t\t\t\tinterfaceResults.push(` ${interfaceName}: null;`);\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst typePicks = types.map((t) => {\n\t\t\t\t\t\t\t\tconst normalizedTypeName = baseVisitor.convertName(t, {\n\t\t\t\t\t\t\t\t\tuseTypesSuffix: true,\n\t\t\t\t\t\t\t\t\tuseTypesPrefix: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\treturn `Pick<${normalizedTypeName}, DefinedFieldsWithoutExtensions[\"${t}\"] | \"__typename\">`;\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tconst resultPicks = types.map((t) => `\"${t}\"`);\n\n\t\t\t\t\t\t\tinterfacePicks.push(` ${interfaceName}: ${typePicks.join(' | ')};`);\n\t\t\t\t\t\t\tinterfaceResults.push(` ${interfaceName}: ${resultPicks.join(' | ')} | null;`);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst fieldsDefinition = `export type DefinedFieldsWithoutExtensions = {\\n${typePicks.join('\\n')}\\n};`;\n\t\t\t\t\t\tconst unionsDefinition = `export type DefinedUnionsWithoutExtensions = {\\n${unionPicks.join('\\n')}\\n};`;\n\t\t\t\t\t\tconst unionsResultsDefinition = `export type DefinedUnionsResults = {\\n${unionResults.join('\\n')}\\n};`;\n\t\t\t\t\t\tconst interfacesDefinition = `export type DefinedInterfacesWithoutExtensions = {\\n${interfacePicks.join('\\n')}\\n};`;\n\t\t\t\t\t\tconst interfacesResultsDefinition = `export type DefinedInterfacesResults = {\\n${interfaceResults.join(\n\t\t\t\t\t\t\t'\\n',\n\t\t\t\t\t\t)}\\n};`;\n\n\t\t\t\t\t\tconst result = [\n\t\t\t\t\t\t\tfieldsDefinition,\n\t\t\t\t\t\t\tunionsDefinition,\n\t\t\t\t\t\t\tunionsResultsDefinition,\n\t\t\t\t\t\t\tinterfacesDefinition,\n\t\t\t\t\t\t\tinterfacesResultsDefinition,\n\t\t\t\t\t\t].join('\\n\\n');\n\n\t\t\t\t\t\treturn `\\n${result}\\n`;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tconfig: {\n\t\t\t\t...options.config,\n\t\t\t\tenumsAsTypes: true,\n\t\t\t},\n\t\t\tschemaAst: options.schemaAst,\n\t\t};\n\n\t\tconst baseTypesFilename =\n\t\t\tbasename(baseTypesPath).replace(/\\.(js|ts|d.ts)$/, '') + (importExtension || '');\n\t\tconst baseTypesDir = stripFilename(baseOutput.filename);\n\n\t\t// One file per each module\n\t\tconst outputs: Types.GenerateOptions[] = modules.map((moduleName) => {\n\t\t\tconst filename = resolve(cwd, baseOutputDir, moduleName, options.presetConfig.filename);\n\t\t\tconst dirpath = stripFilename(filename);\n\t\t\tconst relativePath = relative(dirpath, baseTypesDir);\n\t\t\tconst importPath =\n\t\t\t\toptions.presetConfig.importBaseTypesFrom ||\n\t\t\t\tnormalize(join(relativePath, baseTypesFilename));\n\t\t\tconst sources = sourcesByModuleMap[moduleName];\n\n\t\t\tconst documents = sources.map((source) => source.document) as DocumentNode[];\n\n\t\t\tconst moduleDocument = concatAST(documents);\n\n\t\t\tconst shouldDeclare = filename.endsWith('.d.ts');\n\n\t\t\treturn {\n\t\t\t\tfilename,\n\t\t\t\tschema: options.schema,\n\t\t\t\tdocuments: [],\n\t\t\t\tplugins: [\n\t\t\t\t\t...options.plugins.filter((p) => typeof p === 'object' && !!p.add),\n\t\t\t\t\t{\n\t\t\t\t\t\t'graphql-modules-plugin': {},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tpluginMap: {\n\t\t\t\t\t...options.pluginMap,\n\t\t\t\t\t'graphql-modules-plugin': {\n\t\t\t\t\t\tplugin: (schema) =>\n\t\t\t\t\t\t\tbuildModule(moduleName, moduleDocument, {\n\t\t\t\t\t\t\t\timportNamespace: importTypesNamespace,\n\t\t\t\t\t\t\t\timportPath,\n\t\t\t\t\t\t\t\tencapsulate: encapsulateModuleTypes || 'namespace',\n\t\t\t\t\t\t\t\trequireRootResolvers,\n\t\t\t\t\t\t\t\tshouldDeclare,\n\t\t\t\t\t\t\t\tschema,\n\t\t\t\t\t\t\t\tbaseVisitor,\n\t\t\t\t\t\t\t\tuseGraphQLModules: false,\n\t\t\t\t\t\t\t\tfieldTypes,\n\t\t\t\t\t\t\t\tfieldArguments,\n\t\t\t\t\t\t\t\textensionsPath,\n\t\t\t\t\t\t\t\trootTypes: [\n\t\t\t\t\t\t\t\t\tschema.getQueryType()?.name || '',\n\t\t\t\t\t\t\t\t\tschema.getMutationType()?.name || '',\n\t\t\t\t\t\t\t\t\tschema.getSubscriptionType()?.name || '',\n\t\t\t\t\t\t\t\t].filter(Boolean),\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tconfig: options.config,\n\t\t\t\tschemaAst: options.schemaAst,\n\t\t\t};\n\t\t});\n\n\t\treturn [baseOutput].concat(outputs);\n\t},\n};\n\nexport default preset;\n","/**\n * Originally based on graphql-modules preset of graphql-code-generator\n * Source: https://github.com/dotansimha/graphql-code-generator/blob/master/packages/presets/graphql-modules/src/builder.ts\n * Copyright (c) 2016 Dotan Simha\n * Modified by Baeta developers\n */\nimport type { BaseVisitor } from '@graphql-codegen/visitor-plugin-common';\nimport { pascalCase } from 'change-case-all';\nimport {\n\ttype DocumentNode,\n\ttype EnumTypeDefinitionNode,\n\ttype EnumTypeExtensionNode,\n\ttype GraphQLSchema,\n\ttype InputObjectTypeDefinitionNode,\n\ttype InputObjectTypeExtensionNode,\n\ttype InterfaceTypeDefinitionNode,\n\ttype InterfaceTypeExtensionNode,\n\tKind,\n\ttype ObjectTypeDefinitionNode,\n\ttype ObjectTypeExtensionNode,\n\ttype TypeDefinitionNode,\n\ttype TypeExtensionNode,\n\ttype UnionTypeDefinitionNode,\n\tisInterfaceType,\n\tisScalarType,\n\tisUnionType,\n\tvisit,\n} from 'graphql';\nimport type { ModulesConfig } from './config.ts';\nimport { type TypeHash, getObjectTypeHash } from './hashes.ts';\nimport {\n\tbuildBlock,\n\tcollectUsedTypes,\n\tconcatByKey,\n\tcreateObject,\n\tindent,\n\tpushUnique,\n\tunique,\n\tuniqueByKey,\n\twithQuotes,\n} from './utils.ts';\n\ntype RegistryKeys = 'objects' | 'inputs' | 'interfaces' | 'scalars' | 'unions' | 'enums';\ntype Registry = Record<RegistryKeys, string[]>;\nconst registryKeys: RegistryKeys[] = [\n\t'objects',\n\t'inputs',\n\t'interfaces',\n\t'scalars',\n\t'unions',\n\t'enums',\n];\nconst resolverKeys: Extract<RegistryKeys, 'objects' | 'enums' | 'scalars'>[] = [\n\t'scalars',\n\t'objects',\n\t'enums',\n];\n\nexport function buildModule(\n\tname: string,\n\tdoc: DocumentNode,\n\t{\n\t\timportNamespace,\n\t\timportPath,\n\t\tencapsulate,\n\t\trequireRootResolvers,\n\t\tshouldDeclare,\n\t\trootTypes,\n\t\tschema,\n\t\tbaseVisitor,\n\t\tfieldTypes,\n\t\tfieldArguments,\n\t\textensionsPath,\n\t}: {\n\t\timportNamespace: string;\n\t\timportPath: string;\n\t\tencapsulate: ModulesConfig['encapsulateModuleTypes'];\n\t\trequireRootResolvers: ModulesConfig['requireRootResolvers'];\n\t\tshouldDeclare: boolean;\n\t\trootTypes: string[];\n\t\tbaseVisitor: BaseVisitor;\n\t\tschema?: GraphQLSchema;\n\t\tuseGraphQLModules: boolean;\n\t\tfieldTypes: Record<string, Record<string, string>>;\n\t\tfieldArguments: Record<string, Record<string, boolean>>;\n\t\textensionsPath?: string;\n\t},\n): string {\n\tconst picks: Record<RegistryKeys, Record<string, string[]>> = createObject(\n\t\tregistryKeys,\n\t\t() => ({}),\n\t);\n\tconst defined: Registry = createObject(registryKeys, () => []);\n\tconst extended: Registry = createObject(registryKeys, () => []);\n\n\tconst hashes: Record<string, TypeHash> = {};\n\n\t// List of types used in objects, fields, arguments etc\n\tconst usedTypes = collectUsedTypes(doc);\n\n\tvisit(doc, {\n\t\tObjectTypeDefinition(node) {\n\t\t\tcollectTypeDefinition(node);\n\t\t},\n\t\tObjectTypeExtension(node) {\n\t\t\tcollectTypeExtension(node);\n\t\t},\n\t\tInputObjectTypeDefinition(node) {\n\t\t\tcollectTypeDefinition(node);\n\t\t},\n\t\tInputObjectTypeExtension(node) {\n\t\t\tcollectTypeExtension(node);\n\t\t},\n\t\tInterfaceTypeDefinition(node) {\n\t\t\tcollectTypeDefinition(node);\n\t\t},\n\t\tInterfaceTypeExtension(node) {\n\t\t\tcollectTypeExtension(node);\n\t\t},\n\t\tScalarTypeDefinition(node) {\n\t\t\tcollectTypeDefinition(node);\n\t\t},\n\t\tUnionTypeDefinition(node) {\n\t\t\tcollectTypeDefinition(node);\n\t\t},\n\t\tUnionTypeExtension(node) {\n\t\t\tcollectTypeExtension(node);\n\t\t},\n\t\tEnumTypeDefinition(node) {\n\t\t\tcollectTypeDefinition(node);\n\t\t},\n\t\tEnumTypeExtension(node) {\n\t\t\tcollectTypeExtension(node);\n\t\t},\n\t});\n\n\t// Defined and Extended types\n\tconst visited: Registry = createObject(registryKeys, (key) =>\n\t\tconcatByKey(defined, extended, key),\n\t);\n\n\t// Types that are not defined or extended in a module, they come from other modules\n\tconst external: Registry = createObject(registryKeys, (key) =>\n\t\tuniqueByKey(extended, defined, key),\n\t);\n\n\t//\n\t//\n\t//\n\t// Prints\n\t//\n\t//\n\t//\n\n\t// An actual output\n\tconst imports = [\n\t\t`import * as ${importNamespace} from \"${importPath}\";`,\n\t\t'import type { DocumentNode } from \"graphql\";',\n\t\t'import * as Baeta from \"@baeta/core/sdk\";',\n\t];\n\n\tif (extensionsPath) {\n\t\timports.push(`import baetaExtensions from \"${extensionsPath}\";`);\n\t}\n\n\timports.push('\\n');\n\n\tlet content = [\n\t\tprintDefinedFields(),\n\t\tprintDefinedEnumValues(),\n\t\tprintDefinedInputFields(),\n\t\tprintSchemaTypes(usedTypes),\n\t\tprintMetadata(),\n\t]\n\t\t.filter(Boolean)\n\t\t.join('\\n\\n');\n\n\tconst moduleNamespace = baseVisitor.convertName(name, {\n\t\tsuffix: 'Module',\n\t\tuseTypesPrefix: false,\n\t\tuseTypesSuffix: false,\n\t});\n\n\tif (encapsulate === 'namespace') {\n\t\tcontent = `${shouldDeclare ? 'declare' : 'export'} namespace ${baseVisitor.convertName(name, {\n\t\t\tsuffix: 'Module',\n\t\t\tuseTypesPrefix: false,\n\t\t\tuseTypesSuffix: false,\n\t\t})} {\\n${shouldDeclare ? `${indent(2)(imports.join('\\n'))}\\n` : ''}${indent(2)(content)}\\n}`;\n\t}\n\n\treturn [...(shouldDeclare ? [] : imports), content, printFactoryMethod()]\n\t\t.filter(Boolean)\n\t\t.join('\\n');\n\n\tfunction printMetadata() {\n\t\treturn `export namespace ModuleMetadata {\n export const id = '${name}';\n export const dirname = './${name}';\n export const hashes = ${JSON.stringify(hashes)};\n export const typedef = ${JSON.stringify(doc)} as unknown as DocumentNode;\n ${printBaetaManager()}\n}`;\n\t}\n\n\t/**\n\t * A dictionary of fields to pick from an object\n\t */\n\tfunction printDefinedFields() {\n\t\treturn buildBlock({\n\t\t\tname: 'interface DefinedFields',\n\t\t\tlines: [...visited.objects, ...visited.interfaces].map(\n\t\t\t\t(typeName) =>\n\t\t\t\t\t`${typeName}: ${printPicks(typeName, {\n\t\t\t\t\t\t...picks.objects,\n\t\t\t\t\t\t...picks.interfaces,\n\t\t\t\t\t})};`,\n\t\t\t),\n\t\t});\n\t}\n\n\tfunction printFactoryMethod() {\n\t\tconst name = moduleNamespace.slice(0, moduleNamespace.length - 6);\n\t\tconst createModuleFn = `create${name}Module`;\n\t\tconst getModuleFn = `get${name}Module`;\n\t\tconst extensionsArg = extensionsPath ? ', baetaExtensions' : '';\n\n\t\treturn `\nexport const ${createModuleFn} = () => Baeta.createModuleManager(ModuleMetadata${extensionsArg});\nexport const ${getModuleFn} = Baeta.createSingletonModule(${createModuleFn});\n`;\n\t}\n\n\t/**\n\t * Baeta manager\n\t */\n\n\tfunction printObjectFieldResolverBuilder(typeName: string, field: string) {\n\t\tconst parentType = getParentType(typeName);\n\t\tconst resultType = getResultType(typeName, field);\n\t\tconst argumentsType = getArgsType(typeName, field);\n\t\tconst contextType = getContextType();\n\t\treturn `${field}: module.createResolverBuilder<${resultType}, ${parentType}, ${contextType}, ${argumentsType}>(\"${typeName}\", \"${field}\"),`;\n\t}\n\n\tfunction printObjectResolverBuilder(typeName: string, objects: Record<string, string[]>) {\n\t\tconst fields =\n\t\t\tobjects[typeName]\n\t\t\t\t?.filter(unique)\n\t\t\t\t.map((field) => printObjectFieldResolverBuilder(typeName, field)) ?? [];\n\n\t\tif (fields.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst parentType = getParentType(typeName);\n\t\tconst contextType = getContextType();\n\n\t\tconst addons = [`...module.createTypeMethods<${parentType}, ${contextType}>(\"${typeName}\"),`];\n\t\tconst contentBody = [...addons, ...fields].map(indent(2)).join('\\n');\n\t\tconst content = `{\\n${contentBody}\\n}`;\n\t\treturn `${typeName}: ${content},`;\n\t}\n\n\tfunction printSubscriptionFieldBuilder(field: string) {\n\t\tconst parentType = getParentType('Subscription');\n\t\tconst resultType = getResultType('Subscription', field);\n\t\tconst argumentsType = getArgsType('Subscription', field);\n\t\tconst contextType = getContextType();\n\t\treturn `${field}: module.createSubscriptionBuilder<${resultType}, ${parentType}, ${contextType}, ${argumentsType}>(\"${field}\"),`;\n\t}\n\n\tfunction printSubscriptionObjectBuilder() {\n\t\tconst subscriptions = picks.objects.Subscription?.filter(unique) ?? [];\n\n\t\tif (subscriptions.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst fields = subscriptions.map((subscription) => printSubscriptionFieldBuilder(subscription));\n\n\t\tconst parentType = getParentType('Subscription');\n\t\tconst contextType = getContextType();\n\t\tconst addons = [`...module.createSubscriptionMethods<${parentType}, ${contextType}>(),`];\n\t\tconst contentBody = [...addons, ...fields].map(indent(2)).join('\\n');\n\n\t\tconst content = `{\\n${contentBody}\\n}`;\n\t\treturn `Subscription: ${content},`;\n\t}\n\n\tfunction printScalarBuilder() {\n\t\tconst scalars = visited.scalars;\n\t\tif (scalars.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst fields = scalars.map((scalar) => `${scalar}: module.createScalarBuilder(\"${scalar}\"),`);\n\t\tconst content = fields.map(indent(2)).join('\\n');\n\t\treturn `Scalar: {\\n${content}\\n},`;\n\t}\n\n\tfunction printTypenameResolverBuilder(\n\t\tname: string,\n\t\tresultNamespace: string,\n\t\tvalueNamespace: string,\n\t) {\n\t\tconst resultType = `${importNamespace}.${resultNamespace}[\"${name}\"]`;\n\t\tconst valueType = `${importNamespace}.${valueNamespace}[\"${name}\"]`;\n\t\tconst contextType = getContextType();\n\t\tconst resolver = `$resolveType: module.createResolveType<${resultType}, ${valueType}, ${contextType}>(\"${name}\"),`;\n\t\treturn `${name}: {\\n${indent(2)(resolver)}\\n},`;\n\t}\n\n\tfunction printInterfaceBuilder() {\n\t\tconst interfaces = defined.interfaces;\n\n\t\tif (interfaces.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn interfaces\n\t\t\t.map((interfaceName) =>\n\t\t\t\tprintTypenameResolverBuilder(\n\t\t\t\t\tinterfaceName,\n\t\t\t\t\t'DefinedInterfacesResults',\n\t\t\t\t\t'DefinedInterfacesWithoutExtensions',\n\t\t\t\t),\n\t\t\t)\n\t\t\t.join('\\n');\n\t}\n\n\tfunction printUnionBuilder() {\n\t\tconst unions = defined.unions;\n\n\t\tif (unions.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn unions\n\t\t\t.map((unionName) =>\n\t\t\t\tprintTypenameResolverBuilder(\n\t\t\t\t\tunionName,\n\t\t\t\t\t'DefinedUnionsResults',\n\t\t\t\t\t'DefinedUnionsWithoutExtensions',\n\t\t\t\t),\n\t\t\t)\n\t\t\t.join('\\n');\n\t}\n\n\tfunction printBaetaManager() {\n\t\tconst objects = visited.objects\n\t\t\t.filter((type) => type !== 'Subscription')\n\t\t\t.map((typeName) => printObjectResolverBuilder(typeName, picks.objects))\n\t\t\t.filter(Boolean);\n\n\t\tconst contextType = getContextType();\n\t\tconst addons = [`...module.createModuleMethods<${contextType}>(),`];\n\n\t\tconst bodyFields = [\n\t\t\t...addons,\n\t\t\t...objects,\n\t\t\tprintScalarBuilder(),\n\t\t\tprintSubscriptionObjectBuilder(),\n\t\t\tprintInterfaceBuilder(),\n\t\t\tprintUnionBuilder(),\n\t\t];\n\n\t\tconst body = bodyFields.filter(Boolean).map(indent(6)).join('\\n');\n\t\tconst content = `{\\n${body}\\n }`;\n\n\t\treturn `\n export function createManager(module: Baeta.ModuleBuilder) {\n return ${content};\n }`;\n\t}\n\n\t/**\n\t * A dictionary of values to pick from an enum\n\t */\n\tfunction printDefinedEnumValues() {\n\t\treturn buildBlock({\n\t\t\tname: 'interface DefinedEnumValues',\n\t\t\tlines: visited.enums.map((typeName) => `${typeName}: ${printPicks(typeName, picks.enums)};`),\n\t\t});\n\t}\n\n\tfunction encapsulateTypeName(typeName: string): string {\n\t\tif (encapsulate === 'prefix') {\n\t\t\treturn `${pascalCase(name)}_${typeName}`;\n\t\t}\n\n\t\treturn typeName;\n\t}\n\n\t/**\n\t * A dictionary of fields to pick from an input\n\t */\n\tfunction printDefinedInputFields() {\n\t\treturn buildBlock({\n\t\t\tname: 'interface DefinedInputFields',\n\t\t\tlines: visited.inputs.map(\n\t\t\t\t(typeName) => `${typeName}: ${printPicks(typeName, picks.inputs)};`,\n\t\t\t),\n\t\t});\n\t}\n\n\t/**\n\t * Prints signatures of schema types with picks\n\t */\n\tfunction printSchemaTypes(types: string[]) {\n\t\treturn types\n\t\t\t.filter((type) => !visited.scalars.includes(type))\n\t\t\t.map(printExportType)\n\t\t\t.join('\\n');\n\t}\n\n\tfunction printPicks(typeName: string, records: Record<string, string[]>): string {\n\t\treturn records[typeName].filter(unique).map(withQuotes).join(' | ');\n\t}\n\n\tfunction printTypeBody(typeName: string): string {\n\t\tconst normalizedTypeName = baseVisitor.convertName(typeName, {\n\t\t\tuseTypesSuffix: true,\n\t\t\tuseTypesPrefix: true,\n\t\t});\n\n\t\tconst coreType = `${importNamespace}.${normalizedTypeName}`;\n\n\t\tif (external.enums.includes(typeName) || external.objects.includes(typeName)) {\n\t\t\tif (schema && isScalarType(schema.getType(typeName))) {\n\t\t\t\treturn `${importNamespace}.Scalars['${typeName}']`;\n\t\t\t}\n\n\t\t\treturn `Pick<${coreType}, ${importNamespace}.DefinedFieldsWithoutExtensions[\"${typeName}\"]>`;\n\t\t}\n\n\t\tif (external.unions.includes(typeName)) {\n\t\t\treturn `${importNamespace}.DefinedUnionsWithoutExtensions[\"${typeName}\"]`;\n\t\t}\n\n\t\tif (external.interfaces.includes(typeName)) {\n\t\t\treturn `Pick<${coreType}, ${importNamespace}.DefinedFieldsWithoutExtensions[\"${typeName}\"]>`;\n\t\t}\n\n\t\tif (defined.enums.includes(typeName) && picks.enums[typeName]) {\n\t\t\treturn `DefinedEnumValues['${typeName}']`;\n\t\t}\n\n\t\tif (defined.unions.includes(typeName) && picks.unions[typeName]) {\n\t\t\treturn `${importNamespace}.DefinedUnionsWithoutExtensions[\"${typeName}\"]`;\n\t\t}\n\n\t\tif (defined.objects.includes(typeName) && picks.objects[typeName]) {\n\t\t\treturn `Pick<${coreType}, DefinedFields['${typeName}']>`;\n\t\t}\n\n\t\tif (defined.interfaces.includes(typeName) && picks.interfaces[typeName]) {\n\t\t\treturn `${importNamespace}.DefinedInterfacesWithoutExtensions[\"${typeName}\"]`;\n\t\t}\n\n\t\tif (defined.inputs.includes(typeName) && picks.inputs[typeName]) {\n\t\t\treturn `Pick<${coreType}, DefinedInputFields['${typeName}']>`;\n\t\t}\n\n\t\tif (isScalarType(schema?.getType(typeName))) {\n\t\t\treturn coreType;\n\t\t}\n\n\t\tif (isInterfaceType(schema?.getType(typeName))) {\n\t\t\treturn `${importNamespace}.DefinedInterfacesWithoutExtensions[\"${typeName}\"]`;\n\t\t}\n\n\t\tif (isUnionType(schema?.getType(typeName))) {\n\t\t\treturn `${importNamespace}.DefinedUnionsWithoutExtensions[\"${typeName}\"]`;\n\t\t}\n\n\t\treturn `Pick<${coreType}, ${importNamespace}.DefinedFieldsWithoutExtensions[\"${typeName}\"]>`;\n\t}\n\n\tfunction printExportType(typeName: string): string {\n\t\treturn `export type ${encapsulateTypeName(typeName)} = ${printTypeBody(typeName)};`;\n\t}\n\n\t//\n\t//\n\t//\n\t// Utils\n\t//\n\t//\n\t//\n\n\tfunction collectFields(\n\t\tnode:\n\t\t\t| ObjectTypeDefinitionNode\n\t\t\t| ObjectTypeExtensionNode\n\t\t\t| InterfaceTypeDefinitionNode\n\t\t\t| InterfaceTypeExtensionNode\n\t\t\t| InputObjectTypeDefinitionNode\n\t\t\t| InputObjectTypeExtensionNode,\n\t\tpicksObj: Record<string, string[]>,\n\t) {\n\t\tconst name = node.name.value;\n\n\t\tif (node.fields) {\n\t\t\tif (!picksObj[name]) {\n\t\t\t\tpicksObj[name] = [];\n\t\t\t}\n\n\t\t\tfor (const field of node.fields) {\n\t\t\t\tpicksObj[name].push(field.name.value);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction collectValuesFromEnum(node: EnumTypeDefinitionNode | EnumTypeExtensionNode) {\n\t\tconst name = node.name.value;\n\n\t\tif (node.values) {\n\t\t\tif (!picks.enums[name]) {\n\t\t\t\tpicks.enums[name] = [];\n\t\t\t}\n\n\t\t\tfor (const field of node.values) {\n\t\t\t\tpicks.enums[name].push(field.name.value);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction collectUnionTypes(node: UnionTypeDefinitionNode) {\n\t\tconst name = node.name.value;\n\n\t\tif (node.types) {\n\t\t\tif (!picks.unions[name]) {\n\t\t\t\tpicks.unions[name] = [];\n\t\t\t}\n\n\t\t\tfor (const type of node.types) {\n\t\t\t\tpicks.unions[name].push(type.name.value);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction collectTypeDefinition(node: TypeDefinitionNode) {\n\t\tconst name = node.name.value;\n\n\t\tswitch (node.kind) {\n\t\t\tcase Kind.OBJECT_TYPE_DEFINITION: {\n\t\t\t\tdefined.objects.push(name);\n\t\t\t\tcollectFields(node, picks.objects);\n\t\t\t\thashes[name] = getObjectTypeHash(node);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.ENUM_TYPE_DEFINITION: {\n\t\t\t\tdefined.enums.push(name);\n\t\t\t\tcollectValuesFromEnum(node);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.INPUT_OBJECT_TYPE_DEFINITION: {\n\t\t\t\tdefined.inputs.push(name);\n\t\t\t\tcollectFields(node, picks.inputs);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.SCALAR_TYPE_DEFINITION: {\n\t\t\t\tdefined.scalars.push(name);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.INTERFACE_TYPE_DEFINITION: {\n\t\t\t\tdefined.interfaces.push(name);\n\t\t\t\tcollectFields(node, picks.interfaces);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.UNION_TYPE_DEFINITION: {\n\t\t\t\tdefined.unions.push(name);\n\t\t\t\tcollectUnionTypes(node);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction collectTypeExtension(node: TypeExtensionNode) {\n\t\tconst name = node.name.value;\n\n\t\tswitch (node.kind) {\n\t\t\tcase Kind.OBJECT_TYPE_EXTENSION: {\n\t\t\t\tcollectFields(node, picks.objects);\n\t\t\t\thashes[name] = getObjectTypeHash(node);\n\n\t\t\t\t// Do not include root types as extensions\n\t\t\t\t// so we can use them in DefinedFields\n\t\t\t\tif (rootTypes.includes(name)) {\n\t\t\t\t\tpushUnique(defined.objects, name);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tpushUnique(extended.objects, name);\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.ENUM_TYPE_EXTENSION: {\n\t\t\t\tcollectValuesFromEnum(node);\n\t\t\t\tpushUnique(extended.enums, name);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.INPUT_OBJECT_TYPE_EXTENSION: {\n\t\t\t\tcollectFields(node, picks.inputs);\n\t\t\t\tpushUnique(extended.inputs, name);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.INTERFACE_TYPE_EXTENSION: {\n\t\t\t\tcollectFields(node, picks.interfaces);\n\t\t\t\tpushUnique(extended.interfaces, name);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Kind.UNION_TYPE_EXTENSION: {\n\t\t\t\tpushUnique(extended.unions, name);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction getParentType(type: string) {\n\t\tif (['Query', 'Mutation', 'Subscription'].includes(type)) {\n\t\t\treturn '{ }';\n\t\t}\n\t\treturn type;\n\t}\n\n\tfunction getResultType(type: string, field: string) {\n\t\treturn fieldTypes?.[type]?.[field] || '{ }';\n\t}\n\n\tfunction getArgsType(type: string, field: string) {\n\t\tconst hasArgs = fieldArguments?.[type]?.[field] ?? false;\n\t\tif (!hasArgs) {\n\t\t\treturn '{ }';\n\t\t}\n\t\tconst fieldUpper = field[0].toUpperCase() + field.slice(1);\n\t\treturn `Types.${type}${fieldUpper}Args`;\n\t}\n\n\tfunction getContextType() {\n\t\treturn 'Types.ContextType';\n\t}\n}\n","import {\n\ttype FieldDefinitionNode,\n\tKind,\n\ttype ObjectTypeDefinitionNode,\n\ttype ObjectTypeExtensionNode,\n\ttype TypeNode,\n} from 'graphql';\nimport hash from 'murmurhash';\n\nexport type TypeHash = {\n\thash: string;\n\tfieldsHashes: Record<string, string>;\n};\n\nexport function getObjectTypeHash(\n\tnode: ObjectTypeDefinitionNode | ObjectTypeExtensionNode,\n): TypeHash {\n\tconst fieldNames = buildFieldsNames(node.fields);\n\tconst typeFields = fieldNames\n\t\t.map(([fieldName, fieldType]) => `${fieldName}:${fieldType}`)\n\t\t.join(',');\n\n\tconst fieldMap: Record<string, string> = {};\n\n\tfor (const [fieldName, fieldType] of fieldNames) {\n\t\tfieldMap[fieldName] = hash.v3(fieldType).toString(36);\n\t}\n\n\treturn {\n\t\thash: hash.v3(typeFields).toString(36),\n\t\tfieldsHashes: fieldMap,\n\t};\n}\n\nfunction buildFieldsNames(fields: readonly FieldDefinitionNode[] = []) {\n\tif (fields.length === 0) {\n\t\treturn [];\n\t}\n\n\tconst fieldsNames: Array<[string, string]> = [];\n\n\tfor (const field of fields) {\n\t\tconst fieldName = field.name.value;\n\t\tconst fieldType = buildTypeName(field.type);\n\t\tfieldsNames.push([fieldName, fieldType]);\n\t}\n\n\treturn fieldsNames.sort(([a], [b]) => a.localeCompare(b));\n}\n\nfunction buildTypeName(node: TypeNode): string {\n\tif (node.kind === Kind.NAMED_TYPE) {\n\t\treturn node.name.value;\n\t}\n\n\tif (node.kind === Kind.LIST_TYPE) {\n\t\treturn `[${buildTypeName(node.type)}]`;\n\t}\n\n\tif (node.kind === Kind.NON_NULL_TYPE) {\n\t\treturn `${buildTypeName(node.type)}!`;\n\t}\n\n\treturn '';\n}\n","/**\n * Originally based on graphql-modules preset of graphql-code-generator\n * Source: https://github.com/dotansimha/graphql-code-generator/blob/master/packages/presets/graphql-modules/src/utils.ts\n * Copyright (c) 2016 Dotan Simha\n * Modified by Baeta developers\n */\nimport { platform } from 'node:os';\nimport { getBaseType } from '@graphql-codegen/plugin-helpers';\nimport { DEFAULT_SCALARS, wrapTypeWithModifiers } from '@graphql-codegen/visitor-plugin-common';\nimport type { Source } from '@graphql-tools/utils';\nimport {\n\ttype DefinitionNode,\n\ttype DocumentNode,\n\ttype FieldDefinitionNode,\n\ttype GraphQLFieldMap,\n\ttype GraphQLObjectType,\n\ttype GraphQLSchema,\n\ttype InputValueDefinitionNode,\n\tKind,\n\ttype NamedTypeNode,\n\ttype ObjectTypeDefinitionNode,\n\ttype TypeNode,\n} from 'graphql';\nimport parse from 'parse-filepath';\n\nconst sep = '/';\n\n/**\n * Searches every node to collect used types\n */\nexport function collectUsedTypes(doc: DocumentNode): string[] {\n\tconst used: string[] = [];\n\n\tfor (const definition of doc.definitions) {\n\t\tfindRelated(definition);\n\t}\n\n\tfunction markAsUsed(type: string) {\n\t\tpushUnique(used, type);\n\t}\n\n\tfunction findRelated(\n\t\tnode: DefinitionNode | FieldDefinitionNode | InputValueDefinitionNode | NamedTypeNode,\n\t) {\n\t\tif (node.kind === Kind.OBJECT_TYPE_DEFINITION || node.kind === Kind.OBJECT_TYPE_EXTENSION) {\n\t\t\t// Object\n\t\t\tmarkAsUsed(node.name.value);\n\n\t\t\tif (node.fields) {\n\t\t\t\tfor (const field of node.fields) {\n\t\t\t\t\tfindRelated(field);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (node.interfaces) {\n\t\t\t\tfor (const _interface of node.interfaces) {\n\t\t\t\t\tfindRelated(_interface);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (\n\t\t\tnode.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION ||\n\t\t\tnode.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION\n\t\t) {\n\t\t\t// Input\n\t\t\tmarkAsUsed(node.name.value);\n\n\t\t\tif (node.fields) {\n\t\t\t\tfor (const field of node.fields) {\n\t\t\t\t\tfindRelated(field);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (\n\t\t\tnode.kind === Kind.INTERFACE_TYPE_DEFINITION ||\n\t\t\tnode.kind === Kind.INTERFACE_TYPE_EXTENSION\n\t\t) {\n\t\t\t// Interface\n\t\t\tmarkAsUsed(node.name.value);\n\n\t\t\tif (node.fields) {\n\t\t\t\tfor (const field of node.fields) {\n\t\t\t\t\tfindRelated(field);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (node.interfaces) {\n\t\t\t\tfor (const _interface of node.interfaces) {\n\t\t\t\t\tfindRelated(_interface);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (\n\t\t\tnode.kind === Kind.UNION_TYPE_DEFINITION ||\n\t\t\tnode.kind === Kind.UNION_TYPE_EXTENSION\n\t\t) {\n\t\t\t// Union\n\t\t\tmarkAsUsed(node.name.value);\n\n\t\t\tif (node.types) {\n\t\t\t\tfor (const type of node.types) {\n\t\t\t\t\tfindRelated(type);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (node.kind === Kind.ENUM_TYPE_DEFINITION || node.kind === Kind.ENUM_TYPE_EXTENSION) {\n\t\t\t// Enum\n\t\t\tmarkAsUsed(node.name.value);\n\t\t} else if (\n\t\t\tnode.kind === Kind.SCALAR_TYPE_DEFINITION ||\n\t\t\tnode.kind === Kind.SCALAR_TYPE_EXTENSION\n\t\t) {\n\t\t\t// Scalar\n\t\t\tif (!isGraphQLPrimitive(node.name.value)) {\n\t\t\t\tmarkAsUsed(node.name.value);\n\t\t\t}\n\t\t} else if (node.kind === Kind.INPUT_VALUE_DEFINITION) {\n\t\t\t// Argument\n\t\t\tfindRelated(resolveTypeNode(node.type));\n\t\t} else if (node.kind === Kind.FIELD_DEFINITION) {\n\t\t\t// Field\n\t\t\tfindRelated(resolveTypeNode(node.type));\n\n\t\t\tif (node.arguments) {\n\t\t\t\tfor (const argument of node.arguments) {\n\t\t\t\t\tfindRelated(argument);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (\n\t\t\tnode.kind === Kind.NAMED_TYPE &&\n\t\t\t// Named type\n\t\t\t!isGraphQLPrimitive(node.name.value)\n\t\t) {\n\t\t\tmarkAsUsed(node.name.value);\n\t\t}\n\t}\n\n\treturn used;\n}\n\nfunction collectObjectFieldType(\n\tnode: ObjectTypeDefinitionNode,\n\tfieldDefinition: FieldDefinitionNode,\n\tfieldsMap: GraphQLFieldMap<unknown, unknown>,\n\tfieldTypes: Record<string, Record<string, string>>,\n) {\n\tconst objectName = node.name.value;\n\tconst fieldName = fieldDefinition.name.value;\n\n\tconst field = fieldsMap[fieldDefinition.name.value];\n\tconst baseName = getBaseType(field.type).name;\n\tconst isDefaultScalar = DEFAULT_SCALARS[baseName] != null;\n\tconst name = isDefaultScalar ? `Types.Scalars[\"${baseName}\"][\"output\"]` : baseName;\n\n\tconst type = wrapTypeWithModifiers(name, field.type, {\n\t\twrapOptional: (str: string) => {\n\t\t\treturn `Types.Maybe<${str}>`;\n\t\t},\n\t\twrapArray: (str: string) => {\n\t\t\treturn `Array<${str}>`;\n\t\t},\n\t});\n\n\tif (fieldTypes[objectName] == null) {\n\t\tfieldTypes[objectName] = {};\n\t}\n\tfieldTypes[objectName][fieldName] = type;\n}\n\nfunction collectObjectFieldArguments(\n\tnode: ObjectTypeDefinitionNode,\n\tfieldDefinition: FieldDefinitionNode,\n\tfieldArguments: Record<string, Record<string, boolean>>,\n) {\n\tconst objectName = node.name.value;\n\tconst fieldName = fieldDefinition.name.value;\n\tconst hasArguments = fieldDefinition.arguments != null && fieldDefinition.arguments.length > 0;\n\n\tif (fieldArguments[objectName] == null) {\n\t\tfieldArguments[objectName] = {};\n\t}\n\tfieldArguments[objectName][fieldName] = hasArguments;\n}\n\nexport function collectObjectFieldTypesAndArguments(schema?: GraphQLSchema) {\n\tconst fieldTypes: Record<string, Record<string, string>> = {};\n\tconst fieldArguments: Record<string, Record<string, boolean>> = {};\n\n\tif (!schema) {\n\t\treturn { fieldTypes, fieldArguments };\n\t}\n\n\tconst schemaTypes = schema.getTypeMap();\n\n\tfor (const type of Object.values(schemaTypes)) {\n\t\tif (type.astNode?.kind !== Kind.OBJECT_TYPE_DEFINITION) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst schemaType = schemaTypes[type.name] as GraphQLObjectType;\n\t\tconst fieldsMap = schemaType.getFields();\n\n\t\tfor (const field of type.astNode.fields ?? []) {\n\t\t\tcollectObjectFieldArguments(type.astNode, field, fieldArguments);\n\t\t\tcollectObjectFieldType(type.astNode, field, fieldsMap, fieldTypes);\n\t\t}\n\t}\n\n\treturn { fieldTypes, fieldArguments };\n}\n\nexport function resolveTypeNode(node: TypeNode): NamedTypeNode {\n\tif (node.kind === Kind.LIST_TYPE) {\n\t\treturn resolveTypeNode(node.type);\n\t}\n\n\tif (node.kind === Kind.NON_NULL_TYPE) {\n\t\treturn resolveTypeNode(node.type);\n\t}\n\n\treturn node;\n}\n\nexport function isGraphQLPrimitive(name: string): boolean {\n\treturn ['String', 'Boolean', 'ID', 'Float', 'Int'].includes(name);\n}\n\nexport function unique<T>(val: T, i: number, all: T[]): boolean {\n\treturn i === all.indexOf(val);\n}\n\nexport function withQuotes(val: string): string {\n\treturn `'${val}'`;\n}\n\nexport function indent(size: number) {\n\tconst space = new Array(size).fill(' ').join('');\n\n\tfunction indentInner(val: string): string {\n\t\treturn val\n\t\t\t.split('\\n')\n\t\t\t.map((line) => `${space}${line}`)\n\t\t\t.join('\\n');\n\t}\n\n\treturn indentInner;\n}\n\nexport function buildBlock({ name, lines }: { name: string; lines: string[] }): string {\n\tif (!lines.length) {\n\t\treturn '';\n\t}\n\n\treturn [`${name} {`, ...lines.map(indent(2)), '};'].join('\\n');\n}\n\nconst getRelativePath = (filepath: string, basePath: string) => {\n\tconst normalizedFilepath = normalize(filepath);\n\tconst normalizedBasePath = ensureStartsWithSeparator(\n\t\tnormalize(ensureEndsWithSeparator(basePath)),\n\t);\n\tconst [, relativePath] = normalizedFilepath.split(normalizedBasePath);\n\treturn relativePath;\n};\n\nexport function groupSourcesByModule(\n\tsources: Source[],\n\tbasePath: string,\n): Record<string, Source[]> {\n\tconst grouped: Record<string, Source[]> = {};\n\n\tfor (const source of sources) {\n\t\tif (!source.location) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst relativePath = getRelativePath(source.location, basePath);\n\n\t\tif (relativePath) {\n\t\t\t// PERF: we could guess the module by matching source.location with a list of already resolved paths\n\t\t\tconst mod = extractModuleDirectory(source.location, basePath);\n\n\t\t\tif (!grouped[mod]) {\n\t\t\t\tgrouped[mod] = [];\n\t\t\t}\n\n\t\t\tgrouped[mod].push(source);\n\t\t}\n\t}\n\n\treturn grouped;\n}\n\nfunction extractModuleDirectory(filepath: string, basePath: string): string {\n\tconst relativePath = getRelativePath(filepath, basePath);\n\n\tconst [moduleDirectory] = relativePath.split(sep);\n\n\treturn moduleDirectory;\n}\n\nexport function stripFilename(path: string) {\n\tconst parsedPath = parse(path);\n\treturn normalize(parsedPath.dir);\n}\n\nexport function normalize(path: string) {\n\treturn path.replace(/\\\\/g, '/');\n}\n\nfunction ensureEndsWithSeparator(path: string) {\n\treturn path.endsWith(sep) ? path : path + sep;\n}\n\nfunction ensureStartsWithSeparator(path: string) {\n\tif (platform() === 'win32') {\n\t\treturn path;\n\t}\n\n\treturn path.startsWith('.')\n\t\t? path.replace(/^(..\\/)|(.\\/)/, '/')\n\t\t: path.startsWith('/')\n\t\t\t? path\n\t\t\t: `/${path}`;\n}\n\n/**\n * Pushes an item to a list only if the list doesn't include the item\n */\nexport function pushUnique<T>(list: T[], item: T): void {\n\tif (!list.includes(item)) {\n\t\tlist.push(item);\n\t}\n}\n\nexport function concatByKey<T extends Record<string, string[]>, K extends keyof T>(\n\tleft: T,\n\tright: T,\n\tkey: K,\n) {\n\t// Remove duplicate, if an element is in right & left, it will be only once in the returned array.\n\treturn [...new Set([...left[key], ...right[key]])];\n}\n\nexport function uniqueByKey<T extends Record<string, string[]>, K extends keyof T>(\n\tleft: T,\n\tright: T,\n\tkey: K,\n) {\n\treturn left[key].filter((item) => !right[key].includes(item));\n}\n\nexport function createObject<K extends string, T>(keys: K[], valueFn: (key: K) => T) {\n\tconst obj: Record<K, T> = {} as Record<K, T>;\n\n\tfor (const key of keys) {\n\t\tobj[key] = valueFn(key);\n\t}\n\n\treturn obj;\n}\n"],"mappings":"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","names":["join","getCachedDocumentNodeFromSchema","getCachedDocumentNodeFromSchema","parseMapper","relative","isScalarType","Kind","Kind","name","content","Kind","isScalarType","sources","unionsDefinition","types","typePicks","relative","hash","join","result"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@baeta/plugin-graphql",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"baeta",
|
|
6
6
|
"graphql",
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
"types": "tsc --noEmit"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@baeta/generator-sdk": "^0.
|
|
47
|
-
"@baeta/util-path": "^0.
|
|
46
|
+
"@baeta/generator-sdk": "^1.0.0",
|
|
47
|
+
"@baeta/util-path": "^1.0.0",
|
|
48
48
|
"@graphql-codegen/core": "^4.0.2",
|
|
49
49
|
"@graphql-codegen/plugin-helpers": "^5.1.0",
|
|
50
50
|
"@graphql-codegen/typescript": "^4.1.2",
|
|
@@ -94,6 +94,12 @@
|
|
|
94
94
|
"./index.ts"
|
|
95
95
|
],
|
|
96
96
|
"readme": "none",
|
|
97
|
-
"tsconfig": "./tsconfig.json"
|
|
97
|
+
"tsconfig": "./tsconfig.json",
|
|
98
|
+
"sort": [
|
|
99
|
+
"kind",
|
|
100
|
+
"instance-first",
|
|
101
|
+
"required-first",
|
|
102
|
+
"alphabetical-ignoring-documents"
|
|
103
|
+
]
|
|
98
104
|
}
|
|
99
105
|
}
|