create-questpie-app
Version:
Bootstrap a new QUESTPIE Studio application with your choice of template and packages
8 lines • 1.75 kB
JavaScript
function e(e){return e?e.replace(/([a-z0-9])([A-Z])/g,`$1 $2`).replace(/[-_]+/g,` `).split(` `).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``):``}function t(t){return`import { ${e(t)}Module } from '@questpie/${t}/${t}.module'`}function n(t){return`${e(t)}Module,`}function r(e){let t=new Set,n=new Set,r=new Map;for(let i of e){let e=i.metadata;if(e){if(e.serverExternalDeps&&Array.isArray(e.serverExternalDeps))for(let n of e.serverExternalDeps)t.add(n);if(e.dockerfileInstructions&&Array.isArray(e.dockerfileInstructions))for(let t of e.dockerfileInstructions)n.add(t);if(e.envs&&Array.isArray(e.envs))for(let t of e.envs)typeof t==`string`?r.set(t,{name:t,description:`Environment variable for ${i.name} package`,optional:!0}):r.set(t.name,t)}}return{serverExternalDeps:Array.from(t).sort(),dockerfileInstructions:Array.from(n),envVariables:Array.from(r.values()).sort((e,t)=>e.name.localeCompare(t.name))}}function i(e){let t=``;for(let n of e.envVariables)t+=`${n.name}=`,n.defaultValue?t+=n.defaultValue:n.example&&(t+=n.example),n.optional&&(t+=` # Optional`),t+=`
`,n.description&&(t+=`# ${n.description}\n`),t+=`
`;return t}function a(e){return e.serverExternalDeps.map(e=>` '${e}',`).join(`
`)}function o(e){return e.dockerfileInstructions.join(`
`)}function s(e){return e.filter(e=>![`core`,`auth`,`web`].includes(e.name)).map(e=>t(e.name)).join(`
`)}function c(e){return e.filter(e=>![`core`,`auth`,`web`].includes(e.name)).map(e=>n(e.name)).join(`
`)}export{r as accumulateMetadata,s as generateAdditionalImports,c as generateAdditionalModules,o as generateDockerfileInstructions,i as generateEnvDocumentation,a as generateServerExternalPackages};
//# sourceMappingURL=metadata-accumulator.js.map