@geekmidas/cli 0.4.0 → 0.5.1
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/dist/CronGenerator-BPTqNYOR.d.cts +14 -0
- package/dist/{CronGenerator-Bh26MaNA.mjs → CronGenerator-CCRYptuT.mjs} +2 -2
- package/dist/{CronGenerator-Bh26MaNA.mjs.map → CronGenerator-CCRYptuT.mjs.map} +1 -1
- package/dist/{CronGenerator-C6MF8rlG.cjs → CronGenerator-D4TWXQbh.cjs} +2 -2
- package/dist/{CronGenerator-C6MF8rlG.cjs.map → CronGenerator-D4TWXQbh.cjs.map} +1 -1
- package/dist/CronGenerator-YAj59JUd.d.mts +14 -0
- package/dist/EndpointGenerator-ChAD1INz.d.cts +19 -0
- package/dist/EndpointGenerator-Cj3O1U8-.d.mts +19 -0
- package/dist/{EndpointGenerator-CzDhG7Or.mjs → EndpointGenerator-DGivkPLT.mjs} +22 -6
- package/dist/EndpointGenerator-DGivkPLT.mjs.map +1 -0
- package/dist/{EndpointGenerator-BxNCkus4.cjs → EndpointGenerator-npWEDoK2.cjs} +22 -6
- package/dist/EndpointGenerator-npWEDoK2.cjs.map +1 -0
- package/dist/FunctionGenerator-429-9NER.d.cts +14 -0
- package/dist/FunctionGenerator-BQ4ehoID.d.mts +14 -0
- package/dist/{FunctionGenerator-BNE_GC7N.mjs → FunctionGenerator-CVk0h8tO.mjs} +2 -2
- package/dist/{FunctionGenerator-BNE_GC7N.mjs.map → FunctionGenerator-CVk0h8tO.mjs.map} +1 -1
- package/dist/{FunctionGenerator-FgZUTd8L.cjs → FunctionGenerator-DYTnyr4c.cjs} +2 -2
- package/dist/{FunctionGenerator-FgZUTd8L.cjs.map → FunctionGenerator-DYTnyr4c.cjs.map} +1 -1
- package/dist/Generator-BjHK_qce.d.mts +27 -0
- package/dist/{Generator-UanJW0_V.mjs → Generator-CDt4pB3W.mjs} +1 -1
- package/dist/{Generator-UanJW0_V.mjs.map → Generator-CDt4pB3W.mjs.map} +1 -1
- package/dist/{Generator-CDoEXCDg.cjs → Generator-CLVplqm2.cjs} +1 -1
- package/dist/{Generator-CDoEXCDg.cjs.map → Generator-CLVplqm2.cjs.map} +1 -1
- package/dist/Generator-DxQMCQp7.d.cts +27 -0
- package/dist/{OpenApiTsGenerator-NBNEoaeO.cjs → OpenApiTsGenerator-Be-sKGTT.cjs} +1 -1
- package/dist/{OpenApiTsGenerator-NBNEoaeO.cjs.map → OpenApiTsGenerator-Be-sKGTT.cjs.map} +1 -1
- package/dist/{OpenApiTsGenerator-q3aWNkuM.mjs → OpenApiTsGenerator-C4mHHaku.mjs} +1 -1
- package/dist/{OpenApiTsGenerator-q3aWNkuM.mjs.map → OpenApiTsGenerator-C4mHHaku.mjs.map} +1 -1
- package/dist/SubscriberGenerator-7uX42xyG.d.mts +15 -0
- package/dist/{SubscriberGenerator-Dnlj_1FK.mjs → SubscriberGenerator-DABaJXML.mjs} +2 -2
- package/dist/{SubscriberGenerator-Dnlj_1FK.mjs.map → SubscriberGenerator-DABaJXML.mjs.map} +1 -1
- package/dist/{SubscriberGenerator-Bd-a7aiw.cjs → SubscriberGenerator-D_zpNGFr.cjs} +2 -2
- package/dist/{SubscriberGenerator-Bd-a7aiw.cjs.map → SubscriberGenerator-D_zpNGFr.cjs.map} +1 -1
- package/dist/SubscriberGenerator-Dtb3HS4i.d.cts +15 -0
- package/dist/api-B3SCEHPf.cjs +190 -0
- package/dist/api-B3SCEHPf.cjs.map +1 -0
- package/dist/api-BKIN0s0S.mjs +184 -0
- package/dist/api-BKIN0s0S.mjs.map +1 -0
- package/dist/build/index.cjs +11 -10
- package/dist/build/index.d.cts +7 -0
- package/dist/build/index.d.mts +7 -0
- package/dist/build/index.mjs +11 -10
- package/dist/build/manifests.cjs +1 -1
- package/dist/build/manifests.d.cts +13 -0
- package/dist/build/manifests.d.mts +13 -0
- package/dist/build/manifests.mjs +1 -1
- package/dist/build/providerResolver.cjs +1 -1
- package/dist/build/providerResolver.d.cts +23 -0
- package/dist/build/providerResolver.d.mts +23 -0
- package/dist/build/providerResolver.mjs +1 -1
- package/dist/build/types.d.cts +3 -0
- package/dist/build/types.d.mts +3 -0
- package/dist/{build-DyDgu_D1.mjs → build-B8C_qHir.mjs} +15 -13
- package/dist/build-B8C_qHir.mjs.map +1 -0
- package/dist/{build-CWtHnJMQ.cjs → build-D0Wr49bf.cjs} +15 -13
- package/dist/build-D0Wr49bf.cjs.map +1 -0
- package/dist/config-Ba-Gbpbc.d.cts +11 -0
- package/dist/config-Bq72aj8e.mjs +75 -0
- package/dist/config-Bq72aj8e.mjs.map +1 -0
- package/dist/config-CFls09Ey.cjs +93 -0
- package/dist/config-CFls09Ey.cjs.map +1 -0
- package/dist/config-CLEDqKO3.cjs +157 -0
- package/dist/config-CLEDqKO3.cjs.map +1 -0
- package/dist/config-DBsmMDhf.d.mts +11 -0
- package/dist/config-Dp8RonV_.mjs +151 -0
- package/dist/config-Dp8RonV_.mjs.map +1 -0
- package/dist/config.cjs +4 -2
- package/dist/config.d.cts +48 -0
- package/dist/config.d.mts +48 -0
- package/dist/config.mjs +2 -2
- package/dist/dev/index.cjs +10 -9
- package/dist/dev/index.d.cts +36 -0
- package/dist/dev/index.d.mts +36 -0
- package/dist/dev/index.mjs +10 -10
- package/dist/{dev-CpA8AQPX.mjs → dev-B734w3L1.mjs} +93 -49
- package/dist/dev-B734w3L1.mjs.map +1 -0
- package/dist/{dev-CgDYC4o8.cjs → dev-DHqYn8k4.cjs} +71 -21
- package/dist/dev-DHqYn8k4.cjs.map +1 -0
- package/dist/docker-5d8Yh5_X.cjs +119 -0
- package/dist/docker-5d8Yh5_X.cjs.map +1 -0
- package/dist/docker-DlUqdFle.mjs +113 -0
- package/dist/docker-DlUqdFle.mjs.map +1 -0
- package/dist/env-B-OKjgI4.cjs +144 -0
- package/dist/env-B-OKjgI4.cjs.map +1 -0
- package/dist/env-HfuJRlg5.d.cts +11 -0
- package/dist/env-nd-iQPYM.d.mts +11 -0
- package/dist/env-tv1HlZlw.mjs +138 -0
- package/dist/env-tv1HlZlw.mjs.map +1 -0
- package/dist/generators/CronGenerator.cjs +2 -2
- package/dist/generators/CronGenerator.d.cts +5 -0
- package/dist/generators/CronGenerator.d.mts +5 -0
- package/dist/generators/CronGenerator.mjs +2 -2
- package/dist/generators/EndpointGenerator.cjs +2 -2
- package/dist/generators/EndpointGenerator.d.cts +5 -0
- package/dist/generators/EndpointGenerator.d.mts +5 -0
- package/dist/generators/EndpointGenerator.mjs +2 -2
- package/dist/generators/FunctionGenerator.cjs +2 -2
- package/dist/generators/FunctionGenerator.d.cts +5 -0
- package/dist/generators/FunctionGenerator.d.mts +5 -0
- package/dist/generators/FunctionGenerator.mjs +2 -2
- package/dist/generators/Generator.cjs +1 -1
- package/dist/generators/Generator.d.cts +4 -0
- package/dist/generators/Generator.d.mts +4 -0
- package/dist/generators/Generator.mjs +1 -1
- package/dist/generators/OpenApiTsGenerator.cjs +1 -1
- package/dist/generators/OpenApiTsGenerator.d.cts +44 -0
- package/dist/generators/OpenApiTsGenerator.d.mts +44 -0
- package/dist/generators/OpenApiTsGenerator.mjs +1 -1
- package/dist/generators/SubscriberGenerator.cjs +2 -2
- package/dist/generators/SubscriberGenerator.d.cts +5 -0
- package/dist/generators/SubscriberGenerator.d.mts +5 -0
- package/dist/generators/SubscriberGenerator.mjs +2 -2
- package/dist/generators/index.cjs +6 -6
- package/dist/generators/index.d.cts +8 -0
- package/dist/generators/index.d.mts +8 -0
- package/dist/generators/index.mjs +6 -6
- package/dist/index-C523No_B.d.mts +64 -0
- package/dist/index-DrzN4xkQ.d.cts +64 -0
- package/dist/index.cjs +48 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.mts +1 -0
- package/dist/index.mjs +48 -16
- package/dist/index.mjs.map +1 -1
- package/dist/init/generators/config.cjs +3 -0
- package/dist/init/generators/config.d.cts +3 -0
- package/dist/init/generators/config.d.mts +3 -0
- package/dist/init/generators/config.mjs +3 -0
- package/dist/init/generators/docker.cjs +3 -0
- package/dist/init/generators/docker.d.cts +11 -0
- package/dist/init/generators/docker.d.mts +11 -0
- package/dist/init/generators/docker.mjs +3 -0
- package/dist/init/generators/env.cjs +3 -0
- package/dist/init/generators/env.d.cts +3 -0
- package/dist/init/generators/env.d.mts +3 -0
- package/dist/init/generators/env.mjs +3 -0
- package/dist/init/generators/index.cjs +9 -0
- package/dist/init/generators/index.d.cts +6 -0
- package/dist/init/generators/index.d.mts +6 -0
- package/dist/init/generators/index.mjs +6 -0
- package/dist/init/generators/models.cjs +3 -0
- package/dist/init/generators/models.d.cts +11 -0
- package/dist/init/generators/models.d.mts +11 -0
- package/dist/init/generators/models.mjs +3 -0
- package/dist/init/generators/monorepo.cjs +3 -0
- package/dist/init/generators/monorepo.d.cts +11 -0
- package/dist/init/generators/monorepo.d.mts +11 -0
- package/dist/init/generators/monorepo.mjs +3 -0
- package/dist/init/generators/package.cjs +3 -0
- package/dist/init/generators/package.d.cts +3 -0
- package/dist/init/generators/package.d.mts +3 -0
- package/dist/init/generators/package.mjs +3 -0
- package/dist/init/generators/source.cjs +3 -0
- package/dist/init/generators/source.d.cts +3 -0
- package/dist/init/generators/source.d.mts +3 -0
- package/dist/init/generators/source.mjs +3 -0
- package/dist/init/index.cjs +16 -0
- package/dist/init/index.d.cts +17 -0
- package/dist/init/index.d.mts +17 -0
- package/dist/init/index.mjs +16 -0
- package/dist/init/templates/api.cjs +3 -0
- package/dist/init/templates/api.d.cts +7 -0
- package/dist/init/templates/api.d.mts +7 -0
- package/dist/init/templates/api.mjs +3 -0
- package/dist/init/templates/index.cjs +10 -0
- package/dist/init/templates/index.d.cts +2 -0
- package/dist/init/templates/index.d.mts +2 -0
- package/dist/init/templates/index.mjs +7 -0
- package/dist/init/templates/minimal.cjs +3 -0
- package/dist/init/templates/minimal.d.cts +7 -0
- package/dist/init/templates/minimal.d.mts +7 -0
- package/dist/init/templates/minimal.mjs +3 -0
- package/dist/init/templates/serverless.cjs +3 -0
- package/dist/init/templates/serverless.d.cts +7 -0
- package/dist/init/templates/serverless.d.mts +7 -0
- package/dist/init/templates/serverless.mjs +3 -0
- package/dist/init/templates/worker.cjs +3 -0
- package/dist/init/templates/worker.d.cts +7 -0
- package/dist/init/templates/worker.d.mts +7 -0
- package/dist/init/templates/worker.mjs +3 -0
- package/dist/init/utils.cjs +7 -0
- package/dist/init/utils.d.cts +25 -0
- package/dist/init/utils.d.mts +25 -0
- package/dist/init/utils.mjs +3 -0
- package/dist/init-CtOnZn3G.mjs +145 -0
- package/dist/init-CtOnZn3G.mjs.map +1 -0
- package/dist/init-qLFsWR-R.cjs +151 -0
- package/dist/init-qLFsWR-R.cjs.map +1 -0
- package/dist/{manifests-C2eMoMUm.mjs → manifests-DIA_2QYd.mjs} +1 -1
- package/dist/{manifests-C2eMoMUm.mjs.map → manifests-DIA_2QYd.mjs.map} +1 -1
- package/dist/{manifests-CK1VV_pM.cjs → manifests-VJ9-2JpW.cjs} +1 -1
- package/dist/{manifests-CK1VV_pM.cjs.map → manifests-VJ9-2JpW.cjs.map} +1 -1
- package/dist/minimal-Bdhhpp7v.cjs +93 -0
- package/dist/minimal-Bdhhpp7v.cjs.map +1 -0
- package/dist/minimal-C4GsE45s.mjs +87 -0
- package/dist/minimal-C4GsE45s.mjs.map +1 -0
- package/dist/models-DyNwdOcz.cjs +121 -0
- package/dist/models-DyNwdOcz.cjs.map +1 -0
- package/dist/models-cvNg6Oea.mjs +115 -0
- package/dist/models-cvNg6Oea.mjs.map +1 -0
- package/dist/monorepo-Cknwzj5C.mjs +184 -0
- package/dist/monorepo-Cknwzj5C.mjs.map +1 -0
- package/dist/monorepo-sEK8gW59.cjs +190 -0
- package/dist/monorepo-sEK8gW59.cjs.map +1 -0
- package/dist/{openapi-DhK4b0lB.cjs → openapi-BQWPWyNB.cjs} +4 -4
- package/dist/{openapi-DhK4b0lB.cjs.map → openapi-BQWPWyNB.cjs.map} +1 -1
- package/dist/{openapi-DRTRGhTt.mjs → openapi-DBX8cJJ8.mjs} +4 -4
- package/dist/{openapi-DRTRGhTt.mjs.map → openapi-DBX8cJJ8.mjs.map} +1 -1
- package/dist/{openapi-react-query-D9Z7lh0p.cjs → openapi-react-query-DxHjXQvg.cjs} +1 -1
- package/dist/{openapi-react-query-D9Z7lh0p.cjs.map → openapi-react-query-DxHjXQvg.cjs.map} +1 -1
- package/dist/{openapi-react-query-MEBlYIM1.mjs → openapi-react-query-o7Mp1Jd5.mjs} +1 -1
- package/dist/{openapi-react-query-MEBlYIM1.mjs.map → openapi-react-query-o7Mp1Jd5.mjs.map} +1 -1
- package/dist/openapi-react-query.cjs +1 -1
- package/dist/openapi-react-query.d.cts +11 -0
- package/dist/openapi-react-query.d.mts +11 -0
- package/dist/openapi-react-query.mjs +1 -1
- package/dist/openapi.cjs +5 -5
- package/dist/openapi.d.cts +11 -0
- package/dist/openapi.d.mts +11 -0
- package/dist/openapi.mjs +5 -5
- package/dist/package-C7WhWU8m.d.mts +11 -0
- package/dist/package-CIfmeuSW.mjs +51 -0
- package/dist/package-CIfmeuSW.mjs.map +1 -0
- package/dist/package-DvWEMz6z.d.cts +11 -0
- package/dist/package-PP-o1nvq.cjs +57 -0
- package/dist/package-PP-o1nvq.cjs.map +1 -0
- package/dist/{providerResolver-B_TjNF0_.mjs → providerResolver-DEVKngbC.mjs} +1 -1
- package/dist/{providerResolver-B_TjNF0_.mjs.map → providerResolver-DEVKngbC.mjs.map} +1 -1
- package/dist/{providerResolver-DgvzNfP4.cjs → providerResolver-DOTbN9jo.cjs} +1 -1
- package/dist/{providerResolver-DgvzNfP4.cjs.map → providerResolver-DOTbN9jo.cjs.map} +1 -1
- package/dist/serverless-DkHBF2vC.mjs +108 -0
- package/dist/serverless-DkHBF2vC.mjs.map +1 -0
- package/dist/serverless-Yav3GRVz.cjs +114 -0
- package/dist/serverless-Yav3GRVz.cjs.map +1 -0
- package/dist/source-D6v2BnKT.d.mts +11 -0
- package/dist/source-D8fK9qRo.d.cts +11 -0
- package/dist/source-DT5Xhiob.cjs +17 -0
- package/dist/source-DT5Xhiob.cjs.map +1 -0
- package/dist/source-DnaH_MLA.mjs +11 -0
- package/dist/source-DnaH_MLA.mjs.map +1 -0
- package/dist/templates-CBFUwpBy.mjs +64 -0
- package/dist/templates-CBFUwpBy.mjs.map +1 -0
- package/dist/templates-DM_rtYYW.cjs +87 -0
- package/dist/templates-DM_rtYYW.cjs.map +1 -0
- package/dist/types-C4KITv-y.d.mts +51 -0
- package/dist/types-Cxl8-uwV.d.mts +129 -0
- package/dist/types-DB99_qIy.d.cts +129 -0
- package/dist/types-DLFN49M3.d.cts +51 -0
- package/dist/types.d.cts +2 -0
- package/dist/types.d.mts +2 -0
- package/dist/utils-BX3F4fT8.cjs +99 -0
- package/dist/utils-BX3F4fT8.cjs.map +1 -0
- package/dist/utils-C31-SWHP.mjs +69 -0
- package/dist/utils-C31-SWHP.mjs.map +1 -0
- package/dist/worker--8O5a3Hv.cjs +150 -0
- package/dist/worker--8O5a3Hv.cjs.map +1 -0
- package/dist/worker-Jme7uOOJ.mjs +144 -0
- package/dist/worker-Jme7uOOJ.mjs.map +1 -0
- package/package.json +12 -4
- package/src/__tests__/loadEnvFiles.spec.ts +131 -0
- package/src/build/index.ts +14 -16
- package/src/build/types.ts +5 -0
- package/src/config.ts +57 -0
- package/src/dev/__tests__/index.spec.ts +114 -119
- package/src/dev/index.ts +77 -17
- package/src/generators/EndpointGenerator.ts +37 -8
- package/src/index.ts +26 -0
- package/src/init/__tests__/generators.spec.ts +366 -0
- package/src/init/__tests__/init.spec.ts +341 -0
- package/src/init/__tests__/utils.spec.ts +104 -0
- package/src/init/generators/config.ts +192 -0
- package/src/init/generators/docker.ts +134 -0
- package/src/init/generators/env.ts +182 -0
- package/src/init/generators/index.ts +4 -0
- package/src/init/generators/models.ts +129 -0
- package/src/init/generators/monorepo.ts +211 -0
- package/src/init/generators/package.ts +81 -0
- package/src/init/generators/source.ts +15 -0
- package/src/init/index.ts +206 -0
- package/src/init/templates/api.ts +218 -0
- package/src/init/templates/index.ts +108 -0
- package/src/init/templates/minimal.ts +102 -0
- package/src/init/templates/serverless.ts +129 -0
- package/src/init/templates/worker.ts +169 -0
- package/src/init/utils.ts +98 -0
- package/src/types.ts +22 -2
- package/tsdown.config.ts +1 -1
- package/dist/EndpointGenerator-BxNCkus4.cjs.map +0 -1
- package/dist/EndpointGenerator-CzDhG7Or.mjs.map +0 -1
- package/dist/build-CWtHnJMQ.cjs.map +0 -1
- package/dist/build-DyDgu_D1.mjs.map +0 -1
- package/dist/config-AFmFKmU0.mjs +0 -30
- package/dist/config-AFmFKmU0.mjs.map +0 -1
- package/dist/config-BVIJpAsa.cjs +0 -36
- package/dist/config-BVIJpAsa.cjs.map +0 -1
- package/dist/dev-CgDYC4o8.cjs.map +0 -1
- package/dist/dev-CpA8AQPX.mjs.map +0 -1
- /package/dist/{generators-CEKtVh81.cjs → generators-3IemvCLk.cjs} +0 -0
- /package/dist/{generators-CsLujGXs.mjs → generators-FNpdfN6J.mjs} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-B8C_qHir.mjs","names":["options: BuildOptions","buildContext: BuildContext","provider: LegacyProvider","context: BuildContext","rootOutputDir: string","endpointGenerator: EndpointGenerator","functionGenerator: FunctionGenerator","cronGenerator: CronGenerator","subscriberGenerator: SubscriberGenerator","endpoints: GeneratedConstruct<Endpoint<any, any, any, any, any, any>>[]","functions: GeneratedConstruct<Function<any, any, any, any>>[]","crons: GeneratedConstruct<Cron<any, any, any, any>>[]","subscribers: GeneratedConstruct<Subscriber<any, any, any, any, any, any>>[]","enableOpenApi: boolean","routeMetadata: RouteInfo[]","appInfo: ServerAppInfo"],"sources":["../src/build/index.ts"],"sourcesContent":["import { mkdir } from 'node:fs/promises';\nimport { join, relative } from 'node:path';\nimport type { Cron } from '@geekmidas/constructs/crons';\nimport type { Endpoint } from '@geekmidas/constructs/endpoints';\nimport type { Function } from '@geekmidas/constructs/functions';\nimport type { Subscriber } from '@geekmidas/constructs/subscribers';\nimport { loadConfig, parseModuleConfig } from '../config';\nimport { normalizeTelescopeConfig } from '../dev';\nimport {\n CronGenerator,\n EndpointGenerator,\n FunctionGenerator,\n type GeneratedConstruct,\n SubscriberGenerator,\n} from '../generators';\nimport type { BuildOptions, LegacyProvider, RouteInfo } from '../types';\nimport {\n type ServerAppInfo,\n generateAwsManifest,\n generateServerManifest,\n} from './manifests';\nimport { resolveProviders } from './providerResolver';\nimport type { BuildContext } from './types';\n\nconst logger = console;\n\nexport async function buildCommand(options: BuildOptions): Promise<void> {\n const config = await loadConfig();\n\n // Resolve providers from new config format\n const resolved = resolveProviders(config, options);\n\n logger.log(`Building with providers: ${resolved.providers.join(', ')}`);\n logger.log(`Loading routes from: ${config.routes}`);\n if (config.functions) {\n logger.log(`Loading functions from: ${config.functions}`);\n }\n if (config.crons) {\n logger.log(`Loading crons from: ${config.crons}`);\n }\n if (config.subscribers) {\n logger.log(`Loading subscribers from: ${config.subscribers}`);\n }\n logger.log(`Using envParser: ${config.envParser}`);\n\n // Parse envParser and logger configuration\n const { path: envParserPath, importPattern: envParserImportPattern } =\n parseModuleConfig(config.envParser, 'envParser');\n const { path: loggerPath, importPattern: loggerImportPattern } =\n parseModuleConfig(config.logger, 'logger');\n\n // Normalize telescope configuration\n const telescope = normalizeTelescopeConfig(config.telescope);\n if (telescope) {\n logger.log(`🔭 Telescope enabled at ${telescope.path}`);\n }\n\n const buildContext: BuildContext = {\n envParserPath,\n envParserImportPattern,\n loggerPath,\n loggerImportPattern,\n telescope,\n };\n\n // Initialize generators\n const endpointGenerator = new EndpointGenerator();\n const functionGenerator = new FunctionGenerator();\n const cronGenerator = new CronGenerator();\n const subscriberGenerator = new SubscriberGenerator();\n\n // Load all constructs in parallel\n const [allEndpoints, allFunctions, allCrons, allSubscribers] =\n await Promise.all([\n endpointGenerator.load(config.routes),\n config.functions ? functionGenerator.load(config.functions) : [],\n config.crons ? cronGenerator.load(config.crons) : [],\n config.subscribers ? subscriberGenerator.load(config.subscribers) : [],\n ]);\n\n logger.log(`Found ${allEndpoints.length} endpoints`);\n logger.log(`Found ${allFunctions.length} functions`);\n logger.log(`Found ${allCrons.length} crons`);\n logger.log(`Found ${allSubscribers.length} subscribers`);\n\n if (\n allEndpoints.length === 0 &&\n allFunctions.length === 0 &&\n allCrons.length === 0 &&\n allSubscribers.length === 0\n ) {\n logger.log(\n 'No endpoints, functions, crons, or subscribers found to process',\n );\n return;\n }\n\n // Ensure .gkm directory exists\n const rootOutputDir = join(process.cwd(), '.gkm');\n await mkdir(rootOutputDir, { recursive: true });\n\n // Build for each provider and generate per-provider manifests\n for (const provider of resolved.providers) {\n await buildForProvider(\n provider,\n buildContext,\n rootOutputDir,\n endpointGenerator,\n functionGenerator,\n cronGenerator,\n subscriberGenerator,\n allEndpoints,\n allFunctions,\n allCrons,\n allSubscribers,\n resolved.enableOpenApi,\n );\n }\n}\n\nasync function buildForProvider(\n provider: LegacyProvider,\n context: BuildContext,\n rootOutputDir: string,\n endpointGenerator: EndpointGenerator,\n functionGenerator: FunctionGenerator,\n cronGenerator: CronGenerator,\n subscriberGenerator: SubscriberGenerator,\n endpoints: GeneratedConstruct<Endpoint<any, any, any, any, any, any>>[],\n functions: GeneratedConstruct<Function<any, any, any, any>>[],\n crons: GeneratedConstruct<Cron<any, any, any, any>>[],\n subscribers: GeneratedConstruct<Subscriber<any, any, any, any, any, any>>[],\n enableOpenApi: boolean,\n): Promise<void> {\n const outputDir = join(process.cwd(), '.gkm', provider);\n\n // Ensure output directory exists\n await mkdir(outputDir, { recursive: true });\n\n logger.log(`\\nGenerating handlers for provider: ${provider}`);\n\n // Build all constructs in parallel\n const [routes, functionInfos, cronInfos, subscriberInfos] = await Promise.all(\n [\n endpointGenerator.build(context, endpoints, outputDir, {\n provider,\n enableOpenApi,\n }),\n functionGenerator.build(context, functions, outputDir, { provider }),\n cronGenerator.build(context, crons, outputDir, { provider }),\n subscriberGenerator.build(context, subscribers, outputDir, { provider }),\n ],\n );\n\n logger.log(\n `Generated ${routes.length} routes, ${functionInfos.length} functions, ${cronInfos.length} crons, ${subscriberInfos.length} subscribers for ${provider}`,\n );\n\n // Generate provider-specific manifest\n if (provider === 'server') {\n // For server, collect actual route metadata from endpoint constructs\n const routeMetadata: RouteInfo[] = await Promise.all(\n endpoints.map(async ({ construct }) => ({\n path: construct._path,\n method: construct.method,\n handler: '', // Not needed for server manifest\n authorizer: construct.authorizer?.name ?? 'none',\n })),\n );\n\n const appInfo: ServerAppInfo = {\n handler: relative(process.cwd(), join(outputDir, 'app.ts')),\n endpoints: relative(process.cwd(), join(outputDir, 'endpoints.ts')),\n };\n\n await generateServerManifest(\n rootOutputDir,\n appInfo,\n routeMetadata,\n subscriberInfos,\n );\n } else {\n // For AWS providers, generate AWS manifest\n await generateAwsManifest(\n rootOutputDir,\n routes,\n functionInfos,\n cronInfos,\n subscriberInfos,\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
|
-
const require_config = require('./config-
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
2
|
+
const require_config = require('./config-CFls09Ey.cjs');
|
|
3
|
+
const require_providerResolver = require('./providerResolver-DOTbN9jo.cjs');
|
|
4
|
+
const require_CronGenerator = require('./CronGenerator-D4TWXQbh.cjs');
|
|
5
|
+
const require_EndpointGenerator = require('./EndpointGenerator-npWEDoK2.cjs');
|
|
6
|
+
const require_FunctionGenerator = require('./FunctionGenerator-DYTnyr4c.cjs');
|
|
7
|
+
const require_SubscriberGenerator = require('./SubscriberGenerator-D_zpNGFr.cjs');
|
|
8
|
+
const require_dev = require('./dev-DHqYn8k4.cjs');
|
|
9
|
+
const require_manifests = require('./manifests-VJ9-2JpW.cjs');
|
|
9
10
|
const node_fs_promises = require_chunk.__toESM(require("node:fs/promises"));
|
|
10
11
|
const node_path = require_chunk.__toESM(require("node:path"));
|
|
11
12
|
|
|
@@ -20,15 +21,16 @@ async function buildCommand(options) {
|
|
|
20
21
|
if (config.crons) logger.log(`Loading crons from: ${config.crons}`);
|
|
21
22
|
if (config.subscribers) logger.log(`Loading subscribers from: ${config.subscribers}`);
|
|
22
23
|
logger.log(`Using envParser: ${config.envParser}`);
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
|
|
24
|
+
const { path: envParserPath, importPattern: envParserImportPattern } = require_config.parseModuleConfig(config.envParser, "envParser");
|
|
25
|
+
const { path: loggerPath, importPattern: loggerImportPattern } = require_config.parseModuleConfig(config.logger, "logger");
|
|
26
|
+
const telescope = require_dev.normalizeTelescopeConfig(config.telescope);
|
|
27
|
+
if (telescope) logger.log(`🔭 Telescope enabled at ${telescope.path}`);
|
|
27
28
|
const buildContext = {
|
|
28
29
|
envParserPath,
|
|
29
30
|
envParserImportPattern,
|
|
30
31
|
loggerPath,
|
|
31
|
-
loggerImportPattern
|
|
32
|
+
loggerImportPattern,
|
|
33
|
+
telescope
|
|
32
34
|
};
|
|
33
35
|
const endpointGenerator = new require_EndpointGenerator.EndpointGenerator();
|
|
34
36
|
const functionGenerator = new require_FunctionGenerator.FunctionGenerator();
|
|
@@ -88,4 +90,4 @@ Object.defineProperty(exports, 'buildCommand', {
|
|
|
88
90
|
return buildCommand;
|
|
89
91
|
}
|
|
90
92
|
});
|
|
91
|
-
//# sourceMappingURL=build-
|
|
93
|
+
//# sourceMappingURL=build-D0Wr49bf.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-D0Wr49bf.cjs","names":["options: BuildOptions","buildContext: BuildContext","EndpointGenerator","FunctionGenerator","CronGenerator","SubscriberGenerator","provider: LegacyProvider","context: BuildContext","rootOutputDir: string","endpointGenerator: EndpointGenerator","functionGenerator: FunctionGenerator","cronGenerator: CronGenerator","subscriberGenerator: SubscriberGenerator","endpoints: GeneratedConstruct<Endpoint<any, any, any, any, any, any>>[]","functions: GeneratedConstruct<Function<any, any, any, any>>[]","crons: GeneratedConstruct<Cron<any, any, any, any>>[]","subscribers: GeneratedConstruct<Subscriber<any, any, any, any, any, any>>[]","enableOpenApi: boolean","routeMetadata: RouteInfo[]","appInfo: ServerAppInfo"],"sources":["../src/build/index.ts"],"sourcesContent":["import { mkdir } from 'node:fs/promises';\nimport { join, relative } from 'node:path';\nimport type { Cron } from '@geekmidas/constructs/crons';\nimport type { Endpoint } from '@geekmidas/constructs/endpoints';\nimport type { Function } from '@geekmidas/constructs/functions';\nimport type { Subscriber } from '@geekmidas/constructs/subscribers';\nimport { loadConfig, parseModuleConfig } from '../config';\nimport { normalizeTelescopeConfig } from '../dev';\nimport {\n CronGenerator,\n EndpointGenerator,\n FunctionGenerator,\n type GeneratedConstruct,\n SubscriberGenerator,\n} from '../generators';\nimport type { BuildOptions, LegacyProvider, RouteInfo } from '../types';\nimport {\n type ServerAppInfo,\n generateAwsManifest,\n generateServerManifest,\n} from './manifests';\nimport { resolveProviders } from './providerResolver';\nimport type { BuildContext } from './types';\n\nconst logger = console;\n\nexport async function buildCommand(options: BuildOptions): Promise<void> {\n const config = await loadConfig();\n\n // Resolve providers from new config format\n const resolved = resolveProviders(config, options);\n\n logger.log(`Building with providers: ${resolved.providers.join(', ')}`);\n logger.log(`Loading routes from: ${config.routes}`);\n if (config.functions) {\n logger.log(`Loading functions from: ${config.functions}`);\n }\n if (config.crons) {\n logger.log(`Loading crons from: ${config.crons}`);\n }\n if (config.subscribers) {\n logger.log(`Loading subscribers from: ${config.subscribers}`);\n }\n logger.log(`Using envParser: ${config.envParser}`);\n\n // Parse envParser and logger configuration\n const { path: envParserPath, importPattern: envParserImportPattern } =\n parseModuleConfig(config.envParser, 'envParser');\n const { path: loggerPath, importPattern: loggerImportPattern } =\n parseModuleConfig(config.logger, 'logger');\n\n // Normalize telescope configuration\n const telescope = normalizeTelescopeConfig(config.telescope);\n if (telescope) {\n logger.log(`🔭 Telescope enabled at ${telescope.path}`);\n }\n\n const buildContext: BuildContext = {\n envParserPath,\n envParserImportPattern,\n loggerPath,\n loggerImportPattern,\n telescope,\n };\n\n // Initialize generators\n const endpointGenerator = new EndpointGenerator();\n const functionGenerator = new FunctionGenerator();\n const cronGenerator = new CronGenerator();\n const subscriberGenerator = new SubscriberGenerator();\n\n // Load all constructs in parallel\n const [allEndpoints, allFunctions, allCrons, allSubscribers] =\n await Promise.all([\n endpointGenerator.load(config.routes),\n config.functions ? functionGenerator.load(config.functions) : [],\n config.crons ? cronGenerator.load(config.crons) : [],\n config.subscribers ? subscriberGenerator.load(config.subscribers) : [],\n ]);\n\n logger.log(`Found ${allEndpoints.length} endpoints`);\n logger.log(`Found ${allFunctions.length} functions`);\n logger.log(`Found ${allCrons.length} crons`);\n logger.log(`Found ${allSubscribers.length} subscribers`);\n\n if (\n allEndpoints.length === 0 &&\n allFunctions.length === 0 &&\n allCrons.length === 0 &&\n allSubscribers.length === 0\n ) {\n logger.log(\n 'No endpoints, functions, crons, or subscribers found to process',\n );\n return;\n }\n\n // Ensure .gkm directory exists\n const rootOutputDir = join(process.cwd(), '.gkm');\n await mkdir(rootOutputDir, { recursive: true });\n\n // Build for each provider and generate per-provider manifests\n for (const provider of resolved.providers) {\n await buildForProvider(\n provider,\n buildContext,\n rootOutputDir,\n endpointGenerator,\n functionGenerator,\n cronGenerator,\n subscriberGenerator,\n allEndpoints,\n allFunctions,\n allCrons,\n allSubscribers,\n resolved.enableOpenApi,\n );\n }\n}\n\nasync function buildForProvider(\n provider: LegacyProvider,\n context: BuildContext,\n rootOutputDir: string,\n endpointGenerator: EndpointGenerator,\n functionGenerator: FunctionGenerator,\n cronGenerator: CronGenerator,\n subscriberGenerator: SubscriberGenerator,\n endpoints: GeneratedConstruct<Endpoint<any, any, any, any, any, any>>[],\n functions: GeneratedConstruct<Function<any, any, any, any>>[],\n crons: GeneratedConstruct<Cron<any, any, any, any>>[],\n subscribers: GeneratedConstruct<Subscriber<any, any, any, any, any, any>>[],\n enableOpenApi: boolean,\n): Promise<void> {\n const outputDir = join(process.cwd(), '.gkm', provider);\n\n // Ensure output directory exists\n await mkdir(outputDir, { recursive: true });\n\n logger.log(`\\nGenerating handlers for provider: ${provider}`);\n\n // Build all constructs in parallel\n const [routes, functionInfos, cronInfos, subscriberInfos] = await Promise.all(\n [\n endpointGenerator.build(context, endpoints, outputDir, {\n provider,\n enableOpenApi,\n }),\n functionGenerator.build(context, functions, outputDir, { provider }),\n cronGenerator.build(context, crons, outputDir, { provider }),\n subscriberGenerator.build(context, subscribers, outputDir, { provider }),\n ],\n );\n\n logger.log(\n `Generated ${routes.length} routes, ${functionInfos.length} functions, ${cronInfos.length} crons, ${subscriberInfos.length} subscribers for ${provider}`,\n );\n\n // Generate provider-specific manifest\n if (provider === 'server') {\n // For server, collect actual route metadata from endpoint constructs\n const routeMetadata: RouteInfo[] = await Promise.all(\n endpoints.map(async ({ construct }) => ({\n path: construct._path,\n method: construct.method,\n handler: '', // Not needed for server manifest\n authorizer: construct.authorizer?.name ?? 'none',\n })),\n );\n\n const appInfo: ServerAppInfo = {\n handler: relative(process.cwd(), join(outputDir, 'app.ts')),\n endpoints: relative(process.cwd(), join(outputDir, 'endpoints.ts')),\n };\n\n await generateServerManifest(\n rootOutputDir,\n appInfo,\n routeMetadata,\n subscriberInfos,\n );\n } else {\n // For AWS providers, generate AWS manifest\n await generateAwsManifest(\n rootOutputDir,\n routes,\n functionInfos,\n cronInfos,\n subscriberInfos,\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAwBA,MAAM,SAAS;AAEf,eAAsB,aAAaA,SAAsC;CACvE,MAAM,SAAS,MAAM,2BAAY;CAGjC,MAAM,WAAW,0CAAiB,QAAQ,QAAQ;AAElD,QAAO,KAAK,2BAA2B,SAAS,UAAU,KAAK,KAAK,CAAC,EAAE;AACvE,QAAO,KAAK,uBAAuB,OAAO,OAAO,EAAE;AACnD,KAAI,OAAO,UACT,QAAO,KAAK,0BAA0B,OAAO,UAAU,EAAE;AAE3D,KAAI,OAAO,MACT,QAAO,KAAK,sBAAsB,OAAO,MAAM,EAAE;AAEnD,KAAI,OAAO,YACT,QAAO,KAAK,4BAA4B,OAAO,YAAY,EAAE;AAE/D,QAAO,KAAK,mBAAmB,OAAO,UAAU,EAAE;CAGlD,MAAM,EAAE,MAAM,eAAe,eAAe,wBAAwB,GAClE,iCAAkB,OAAO,WAAW,YAAY;CAClD,MAAM,EAAE,MAAM,YAAY,eAAe,qBAAqB,GAC5D,iCAAkB,OAAO,QAAQ,SAAS;CAG5C,MAAM,YAAY,qCAAyB,OAAO,UAAU;AAC5D,KAAI,UACF,QAAO,KAAK,0BAA0B,UAAU,KAAK,EAAE;CAGzD,MAAMC,eAA6B;EACjC;EACA;EACA;EACA;EACA;CACD;CAGD,MAAM,oBAAoB,IAAIC;CAC9B,MAAM,oBAAoB,IAAIC;CAC9B,MAAM,gBAAgB,IAAIC;CAC1B,MAAM,sBAAsB,IAAIC;CAGhC,MAAM,CAAC,cAAc,cAAc,UAAU,eAAe,GAC1D,MAAM,QAAQ,IAAI;EAChB,kBAAkB,KAAK,OAAO,OAAO;EACrC,OAAO,YAAY,kBAAkB,KAAK,OAAO,UAAU,GAAG,CAAE;EAChE,OAAO,QAAQ,cAAc,KAAK,OAAO,MAAM,GAAG,CAAE;EACpD,OAAO,cAAc,oBAAoB,KAAK,OAAO,YAAY,GAAG,CAAE;CACvE,EAAC;AAEJ,QAAO,KAAK,QAAQ,aAAa,OAAO,YAAY;AACpD,QAAO,KAAK,QAAQ,aAAa,OAAO,YAAY;AACpD,QAAO,KAAK,QAAQ,SAAS,OAAO,QAAQ;AAC5C,QAAO,KAAK,QAAQ,eAAe,OAAO,cAAc;AAExD,KACE,aAAa,WAAW,KACxB,aAAa,WAAW,KACxB,SAAS,WAAW,KACpB,eAAe,WAAW,GAC1B;AACA,SAAO,IACL,kEACD;AACD;CACD;CAGD,MAAM,gBAAgB,oBAAK,QAAQ,KAAK,EAAE,OAAO;AACjD,OAAM,4BAAM,eAAe,EAAE,WAAW,KAAM,EAAC;AAG/C,MAAK,MAAM,YAAY,SAAS,UAC9B,OAAM,iBACJ,UACA,cACA,eACA,mBACA,mBACA,eACA,qBACA,cACA,cACA,UACA,gBACA,SAAS,cACV;AAEJ;AAED,eAAe,iBACbC,UACAC,SACAC,eACAC,mBACAC,mBACAC,eACAC,qBACAC,WACAC,WACAC,OACAC,aACAC,eACe;CACf,MAAM,YAAY,oBAAK,QAAQ,KAAK,EAAE,QAAQ,SAAS;AAGvD,OAAM,4BAAM,WAAW,EAAE,WAAW,KAAM,EAAC;AAE3C,QAAO,KAAK,sCAAsC,SAAS,EAAE;CAG7D,MAAM,CAAC,QAAQ,eAAe,WAAW,gBAAgB,GAAG,MAAM,QAAQ,IACxE;EACE,kBAAkB,MAAM,SAAS,WAAW,WAAW;GACrD;GACA;EACD,EAAC;EACF,kBAAkB,MAAM,SAAS,WAAW,WAAW,EAAE,SAAU,EAAC;EACpE,cAAc,MAAM,SAAS,OAAO,WAAW,EAAE,SAAU,EAAC;EAC5D,oBAAoB,MAAM,SAAS,aAAa,WAAW,EAAE,SAAU,EAAC;CACzE,EACF;AAED,QAAO,KACJ,YAAY,OAAO,OAAO,WAAW,cAAc,OAAO,cAAc,UAAU,OAAO,UAAU,gBAAgB,OAAO,mBAAmB,SAAS,EACxJ;AAGD,KAAI,aAAa,UAAU;EAEzB,MAAMC,gBAA6B,MAAM,QAAQ,IAC/C,UAAU,IAAI,OAAO,EAAE,WAAW,MAAM;GACtC,MAAM,UAAU;GAChB,QAAQ,UAAU;GAClB,SAAS;GACT,YAAY,UAAU,YAAY,QAAQ;EAC3C,GAAE,CACJ;EAED,MAAMC,UAAyB;GAC7B,SAAS,wBAAS,QAAQ,KAAK,EAAE,oBAAK,WAAW,SAAS,CAAC;GAC3D,WAAW,wBAAS,QAAQ,KAAK,EAAE,oBAAK,WAAW,eAAe,CAAC;EACpE;AAED,QAAM,yCACJ,eACA,SACA,eACA,gBACD;CACF,MAEC,OAAM,sCACJ,eACA,QACA,eACA,WACA,gBACD;AAEJ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-DrzN4xkQ.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/init/generators/config.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Generate configuration files (gkm.config.ts, tsconfig.json, biome.json, turbo.json)
|
|
7
|
+
*/
|
|
8
|
+
declare function generateConfigFiles(options: TemplateOptions, template: TemplateConfig): GeneratedFile[];
|
|
9
|
+
//#endregion
|
|
10
|
+
export { generateConfigFiles };
|
|
11
|
+
//# sourceMappingURL=config-Ba-Gbpbc.d.cts.map
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { existsSync } from "fs";
|
|
2
|
+
import { join } from "path";
|
|
3
|
+
|
|
4
|
+
//#region src/config.ts
|
|
5
|
+
/**
|
|
6
|
+
* Define GKM configuration with full TypeScript support.
|
|
7
|
+
* This is an identity function that provides type safety and autocomplete.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* // gkm.config.ts
|
|
12
|
+
* import { defineConfig } from '@geekmidas/cli/config';
|
|
13
|
+
*
|
|
14
|
+
* export default defineConfig({
|
|
15
|
+
* routes: './src/endpoints/**\/*.ts',
|
|
16
|
+
* envParser: './src/config/env',
|
|
17
|
+
* logger: './src/config/logger',
|
|
18
|
+
* telescope: true,
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
function defineConfig(config) {
|
|
23
|
+
return config;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Parse a module config string into path and import pattern.
|
|
27
|
+
*
|
|
28
|
+
* @param configString - Config string in format "./path/to/module" or "./path/to/module#exportName"
|
|
29
|
+
* @param defaultAlias - The default alias name to use if no export name specified
|
|
30
|
+
* @returns Object with path and import pattern
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* parseModuleConfig('./src/config/env', 'envParser')
|
|
34
|
+
* // { path: './src/config/env', importPattern: 'envParser' }
|
|
35
|
+
*
|
|
36
|
+
* parseModuleConfig('./src/config/env#envParser', 'envParser')
|
|
37
|
+
* // { path: './src/config/env', importPattern: '{ envParser }' }
|
|
38
|
+
*
|
|
39
|
+
* parseModuleConfig('./src/config/env#myEnv', 'envParser')
|
|
40
|
+
* // { path: './src/config/env', importPattern: '{ myEnv as envParser }' }
|
|
41
|
+
*/
|
|
42
|
+
function parseModuleConfig(configString, defaultAlias) {
|
|
43
|
+
const [path, exportName] = configString.split("#");
|
|
44
|
+
const importPattern = !exportName ? defaultAlias : exportName === defaultAlias ? `{ ${defaultAlias} }` : `{ ${exportName} as ${defaultAlias} }`;
|
|
45
|
+
return {
|
|
46
|
+
path,
|
|
47
|
+
importPattern
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
async function loadConfig(cwd = process.cwd()) {
|
|
51
|
+
const files = [
|
|
52
|
+
"gkm.config.json",
|
|
53
|
+
"gkm.config.ts",
|
|
54
|
+
"gkm.config.js"
|
|
55
|
+
];
|
|
56
|
+
let configPath = "";
|
|
57
|
+
for (const file of files) {
|
|
58
|
+
const path = join(cwd, file);
|
|
59
|
+
if (existsSync(path)) {
|
|
60
|
+
configPath = path;
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (!configPath) throw new Error("Configuration file not found. Please create gkm.config.json, gkm.config.ts, or gkm.config.js in the project root.");
|
|
65
|
+
try {
|
|
66
|
+
const config = await import(configPath);
|
|
67
|
+
return config.default;
|
|
68
|
+
} catch (error) {
|
|
69
|
+
throw new Error(`Failed to load gkm.config.json: ${error.message}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
//#endregion
|
|
74
|
+
export { defineConfig, loadConfig, parseModuleConfig };
|
|
75
|
+
//# sourceMappingURL=config-Bq72aj8e.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-Bq72aj8e.mjs","names":["config: GkmConfig","configString: string","defaultAlias: string","cwd: string"],"sources":["../src/config.ts"],"sourcesContent":["import { existsSync } from 'fs';\nimport { join } from 'path';\nimport type { GkmConfig } from './types.ts';\n\n/**\n * Define GKM configuration with full TypeScript support.\n * This is an identity function that provides type safety and autocomplete.\n *\n * @example\n * ```ts\n * // gkm.config.ts\n * import { defineConfig } from '@geekmidas/cli/config';\n *\n * export default defineConfig({\n * routes: './src/endpoints/**\\/*.ts',\n * envParser: './src/config/env',\n * logger: './src/config/logger',\n * telescope: true,\n * });\n * ```\n */\nexport function defineConfig(config: GkmConfig): GkmConfig {\n return config;\n}\n\nexport interface ParsedModuleConfig {\n path: string;\n importPattern: string;\n}\n\n/**\n * Parse a module config string into path and import pattern.\n *\n * @param configString - Config string in format \"./path/to/module\" or \"./path/to/module#exportName\"\n * @param defaultAlias - The default alias name to use if no export name specified\n * @returns Object with path and import pattern\n *\n * @example\n * parseModuleConfig('./src/config/env', 'envParser')\n * // { path: './src/config/env', importPattern: 'envParser' }\n *\n * parseModuleConfig('./src/config/env#envParser', 'envParser')\n * // { path: './src/config/env', importPattern: '{ envParser }' }\n *\n * parseModuleConfig('./src/config/env#myEnv', 'envParser')\n * // { path: './src/config/env', importPattern: '{ myEnv as envParser }' }\n */\nexport function parseModuleConfig(\n configString: string,\n defaultAlias: string,\n): ParsedModuleConfig {\n const [path, exportName] = configString.split('#');\n const importPattern = !exportName\n ? defaultAlias\n : exportName === defaultAlias\n ? `{ ${defaultAlias} }`\n : `{ ${exportName} as ${defaultAlias} }`;\n\n return { path, importPattern };\n}\n\nexport async function loadConfig(\n cwd: string = process.cwd(),\n): Promise<GkmConfig> {\n const files = ['gkm.config.json', 'gkm.config.ts', 'gkm.config.js'];\n let configPath = '';\n\n for (const file of files) {\n const path = join(cwd, file);\n if (existsSync(path)) {\n configPath = path;\n break;\n }\n }\n\n if (!configPath) {\n throw new Error(\n 'Configuration file not found. Please create gkm.config.json, gkm.config.ts, or gkm.config.js in the project root.',\n );\n }\n\n try {\n const config = await import(configPath);\n return config.default;\n } catch (error) {\n throw new Error(\n `Failed to load gkm.config.json: ${(error as Error).message}`,\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,SAAgB,aAAaA,QAA8B;AACzD,QAAO;AACR;;;;;;;;;;;;;;;;;;AAwBD,SAAgB,kBACdC,cACAC,cACoB;CACpB,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,MAAM,IAAI;CAClD,MAAM,iBAAiB,aACnB,eACA,eAAe,gBACZ,IAAI,aAAa,OACjB,IAAI,WAAW,MAAM,aAAa;AAEzC,QAAO;EAAE;EAAM;CAAe;AAC/B;AAED,eAAsB,WACpBC,MAAc,QAAQ,KAAK,EACP;CACpB,MAAM,QAAQ;EAAC;EAAmB;EAAiB;CAAgB;CACnE,IAAI,aAAa;AAEjB,MAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,OAAO,KAAK,KAAK,KAAK;AAC5B,MAAI,WAAW,KAAK,EAAE;AACpB,gBAAa;AACb;EACD;CACF;AAED,MAAK,WACH,OAAM,IAAI,MACR;AAIJ,KAAI;EACF,MAAM,SAAS,MAAM,OAAO;AAC5B,SAAO,OAAO;CACf,SAAQ,OAAO;AACd,QAAM,IAAI,OACP,kCAAmC,MAAgB,QAAQ;CAE/D;AACF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
|
+
const fs = require_chunk.__toESM(require("fs"));
|
|
3
|
+
const path = require_chunk.__toESM(require("path"));
|
|
4
|
+
|
|
5
|
+
//#region src/config.ts
|
|
6
|
+
/**
|
|
7
|
+
* Define GKM configuration with full TypeScript support.
|
|
8
|
+
* This is an identity function that provides type safety and autocomplete.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* // gkm.config.ts
|
|
13
|
+
* import { defineConfig } from '@geekmidas/cli/config';
|
|
14
|
+
*
|
|
15
|
+
* export default defineConfig({
|
|
16
|
+
* routes: './src/endpoints/**\/*.ts',
|
|
17
|
+
* envParser: './src/config/env',
|
|
18
|
+
* logger: './src/config/logger',
|
|
19
|
+
* telescope: true,
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
function defineConfig(config) {
|
|
24
|
+
return config;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Parse a module config string into path and import pattern.
|
|
28
|
+
*
|
|
29
|
+
* @param configString - Config string in format "./path/to/module" or "./path/to/module#exportName"
|
|
30
|
+
* @param defaultAlias - The default alias name to use if no export name specified
|
|
31
|
+
* @returns Object with path and import pattern
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* parseModuleConfig('./src/config/env', 'envParser')
|
|
35
|
+
* // { path: './src/config/env', importPattern: 'envParser' }
|
|
36
|
+
*
|
|
37
|
+
* parseModuleConfig('./src/config/env#envParser', 'envParser')
|
|
38
|
+
* // { path: './src/config/env', importPattern: '{ envParser }' }
|
|
39
|
+
*
|
|
40
|
+
* parseModuleConfig('./src/config/env#myEnv', 'envParser')
|
|
41
|
+
* // { path: './src/config/env', importPattern: '{ myEnv as envParser }' }
|
|
42
|
+
*/
|
|
43
|
+
function parseModuleConfig(configString, defaultAlias) {
|
|
44
|
+
const [path$1, exportName] = configString.split("#");
|
|
45
|
+
const importPattern = !exportName ? defaultAlias : exportName === defaultAlias ? `{ ${defaultAlias} }` : `{ ${exportName} as ${defaultAlias} }`;
|
|
46
|
+
return {
|
|
47
|
+
path: path$1,
|
|
48
|
+
importPattern
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
async function loadConfig(cwd = process.cwd()) {
|
|
52
|
+
const files = [
|
|
53
|
+
"gkm.config.json",
|
|
54
|
+
"gkm.config.ts",
|
|
55
|
+
"gkm.config.js"
|
|
56
|
+
];
|
|
57
|
+
let configPath = "";
|
|
58
|
+
for (const file of files) {
|
|
59
|
+
const path$1 = (0, path.join)(cwd, file);
|
|
60
|
+
if ((0, fs.existsSync)(path$1)) {
|
|
61
|
+
configPath = path$1;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (!configPath) throw new Error("Configuration file not found. Please create gkm.config.json, gkm.config.ts, or gkm.config.js in the project root.");
|
|
66
|
+
try {
|
|
67
|
+
const config = await import(configPath);
|
|
68
|
+
return config.default;
|
|
69
|
+
} catch (error) {
|
|
70
|
+
throw new Error(`Failed to load gkm.config.json: ${error.message}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
//#endregion
|
|
75
|
+
Object.defineProperty(exports, 'defineConfig', {
|
|
76
|
+
enumerable: true,
|
|
77
|
+
get: function () {
|
|
78
|
+
return defineConfig;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
Object.defineProperty(exports, 'loadConfig', {
|
|
82
|
+
enumerable: true,
|
|
83
|
+
get: function () {
|
|
84
|
+
return loadConfig;
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
Object.defineProperty(exports, 'parseModuleConfig', {
|
|
88
|
+
enumerable: true,
|
|
89
|
+
get: function () {
|
|
90
|
+
return parseModuleConfig;
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
//# sourceMappingURL=config-CFls09Ey.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-CFls09Ey.cjs","names":["config: GkmConfig","configString: string","defaultAlias: string","path","cwd: string"],"sources":["../src/config.ts"],"sourcesContent":["import { existsSync } from 'fs';\nimport { join } from 'path';\nimport type { GkmConfig } from './types.ts';\n\n/**\n * Define GKM configuration with full TypeScript support.\n * This is an identity function that provides type safety and autocomplete.\n *\n * @example\n * ```ts\n * // gkm.config.ts\n * import { defineConfig } from '@geekmidas/cli/config';\n *\n * export default defineConfig({\n * routes: './src/endpoints/**\\/*.ts',\n * envParser: './src/config/env',\n * logger: './src/config/logger',\n * telescope: true,\n * });\n * ```\n */\nexport function defineConfig(config: GkmConfig): GkmConfig {\n return config;\n}\n\nexport interface ParsedModuleConfig {\n path: string;\n importPattern: string;\n}\n\n/**\n * Parse a module config string into path and import pattern.\n *\n * @param configString - Config string in format \"./path/to/module\" or \"./path/to/module#exportName\"\n * @param defaultAlias - The default alias name to use if no export name specified\n * @returns Object with path and import pattern\n *\n * @example\n * parseModuleConfig('./src/config/env', 'envParser')\n * // { path: './src/config/env', importPattern: 'envParser' }\n *\n * parseModuleConfig('./src/config/env#envParser', 'envParser')\n * // { path: './src/config/env', importPattern: '{ envParser }' }\n *\n * parseModuleConfig('./src/config/env#myEnv', 'envParser')\n * // { path: './src/config/env', importPattern: '{ myEnv as envParser }' }\n */\nexport function parseModuleConfig(\n configString: string,\n defaultAlias: string,\n): ParsedModuleConfig {\n const [path, exportName] = configString.split('#');\n const importPattern = !exportName\n ? defaultAlias\n : exportName === defaultAlias\n ? `{ ${defaultAlias} }`\n : `{ ${exportName} as ${defaultAlias} }`;\n\n return { path, importPattern };\n}\n\nexport async function loadConfig(\n cwd: string = process.cwd(),\n): Promise<GkmConfig> {\n const files = ['gkm.config.json', 'gkm.config.ts', 'gkm.config.js'];\n let configPath = '';\n\n for (const file of files) {\n const path = join(cwd, file);\n if (existsSync(path)) {\n configPath = path;\n break;\n }\n }\n\n if (!configPath) {\n throw new Error(\n 'Configuration file not found. Please create gkm.config.json, gkm.config.ts, or gkm.config.js in the project root.',\n );\n }\n\n try {\n const config = await import(configPath);\n return config.default;\n } catch (error) {\n throw new Error(\n `Failed to load gkm.config.json: ${(error as Error).message}`,\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAqBA,SAAgB,aAAaA,QAA8B;AACzD,QAAO;AACR;;;;;;;;;;;;;;;;;;AAwBD,SAAgB,kBACdC,cACAC,cACoB;CACpB,MAAM,CAACC,QAAM,WAAW,GAAG,aAAa,MAAM,IAAI;CAClD,MAAM,iBAAiB,aACnB,eACA,eAAe,gBACZ,IAAI,aAAa,OACjB,IAAI,WAAW,MAAM,aAAa;AAEzC,QAAO;EAAE;EAAM;CAAe;AAC/B;AAED,eAAsB,WACpBC,MAAc,QAAQ,KAAK,EACP;CACpB,MAAM,QAAQ;EAAC;EAAmB;EAAiB;CAAgB;CACnE,IAAI,aAAa;AAEjB,MAAK,MAAM,QAAQ,OAAO;EACxB,MAAMD,SAAO,eAAK,KAAK,KAAK;AAC5B,MAAI,mBAAWA,OAAK,EAAE;AACpB,gBAAaA;AACb;EACD;CACF;AAED,MAAK,WACH,OAAM,IAAI,MACR;AAIJ,KAAI;EACF,MAAM,SAAS,MAAM,OAAO;AAC5B,SAAO,OAAO;CACf,SAAQ,OAAO;AACd,QAAM,IAAI,OACP,kCAAmC,MAAgB,QAAQ;CAE/D;AACF"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/init/generators/config.ts
|
|
3
|
+
/**
|
|
4
|
+
* Generate configuration files (gkm.config.ts, tsconfig.json, biome.json, turbo.json)
|
|
5
|
+
*/
|
|
6
|
+
function generateConfigFiles(options, template) {
|
|
7
|
+
const { telescope } = options;
|
|
8
|
+
const isServerless = template.name === "serverless";
|
|
9
|
+
const hasWorker = template.name === "worker";
|
|
10
|
+
let gkmConfig = `import { defineConfig } from '@geekmidas/cli';
|
|
11
|
+
|
|
12
|
+
export default defineConfig({
|
|
13
|
+
routes: './src/endpoints/**/*.ts',
|
|
14
|
+
envParser: './src/config/env',
|
|
15
|
+
logger: './src/config/logger',`;
|
|
16
|
+
if (isServerless || hasWorker) gkmConfig += `
|
|
17
|
+
functions: './src/functions/**/*.ts',`;
|
|
18
|
+
if (hasWorker) gkmConfig += `
|
|
19
|
+
crons: './src/crons/**/*.ts',
|
|
20
|
+
subscribers: './src/subscribers/**/*.ts',`;
|
|
21
|
+
if (telescope) gkmConfig += `
|
|
22
|
+
telescope: {
|
|
23
|
+
enabled: true,
|
|
24
|
+
path: '/__telescope',
|
|
25
|
+
},`;
|
|
26
|
+
gkmConfig += `
|
|
27
|
+
});
|
|
28
|
+
`;
|
|
29
|
+
const tsConfig = options.monorepo ? {
|
|
30
|
+
extends: "../../tsconfig.json",
|
|
31
|
+
compilerOptions: {
|
|
32
|
+
outDir: "./dist",
|
|
33
|
+
rootDir: "./src",
|
|
34
|
+
baseUrl: ".",
|
|
35
|
+
paths: { [`@${options.name}/*`]: ["../../packages/*/src"] }
|
|
36
|
+
},
|
|
37
|
+
include: ["src/**/*.ts"],
|
|
38
|
+
exclude: ["node_modules", "dist"]
|
|
39
|
+
} : {
|
|
40
|
+
compilerOptions: {
|
|
41
|
+
target: "ES2022",
|
|
42
|
+
module: "NodeNext",
|
|
43
|
+
moduleResolution: "NodeNext",
|
|
44
|
+
lib: ["ES2022"],
|
|
45
|
+
strict: true,
|
|
46
|
+
esModuleInterop: true,
|
|
47
|
+
skipLibCheck: true,
|
|
48
|
+
forceConsistentCasingInFileNames: true,
|
|
49
|
+
resolveJsonModule: true,
|
|
50
|
+
declaration: true,
|
|
51
|
+
declarationMap: true,
|
|
52
|
+
outDir: "./dist",
|
|
53
|
+
rootDir: "./src"
|
|
54
|
+
},
|
|
55
|
+
include: ["src/**/*.ts"],
|
|
56
|
+
exclude: ["node_modules", "dist"]
|
|
57
|
+
};
|
|
58
|
+
if (options.monorepo) return [{
|
|
59
|
+
path: "gkm.config.ts",
|
|
60
|
+
content: gkmConfig
|
|
61
|
+
}, {
|
|
62
|
+
path: "tsconfig.json",
|
|
63
|
+
content: JSON.stringify(tsConfig, null, 2) + "\n"
|
|
64
|
+
}];
|
|
65
|
+
const biomeConfig = {
|
|
66
|
+
$schema: "https://biomejs.dev/schemas/1.9.4/schema.json",
|
|
67
|
+
vcs: {
|
|
68
|
+
enabled: true,
|
|
69
|
+
clientKind: "git",
|
|
70
|
+
useIgnoreFile: true
|
|
71
|
+
},
|
|
72
|
+
organizeImports: { enabled: true },
|
|
73
|
+
formatter: {
|
|
74
|
+
enabled: true,
|
|
75
|
+
indentStyle: "space",
|
|
76
|
+
indentWidth: 2,
|
|
77
|
+
lineWidth: 80
|
|
78
|
+
},
|
|
79
|
+
javascript: { formatter: {
|
|
80
|
+
quoteStyle: "single",
|
|
81
|
+
trailingCommas: "all",
|
|
82
|
+
semicolons: "always",
|
|
83
|
+
arrowParentheses: "always"
|
|
84
|
+
} },
|
|
85
|
+
linter: {
|
|
86
|
+
enabled: true,
|
|
87
|
+
rules: {
|
|
88
|
+
recommended: true,
|
|
89
|
+
correctness: {
|
|
90
|
+
noUnusedImports: "error",
|
|
91
|
+
noUnusedVariables: "error"
|
|
92
|
+
},
|
|
93
|
+
style: { noNonNullAssertion: "off" }
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
files: { ignore: [
|
|
97
|
+
"node_modules",
|
|
98
|
+
"dist",
|
|
99
|
+
".gkm",
|
|
100
|
+
"coverage"
|
|
101
|
+
] }
|
|
102
|
+
};
|
|
103
|
+
const turboConfig = {
|
|
104
|
+
$schema: "https://turbo.build/schema.json",
|
|
105
|
+
tasks: {
|
|
106
|
+
build: {
|
|
107
|
+
dependsOn: ["^build"],
|
|
108
|
+
outputs: ["dist/**"]
|
|
109
|
+
},
|
|
110
|
+
dev: {
|
|
111
|
+
cache: false,
|
|
112
|
+
persistent: true
|
|
113
|
+
},
|
|
114
|
+
test: {
|
|
115
|
+
dependsOn: ["^build"],
|
|
116
|
+
cache: false
|
|
117
|
+
},
|
|
118
|
+
"test:once": {
|
|
119
|
+
dependsOn: ["^build"],
|
|
120
|
+
outputs: ["coverage/**"]
|
|
121
|
+
},
|
|
122
|
+
typecheck: {
|
|
123
|
+
dependsOn: ["^build"],
|
|
124
|
+
outputs: []
|
|
125
|
+
},
|
|
126
|
+
lint: { outputs: [] },
|
|
127
|
+
fmt: { outputs: [] }
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
return [
|
|
131
|
+
{
|
|
132
|
+
path: "gkm.config.ts",
|
|
133
|
+
content: gkmConfig
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
path: "tsconfig.json",
|
|
137
|
+
content: JSON.stringify(tsConfig, null, 2) + "\n"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
path: "biome.json",
|
|
141
|
+
content: JSON.stringify(biomeConfig, null, 2) + "\n"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
path: "turbo.json",
|
|
145
|
+
content: JSON.stringify(turboConfig, null, 2) + "\n"
|
|
146
|
+
}
|
|
147
|
+
];
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
//#endregion
|
|
151
|
+
Object.defineProperty(exports, 'generateConfigFiles', {
|
|
152
|
+
enumerable: true,
|
|
153
|
+
get: function () {
|
|
154
|
+
return generateConfigFiles;
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
//# sourceMappingURL=config-CLEDqKO3.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-CLEDqKO3.cjs","names":["options: TemplateOptions","template: TemplateConfig"],"sources":["../src/init/generators/config.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from '../templates/index.js';\n\n/**\n * Generate configuration files (gkm.config.ts, tsconfig.json, biome.json, turbo.json)\n */\nexport function generateConfigFiles(\n options: TemplateOptions,\n template: TemplateConfig,\n): GeneratedFile[] {\n const { telescope } = options;\n const isServerless = template.name === 'serverless';\n const hasWorker = template.name === 'worker';\n\n // Build gkm.config.ts\n let gkmConfig = `import { defineConfig } from '@geekmidas/cli';\n\nexport default defineConfig({\n routes: './src/endpoints/**/*.ts',\n envParser: './src/config/env',\n logger: './src/config/logger',`;\n\n if (isServerless || hasWorker) {\n gkmConfig += `\n functions: './src/functions/**/*.ts',`;\n }\n\n if (hasWorker) {\n gkmConfig += `\n crons: './src/crons/**/*.ts',\n subscribers: './src/subscribers/**/*.ts',`;\n }\n\n if (telescope) {\n gkmConfig += `\n telescope: {\n enabled: true,\n path: '/__telescope',\n },`;\n }\n\n gkmConfig += `\n});\n`;\n\n // Build tsconfig.json - extends root for monorepo, standalone for non-monorepo\n const tsConfig = options.monorepo\n ? {\n extends: '../../tsconfig.json',\n compilerOptions: {\n outDir: './dist',\n rootDir: './src',\n baseUrl: '.',\n paths: {\n [`@${options.name}/*`]: ['../../packages/*/src'],\n },\n },\n include: ['src/**/*.ts'],\n exclude: ['node_modules', 'dist'],\n }\n : {\n compilerOptions: {\n target: 'ES2022',\n module: 'NodeNext',\n moduleResolution: 'NodeNext',\n lib: ['ES2022'],\n strict: true,\n esModuleInterop: true,\n skipLibCheck: true,\n forceConsistentCasingInFileNames: true,\n resolveJsonModule: true,\n declaration: true,\n declarationMap: true,\n outDir: './dist',\n rootDir: './src',\n },\n include: ['src/**/*.ts'],\n exclude: ['node_modules', 'dist'],\n };\n\n // Skip biome.json and turbo.json for monorepo (they're at root)\n if (options.monorepo) {\n return [\n {\n path: 'gkm.config.ts',\n content: gkmConfig,\n },\n {\n path: 'tsconfig.json',\n content: JSON.stringify(tsConfig, null, 2) + '\\n',\n },\n ];\n }\n\n // Build biome.json\n const biomeConfig = {\n $schema: 'https://biomejs.dev/schemas/1.9.4/schema.json',\n vcs: {\n enabled: true,\n clientKind: 'git',\n useIgnoreFile: true,\n },\n organizeImports: {\n enabled: true,\n },\n formatter: {\n enabled: true,\n indentStyle: 'space',\n indentWidth: 2,\n lineWidth: 80,\n },\n javascript: {\n formatter: {\n quoteStyle: 'single',\n trailingCommas: 'all',\n semicolons: 'always',\n arrowParentheses: 'always',\n },\n },\n linter: {\n enabled: true,\n rules: {\n recommended: true,\n correctness: {\n noUnusedImports: 'error',\n noUnusedVariables: 'error',\n },\n style: {\n noNonNullAssertion: 'off',\n },\n },\n },\n files: {\n ignore: ['node_modules', 'dist', '.gkm', 'coverage'],\n },\n };\n\n // Build turbo.json\n const turboConfig = {\n $schema: 'https://turbo.build/schema.json',\n tasks: {\n build: {\n dependsOn: ['^build'],\n outputs: ['dist/**'],\n },\n dev: {\n cache: false,\n persistent: true,\n },\n test: {\n dependsOn: ['^build'],\n cache: false,\n },\n 'test:once': {\n dependsOn: ['^build'],\n outputs: ['coverage/**'],\n },\n typecheck: {\n dependsOn: ['^build'],\n outputs: [],\n },\n lint: {\n outputs: [],\n },\n fmt: {\n outputs: [],\n },\n },\n };\n\n return [\n {\n path: 'gkm.config.ts',\n content: gkmConfig,\n },\n {\n path: 'tsconfig.json',\n content: JSON.stringify(tsConfig, null, 2) + '\\n',\n },\n {\n path: 'biome.json',\n content: JSON.stringify(biomeConfig, null, 2) + '\\n',\n },\n {\n path: 'turbo.json',\n content: JSON.stringify(turboConfig, null, 2) + '\\n',\n },\n ];\n}\n"],"mappings":";;;;;AASA,SAAgB,oBACdA,SACAC,UACiB;CACjB,MAAM,EAAE,WAAW,GAAG;CACtB,MAAM,eAAe,SAAS,SAAS;CACvC,MAAM,YAAY,SAAS,SAAS;CAGpC,IAAI,aAAa;;;;;;AAOjB,KAAI,gBAAgB,UAClB,eAAc;;AAIhB,KAAI,UACF,eAAc;;;AAKhB,KAAI,UACF,eAAc;;;;;AAOhB,eAAc;;;CAKd,MAAM,WAAW,QAAQ,WACrB;EACE,SAAS;EACT,iBAAiB;GACf,QAAQ;GACR,SAAS;GACT,SAAS;GACT,OAAO,IACH,GAAG,QAAQ,KAAK,MAAM,CAAC,sBAAuB,EACjD;EACF;EACD,SAAS,CAAC,aAAc;EACxB,SAAS,CAAC,gBAAgB,MAAO;CAClC,IACD;EACE,iBAAiB;GACf,QAAQ;GACR,QAAQ;GACR,kBAAkB;GAClB,KAAK,CAAC,QAAS;GACf,QAAQ;GACR,iBAAiB;GACjB,cAAc;GACd,kCAAkC;GAClC,mBAAmB;GACnB,aAAa;GACb,gBAAgB;GAChB,QAAQ;GACR,SAAS;EACV;EACD,SAAS,CAAC,aAAc;EACxB,SAAS,CAAC,gBAAgB,MAAO;CAClC;AAGL,KAAI,QAAQ,SACV,QAAO,CACL;EACE,MAAM;EACN,SAAS;CACV,GACD;EACE,MAAM;EACN,SAAS,KAAK,UAAU,UAAU,MAAM,EAAE,GAAG;CAC9C,CACF;CAIH,MAAM,cAAc;EAClB,SAAS;EACT,KAAK;GACH,SAAS;GACT,YAAY;GACZ,eAAe;EAChB;EACD,iBAAiB,EACf,SAAS,KACV;EACD,WAAW;GACT,SAAS;GACT,aAAa;GACb,aAAa;GACb,WAAW;EACZ;EACD,YAAY,EACV,WAAW;GACT,YAAY;GACZ,gBAAgB;GAChB,YAAY;GACZ,kBAAkB;EACnB,EACF;EACD,QAAQ;GACN,SAAS;GACT,OAAO;IACL,aAAa;IACb,aAAa;KACX,iBAAiB;KACjB,mBAAmB;IACpB;IACD,OAAO,EACL,oBAAoB,MACrB;GACF;EACF;EACD,OAAO,EACL,QAAQ;GAAC;GAAgB;GAAQ;GAAQ;EAAW,EACrD;CACF;CAGD,MAAM,cAAc;EAClB,SAAS;EACT,OAAO;GACL,OAAO;IACL,WAAW,CAAC,QAAS;IACrB,SAAS,CAAC,SAAU;GACrB;GACD,KAAK;IACH,OAAO;IACP,YAAY;GACb;GACD,MAAM;IACJ,WAAW,CAAC,QAAS;IACrB,OAAO;GACR;GACD,aAAa;IACX,WAAW,CAAC,QAAS;IACrB,SAAS,CAAC,aAAc;GACzB;GACD,WAAW;IACT,WAAW,CAAC,QAAS;IACrB,SAAS,CAAE;GACZ;GACD,MAAM,EACJ,SAAS,CAAE,EACZ;GACD,KAAK,EACH,SAAS,CAAE,EACZ;EACF;CACF;AAED,QAAO;EACL;GACE,MAAM;GACN,SAAS;EACV;EACD;GACE,MAAM;GACN,SAAS,KAAK,UAAU,UAAU,MAAM,EAAE,GAAG;EAC9C;EACD;GACE,MAAM;GACN,SAAS,KAAK,UAAU,aAAa,MAAM,EAAE,GAAG;EACjD;EACD;GACE,MAAM;GACN,SAAS,KAAK,UAAU,aAAa,MAAM,EAAE,GAAG;EACjD;CACF;AACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-C523No_B.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/init/generators/config.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Generate configuration files (gkm.config.ts, tsconfig.json, biome.json, turbo.json)
|
|
7
|
+
*/
|
|
8
|
+
declare function generateConfigFiles(options: TemplateOptions, template: TemplateConfig): GeneratedFile[];
|
|
9
|
+
//#endregion
|
|
10
|
+
export { generateConfigFiles };
|
|
11
|
+
//# sourceMappingURL=config-DBsmMDhf.d.mts.map
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
//#region src/init/generators/config.ts
|
|
2
|
+
/**
|
|
3
|
+
* Generate configuration files (gkm.config.ts, tsconfig.json, biome.json, turbo.json)
|
|
4
|
+
*/
|
|
5
|
+
function generateConfigFiles(options, template) {
|
|
6
|
+
const { telescope } = options;
|
|
7
|
+
const isServerless = template.name === "serverless";
|
|
8
|
+
const hasWorker = template.name === "worker";
|
|
9
|
+
let gkmConfig = `import { defineConfig } from '@geekmidas/cli';
|
|
10
|
+
|
|
11
|
+
export default defineConfig({
|
|
12
|
+
routes: './src/endpoints/**/*.ts',
|
|
13
|
+
envParser: './src/config/env',
|
|
14
|
+
logger: './src/config/logger',`;
|
|
15
|
+
if (isServerless || hasWorker) gkmConfig += `
|
|
16
|
+
functions: './src/functions/**/*.ts',`;
|
|
17
|
+
if (hasWorker) gkmConfig += `
|
|
18
|
+
crons: './src/crons/**/*.ts',
|
|
19
|
+
subscribers: './src/subscribers/**/*.ts',`;
|
|
20
|
+
if (telescope) gkmConfig += `
|
|
21
|
+
telescope: {
|
|
22
|
+
enabled: true,
|
|
23
|
+
path: '/__telescope',
|
|
24
|
+
},`;
|
|
25
|
+
gkmConfig += `
|
|
26
|
+
});
|
|
27
|
+
`;
|
|
28
|
+
const tsConfig = options.monorepo ? {
|
|
29
|
+
extends: "../../tsconfig.json",
|
|
30
|
+
compilerOptions: {
|
|
31
|
+
outDir: "./dist",
|
|
32
|
+
rootDir: "./src",
|
|
33
|
+
baseUrl: ".",
|
|
34
|
+
paths: { [`@${options.name}/*`]: ["../../packages/*/src"] }
|
|
35
|
+
},
|
|
36
|
+
include: ["src/**/*.ts"],
|
|
37
|
+
exclude: ["node_modules", "dist"]
|
|
38
|
+
} : {
|
|
39
|
+
compilerOptions: {
|
|
40
|
+
target: "ES2022",
|
|
41
|
+
module: "NodeNext",
|
|
42
|
+
moduleResolution: "NodeNext",
|
|
43
|
+
lib: ["ES2022"],
|
|
44
|
+
strict: true,
|
|
45
|
+
esModuleInterop: true,
|
|
46
|
+
skipLibCheck: true,
|
|
47
|
+
forceConsistentCasingInFileNames: true,
|
|
48
|
+
resolveJsonModule: true,
|
|
49
|
+
declaration: true,
|
|
50
|
+
declarationMap: true,
|
|
51
|
+
outDir: "./dist",
|
|
52
|
+
rootDir: "./src"
|
|
53
|
+
},
|
|
54
|
+
include: ["src/**/*.ts"],
|
|
55
|
+
exclude: ["node_modules", "dist"]
|
|
56
|
+
};
|
|
57
|
+
if (options.monorepo) return [{
|
|
58
|
+
path: "gkm.config.ts",
|
|
59
|
+
content: gkmConfig
|
|
60
|
+
}, {
|
|
61
|
+
path: "tsconfig.json",
|
|
62
|
+
content: JSON.stringify(tsConfig, null, 2) + "\n"
|
|
63
|
+
}];
|
|
64
|
+
const biomeConfig = {
|
|
65
|
+
$schema: "https://biomejs.dev/schemas/1.9.4/schema.json",
|
|
66
|
+
vcs: {
|
|
67
|
+
enabled: true,
|
|
68
|
+
clientKind: "git",
|
|
69
|
+
useIgnoreFile: true
|
|
70
|
+
},
|
|
71
|
+
organizeImports: { enabled: true },
|
|
72
|
+
formatter: {
|
|
73
|
+
enabled: true,
|
|
74
|
+
indentStyle: "space",
|
|
75
|
+
indentWidth: 2,
|
|
76
|
+
lineWidth: 80
|
|
77
|
+
},
|
|
78
|
+
javascript: { formatter: {
|
|
79
|
+
quoteStyle: "single",
|
|
80
|
+
trailingCommas: "all",
|
|
81
|
+
semicolons: "always",
|
|
82
|
+
arrowParentheses: "always"
|
|
83
|
+
} },
|
|
84
|
+
linter: {
|
|
85
|
+
enabled: true,
|
|
86
|
+
rules: {
|
|
87
|
+
recommended: true,
|
|
88
|
+
correctness: {
|
|
89
|
+
noUnusedImports: "error",
|
|
90
|
+
noUnusedVariables: "error"
|
|
91
|
+
},
|
|
92
|
+
style: { noNonNullAssertion: "off" }
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
files: { ignore: [
|
|
96
|
+
"node_modules",
|
|
97
|
+
"dist",
|
|
98
|
+
".gkm",
|
|
99
|
+
"coverage"
|
|
100
|
+
] }
|
|
101
|
+
};
|
|
102
|
+
const turboConfig = {
|
|
103
|
+
$schema: "https://turbo.build/schema.json",
|
|
104
|
+
tasks: {
|
|
105
|
+
build: {
|
|
106
|
+
dependsOn: ["^build"],
|
|
107
|
+
outputs: ["dist/**"]
|
|
108
|
+
},
|
|
109
|
+
dev: {
|
|
110
|
+
cache: false,
|
|
111
|
+
persistent: true
|
|
112
|
+
},
|
|
113
|
+
test: {
|
|
114
|
+
dependsOn: ["^build"],
|
|
115
|
+
cache: false
|
|
116
|
+
},
|
|
117
|
+
"test:once": {
|
|
118
|
+
dependsOn: ["^build"],
|
|
119
|
+
outputs: ["coverage/**"]
|
|
120
|
+
},
|
|
121
|
+
typecheck: {
|
|
122
|
+
dependsOn: ["^build"],
|
|
123
|
+
outputs: []
|
|
124
|
+
},
|
|
125
|
+
lint: { outputs: [] },
|
|
126
|
+
fmt: { outputs: [] }
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
return [
|
|
130
|
+
{
|
|
131
|
+
path: "gkm.config.ts",
|
|
132
|
+
content: gkmConfig
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
path: "tsconfig.json",
|
|
136
|
+
content: JSON.stringify(tsConfig, null, 2) + "\n"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
path: "biome.json",
|
|
140
|
+
content: JSON.stringify(biomeConfig, null, 2) + "\n"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
path: "turbo.json",
|
|
144
|
+
content: JSON.stringify(turboConfig, null, 2) + "\n"
|
|
145
|
+
}
|
|
146
|
+
];
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
//#endregion
|
|
150
|
+
export { generateConfigFiles };
|
|
151
|
+
//# sourceMappingURL=config-Dp8RonV_.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-Dp8RonV_.mjs","names":["options: TemplateOptions","template: TemplateConfig"],"sources":["../src/init/generators/config.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from '../templates/index.js';\n\n/**\n * Generate configuration files (gkm.config.ts, tsconfig.json, biome.json, turbo.json)\n */\nexport function generateConfigFiles(\n options: TemplateOptions,\n template: TemplateConfig,\n): GeneratedFile[] {\n const { telescope } = options;\n const isServerless = template.name === 'serverless';\n const hasWorker = template.name === 'worker';\n\n // Build gkm.config.ts\n let gkmConfig = `import { defineConfig } from '@geekmidas/cli';\n\nexport default defineConfig({\n routes: './src/endpoints/**/*.ts',\n envParser: './src/config/env',\n logger: './src/config/logger',`;\n\n if (isServerless || hasWorker) {\n gkmConfig += `\n functions: './src/functions/**/*.ts',`;\n }\n\n if (hasWorker) {\n gkmConfig += `\n crons: './src/crons/**/*.ts',\n subscribers: './src/subscribers/**/*.ts',`;\n }\n\n if (telescope) {\n gkmConfig += `\n telescope: {\n enabled: true,\n path: '/__telescope',\n },`;\n }\n\n gkmConfig += `\n});\n`;\n\n // Build tsconfig.json - extends root for monorepo, standalone for non-monorepo\n const tsConfig = options.monorepo\n ? {\n extends: '../../tsconfig.json',\n compilerOptions: {\n outDir: './dist',\n rootDir: './src',\n baseUrl: '.',\n paths: {\n [`@${options.name}/*`]: ['../../packages/*/src'],\n },\n },\n include: ['src/**/*.ts'],\n exclude: ['node_modules', 'dist'],\n }\n : {\n compilerOptions: {\n target: 'ES2022',\n module: 'NodeNext',\n moduleResolution: 'NodeNext',\n lib: ['ES2022'],\n strict: true,\n esModuleInterop: true,\n skipLibCheck: true,\n forceConsistentCasingInFileNames: true,\n resolveJsonModule: true,\n declaration: true,\n declarationMap: true,\n outDir: './dist',\n rootDir: './src',\n },\n include: ['src/**/*.ts'],\n exclude: ['node_modules', 'dist'],\n };\n\n // Skip biome.json and turbo.json for monorepo (they're at root)\n if (options.monorepo) {\n return [\n {\n path: 'gkm.config.ts',\n content: gkmConfig,\n },\n {\n path: 'tsconfig.json',\n content: JSON.stringify(tsConfig, null, 2) + '\\n',\n },\n ];\n }\n\n // Build biome.json\n const biomeConfig = {\n $schema: 'https://biomejs.dev/schemas/1.9.4/schema.json',\n vcs: {\n enabled: true,\n clientKind: 'git',\n useIgnoreFile: true,\n },\n organizeImports: {\n enabled: true,\n },\n formatter: {\n enabled: true,\n indentStyle: 'space',\n indentWidth: 2,\n lineWidth: 80,\n },\n javascript: {\n formatter: {\n quoteStyle: 'single',\n trailingCommas: 'all',\n semicolons: 'always',\n arrowParentheses: 'always',\n },\n },\n linter: {\n enabled: true,\n rules: {\n recommended: true,\n correctness: {\n noUnusedImports: 'error',\n noUnusedVariables: 'error',\n },\n style: {\n noNonNullAssertion: 'off',\n },\n },\n },\n files: {\n ignore: ['node_modules', 'dist', '.gkm', 'coverage'],\n },\n };\n\n // Build turbo.json\n const turboConfig = {\n $schema: 'https://turbo.build/schema.json',\n tasks: {\n build: {\n dependsOn: ['^build'],\n outputs: ['dist/**'],\n },\n dev: {\n cache: false,\n persistent: true,\n },\n test: {\n dependsOn: ['^build'],\n cache: false,\n },\n 'test:once': {\n dependsOn: ['^build'],\n outputs: ['coverage/**'],\n },\n typecheck: {\n dependsOn: ['^build'],\n outputs: [],\n },\n lint: {\n outputs: [],\n },\n fmt: {\n outputs: [],\n },\n },\n };\n\n return [\n {\n path: 'gkm.config.ts',\n content: gkmConfig,\n },\n {\n path: 'tsconfig.json',\n content: JSON.stringify(tsConfig, null, 2) + '\\n',\n },\n {\n path: 'biome.json',\n content: JSON.stringify(biomeConfig, null, 2) + '\\n',\n },\n {\n path: 'turbo.json',\n content: JSON.stringify(turboConfig, null, 2) + '\\n',\n },\n ];\n}\n"],"mappings":";;;;AASA,SAAgB,oBACdA,SACAC,UACiB;CACjB,MAAM,EAAE,WAAW,GAAG;CACtB,MAAM,eAAe,SAAS,SAAS;CACvC,MAAM,YAAY,SAAS,SAAS;CAGpC,IAAI,aAAa;;;;;;AAOjB,KAAI,gBAAgB,UAClB,eAAc;;AAIhB,KAAI,UACF,eAAc;;;AAKhB,KAAI,UACF,eAAc;;;;;AAOhB,eAAc;;;CAKd,MAAM,WAAW,QAAQ,WACrB;EACE,SAAS;EACT,iBAAiB;GACf,QAAQ;GACR,SAAS;GACT,SAAS;GACT,OAAO,IACH,GAAG,QAAQ,KAAK,MAAM,CAAC,sBAAuB,EACjD;EACF;EACD,SAAS,CAAC,aAAc;EACxB,SAAS,CAAC,gBAAgB,MAAO;CAClC,IACD;EACE,iBAAiB;GACf,QAAQ;GACR,QAAQ;GACR,kBAAkB;GAClB,KAAK,CAAC,QAAS;GACf,QAAQ;GACR,iBAAiB;GACjB,cAAc;GACd,kCAAkC;GAClC,mBAAmB;GACnB,aAAa;GACb,gBAAgB;GAChB,QAAQ;GACR,SAAS;EACV;EACD,SAAS,CAAC,aAAc;EACxB,SAAS,CAAC,gBAAgB,MAAO;CAClC;AAGL,KAAI,QAAQ,SACV,QAAO,CACL;EACE,MAAM;EACN,SAAS;CACV,GACD;EACE,MAAM;EACN,SAAS,KAAK,UAAU,UAAU,MAAM,EAAE,GAAG;CAC9C,CACF;CAIH,MAAM,cAAc;EAClB,SAAS;EACT,KAAK;GACH,SAAS;GACT,YAAY;GACZ,eAAe;EAChB;EACD,iBAAiB,EACf,SAAS,KACV;EACD,WAAW;GACT,SAAS;GACT,aAAa;GACb,aAAa;GACb,WAAW;EACZ;EACD,YAAY,EACV,WAAW;GACT,YAAY;GACZ,gBAAgB;GAChB,YAAY;GACZ,kBAAkB;EACnB,EACF;EACD,QAAQ;GACN,SAAS;GACT,OAAO;IACL,aAAa;IACb,aAAa;KACX,iBAAiB;KACjB,mBAAmB;IACpB;IACD,OAAO,EACL,oBAAoB,MACrB;GACF;EACF;EACD,OAAO,EACL,QAAQ;GAAC;GAAgB;GAAQ;GAAQ;EAAW,EACrD;CACF;CAGD,MAAM,cAAc;EAClB,SAAS;EACT,OAAO;GACL,OAAO;IACL,WAAW,CAAC,QAAS;IACrB,SAAS,CAAC,SAAU;GACrB;GACD,KAAK;IACH,OAAO;IACP,YAAY;GACb;GACD,MAAM;IACJ,WAAW,CAAC,QAAS;IACrB,OAAO;GACR;GACD,aAAa;IACX,WAAW,CAAC,QAAS;IACrB,SAAS,CAAC,aAAc;GACzB;GACD,WAAW;IACT,WAAW,CAAC,QAAS;IACrB,SAAS,CAAE;GACZ;GACD,MAAM,EACJ,SAAS,CAAE,EACZ;GACD,KAAK,EACH,SAAS,CAAE,EACZ;EACF;CACF;AAED,QAAO;EACL;GACE,MAAM;GACN,SAAS;EACV;EACD;GACE,MAAM;GACN,SAAS,KAAK,UAAU,UAAU,MAAM,EAAE,GAAG;EAC9C;EACD;GACE,MAAM;GACN,SAAS,KAAK,UAAU,aAAa,MAAM,EAAE,GAAG;EACjD;EACD;GACE,MAAM;GACN,SAAS,KAAK,UAAU,aAAa,MAAM,EAAE,GAAG;EACjD;CACF;AACF"}
|