@gqty/cli
Version:
## Visit [https://gqty.dev/docs/cli/codegen](https://gqty.dev/docs/cli/codegen)
2 lines (1 loc) • 1.58 kB
JavaScript
import{promises as c,existsSync as n}from"fs";import{resolve as u,dirname as f}from"path";import{defaultConfig as g}from"./config.mjs";import{generate as v}from"./generate.mjs";async function x({destinationPath:r,clientCode:e,onExistingFileConflict:t}){if(n(r)){if(t){const a=await c.readFile(r,{encoding:"utf-8"});await t(a)}return}await c.writeFile(r,e,{encoding:"utf-8"})}function y(...r){return Promise.all(r.map(e=>e()))}async function C({schemaCode:r,destinationPath:e,isJavascriptOutput:t,javascriptSchemaCode:a}){await y(async()=>{const i=u(f(e),t?"./schema.generated.d.ts":"./schema.generated.ts");n(i)&&await c.readFile(i,{encoding:"utf-8"})===r||await c.writeFile(i,r,{encoding:"utf-8"})},async()=>{if(t){const i=u(f(e),"./schema.generated.js");if(n(i)&&await c.readFile(i,{encoding:"utf-8"})===a)return;await c.writeFile(i,a,{encoding:"utf-8"})}})}async function m(r,e,t,a,i){var o;const w=(o=t.javascriptOutput)!=null?o:g.javascriptOutput;if(w){if(!e.endsWith(".js")){const s=Error('You have to specify the ".js" extension, instead, it received: "'+e+'"');throw Error.captureStackTrace(s,m),s}}else if(!e.endsWith(".ts")){const s=Error('You have to specify the ".ts" extension, instead, it received: "'+e+'"');throw Error.captureStackTrace(s,m),s}e=u(e);const[{clientCode:l,schemaCode:d,javascriptSchemaCode:p}]=await Promise.all([v(r,t,i),c.mkdir(f(e),{recursive:!0})]);return await Promise.all([x({clientCode:l,destinationPath:e,onExistingFileConflict:a}),C({schemaCode:d,destinationPath:e,isJavascriptOutput:w,javascriptSchemaCode:p})]),e}export{m as writeGenerate};