UNPKG

@gqty/cli

Version:

## Visit [https://gqty.dev/docs/cli/codegen](https://gqty.dev/docs/cli/codegen)

8 lines (6 loc) 4.37 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const fs=require("fs"),module$1=require("module"),path=require("path"),deps=require("./deps.js"),innerState=require("./innerState.js"),prettier=require("./prettier.js"),cjsRequire=globalThis.require||module$1.createRequire((typeof document>"u"?new(require("url")).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("config.js",document.baseURI).href).toString());function isPlainObject(i){return i!=null&&typeof i=="object"&&!Array.isArray(i)}function isStringRecord(i){return isPlainObject(i)&&Object.values(i).every(n=>typeof n=="string")}const DUMMY_ENDPOINT="SPECIFY_ENDPOINT_OR_SCHEMA_FILE_PATH_HERE",defaultConfig={react:(()=>{try{return cjsRequire.resolve("react"),!0}catch{}return!1})(),scalarTypes:{DateTime:"string"},introspection:{endpoint:DUMMY_ENDPOINT,headers:{}},endpoint:"/api/graphql",destination:"./src/gqty/index.ts",subscriptions:!1,javascriptOutput:!1,enumsAsStrings:!1,enumsAsConst:!1,preImport:""};function warnConfig(i,n,t,e){console.warn(`Warning, invalid config ${i}, got: ${JSON.stringify(n)}, expected ${t}. ${JSON.stringify(e)} used instead.`)}function getValidConfig(i){if(isPlainObject(i)){const n={};typeof i.javascriptOutput=="boolean"&&(n.javascriptOutput=i.javascriptOutput);for(const[t,e]of Object.entries(i))if(e!==void 0)switch(t){case"destination":case"preImport":{typeof e=="string"?n[t]=e:warnConfig(t,e,"string",defaultConfig[t]);break}case"javascriptOutput":case"react":case"subscriptions":case"enumsAsStrings":{typeof e=="boolean"?n[t]=e:warnConfig(t,e,"boolean",defaultConfig[t]);break}case"enumsAsConst":{typeof e=="boolean"?n[t]=e:warnConfig(t,e,"boolean",defaultConfig[t]);break}case"scalarTypes":{isStringRecord(e)?n[t]=e:warnConfig(t,e,'"object of strings"',defaultConfig[t]);break}case"endpoint":{e&&typeof e=="string"?n[t]=e:warnConfig(t,e,"string",defaultConfig[t]);break}case"introspection":{if(isPlainObject(e)){const o={};for(const[r,s]of Object.entries(e))if(s!==void 0)switch(r){case"endpoint":{typeof s=="string"?o[r]=s:warnConfig(`${t}.${r}`,s,"string",defaultConfig.introspection.endpoint);break}case"headers":{isStringRecord(s)?o[r]=s:warnConfig(`${t}.${r}`,s,'"object of strings"',defaultConfig.introspection.headers);break}default:console.warn(`Warning, invalid and unused config property "${t}.${r}": ${JSON.stringify(e)}`)}n[t]=o}else warnConfig(t,e,"object",defaultConfig[t]);break}case"introspections":{if(isPlainObject(e)){const o={};for(const[r,s]of Object.entries(e))isPlainObject(s)?o[r]=s:warnConfig(`${t}.${r}`,s,'"object of strings"',{});n[t]=o}else warnConfig(t,e,"object",defaultConfig[t]);break}case"transformSchema":{typeof e=="function"?n[t]=e:warnConfig(t,e,"function","undefined");break}default:console.warn(`Warning, invalid and unused config property "${t}": ${JSON.stringify(e)}`)}return n}else return console.warn("Invalid config, using instead: "+JSON.stringify(defaultConfig,null,2)),defaultConfig}const defaultFilePath=path.resolve(process.cwd(),"gqty.config.cjs"),defaultGQtyConfig={filepath:defaultFilePath,config:defaultConfig};let gqtyConfigPromise;const loadOrGenerateConfig=async({writeConfigFile:i=!1}={})=>(gqtyConfigPromise===void 0&&(gqtyConfigPromise=new Promise(async n=>{try{const t=o=>cjsRequire(o),e=await deps.cosmiconfig("gqty",{searchPlaces:["gqty.config.cjs","gqty.config.js","package.json"],loaders:{".cjs":t,".js":t}}).search();if(!e||e.isEmpty){const o=(e==null?void 0:e.filepath)||defaultFilePath,r=process.env.NODE_ENV;if(r!=="test"&&r!=="production"&&innerState.__innerState.isCLI){const{format:s}=prettier.formatPrettier({parser:"typescript"}),c={...defaultConfig};delete c.preImport,delete c.enumsAsStrings,i&&await fs.promises.writeFile(defaultFilePath,await s(` /** * @type {import("@gqty/cli").GQtyConfig} */ const config = ${JSON.stringify(c)}; module.exports = config;`))}return n({filepath:o,config:defaultConfig})}n({config:getValidConfig(e.config),filepath:e.filepath})}catch(t){console.error(t),n(defaultGQtyConfig)}})),gqtyConfigPromise);exports.DUMMY_ENDPOINT=DUMMY_ENDPOINT,exports.defaultConfig=defaultConfig,exports.getValidConfig=getValidConfig,exports.loadOrGenerateConfig=loadOrGenerateConfig;