UNPKG

@shopify/api-codegen-preset

Version:
1 lines 3.98 kB
{"version":3,"file":"get-schema-data.mjs","sources":["../../src/helpers/get-schema-data.ts"],"sourcesContent":["import type {CodegenConfig} from '@graphql-codegen/cli';\n\nimport {ApiType} from '../types';\n\nimport {apiConfigs} from './api-configs';\n\ninterface SchemaData {\n schema: CodegenConfig['schema'];\n schemaFile: string;\n}\n\ninterface ValuesOptions {\n apiKey?: string;\n apiVersion?: string;\n}\n\nexport function getSchemaData(\n outputDir: string,\n apiType: ApiType,\n values: ValuesOptions,\n): SchemaData {\n switch (apiType) {\n case ApiType.Customer:\n if (!values.apiKey) {\n throw new Error('The customer API requires an API key');\n }\n\n return getCustomerApiSchema(outputDir, values);\n default:\n return getSchema(apiType, outputDir, values);\n }\n}\n\nfunction getSchema(\n apiType: ApiType,\n outputDir: string,\n values: ValuesOptions,\n): SchemaData {\n const config = apiConfigs[apiType];\n\n let schema = config.schema;\n let schemaFile = config.schemaFile;\n if (values.apiVersion) {\n schema = schema.replace('%%API_VERSION%%', `/${values.apiVersion}`);\n schemaFile = schemaFile.replace('%%API_VERSION%%', `-${values.apiVersion}`);\n } else {\n schema = schema.replace('%%API_VERSION%%', '');\n schemaFile = schemaFile.replace('%%API_VERSION%%', '');\n }\n\n return {\n schema,\n schemaFile: `${outputDir}/${schemaFile}`,\n };\n}\n\nfunction getCustomerApiSchema(\n outputDir: string,\n values: ValuesOptions,\n): SchemaData {\n const config = apiConfigs[ApiType.Customer];\n\n let schema = config.schema;\n let schemaFile = config.schemaFile;\n if (values.apiVersion) {\n schema = schema.replace('%%API_VERSION%%', values.apiVersion);\n schemaFile = schemaFile.replace('%%API_VERSION%%', `-${values.apiVersion}`);\n } else {\n schema = schema.replace('&api_version=%%API_VERSION%%', '');\n schemaFile = schemaFile.replace('%%API_VERSION%%', '');\n }\n\n if (values.apiKey) {\n schema = schema.replace('%%API_KEY%%', values.apiKey);\n }\n\n return {\n schema: [{[schema]: {method: 'GET', headers: {}}}],\n schemaFile: `${outputDir}/${schemaFile}`,\n };\n}\n"],"names":[],"mappings":";;;SAgBgB,aAAa,CAC3B,SAAiB,EACjB,OAAgB,EAChB,MAAqB,EAAA;IAErB,QAAQ,OAAO;QACb,KAAK,OAAO,CAAC,QAAQ;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAClB,gBAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;YACzD;AAEA,YAAA,OAAO,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC;AAChD,QAAA;YACE,OAAO,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC;;AAElD;AAEA,SAAS,SAAS,CAChB,OAAgB,EAChB,SAAiB,EACjB,MAAqB,EAAA;AAErB,IAAA,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;AAElC,IAAA,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM;AAC1B,IAAA,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU;AAClC,IAAA,IAAI,MAAM,CAAC,UAAU,EAAE;AACrB,QAAA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,UAAU,CAAA,CAAE,CAAC;AACnE,QAAA,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,UAAU,CAAA,CAAE,CAAC;IAC7E;SAAO;QACL,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC9C,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;IACxD;IAEA,OAAO;QACL,MAAM;AACN,QAAA,UAAU,EAAE,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,UAAU,CAAA,CAAE;KACzC;AACH;AAEA,SAAS,oBAAoB,CAC3B,SAAiB,EACjB,MAAqB,EAAA;IAErB,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;AAE3C,IAAA,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM;AAC1B,IAAA,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU;AAClC,IAAA,IAAI,MAAM,CAAC,UAAU,EAAE;QACrB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC;AAC7D,QAAA,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,UAAU,CAAA,CAAE,CAAC;IAC7E;SAAO;QACL,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC;QAC3D,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;IACxD;AAEA,IAAA,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;IACvD;IAEA,OAAO;AACL,QAAA,MAAM,EAAE,CAAC,EAAC,CAAC,MAAM,GAAG,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC,EAAC,CAAC;AAClD,QAAA,UAAU,EAAE,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,UAAU,CAAA,CAAE;KACzC;AACH;;;;"}