@geekmidas/cli 0.5.1 → 0.6.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/README.md +7 -7
- package/dist/{CronGenerator-BPTqNYOR.d.cts → CronGenerator-DWS3CCZt.d.cts} +4 -4
- package/dist/{CronGenerator-YAj59JUd.d.mts → CronGenerator-DZjdkEjI.d.mts} +4 -4
- package/dist/{EndpointGenerator-ChAD1INz.d.cts → EndpointGenerator-Dh7kMtuL.d.mts} +4 -4
- package/dist/{EndpointGenerator-Cj3O1U8-.d.mts → EndpointGenerator-zBsie_7s.d.cts} +4 -4
- package/dist/{FunctionGenerator-429-9NER.d.cts → FunctionGenerator-BmDHo27U.d.mts} +4 -4
- package/dist/{FunctionGenerator-BQ4ehoID.d.mts → FunctionGenerator-DXjXBxUd.d.cts} +4 -4
- package/dist/{Generator-BjHK_qce.d.mts → Generator-BGY-2dgI.d.cts} +3 -3
- package/dist/{Generator-DxQMCQp7.d.cts → Generator-yi9DH5TN.d.mts} +3 -3
- package/dist/{OpenApiTsGenerator-C4mHHaku.mjs → OpenApiTsGenerator-BVS4pOH7.mjs} +2 -2
- package/dist/{OpenApiTsGenerator-C4mHHaku.mjs.map → OpenApiTsGenerator-BVS4pOH7.mjs.map} +1 -1
- package/dist/{OpenApiTsGenerator-Be-sKGTT.cjs → OpenApiTsGenerator-gPIIyppX.cjs} +2 -2
- package/dist/{OpenApiTsGenerator-Be-sKGTT.cjs.map → OpenApiTsGenerator-gPIIyppX.cjs.map} +1 -1
- package/dist/{SubscriberGenerator-7uX42xyG.d.mts → SubscriberGenerator-Bb-z3Kvx.d.cts} +4 -4
- package/dist/{SubscriberGenerator-Dtb3HS4i.d.cts → SubscriberGenerator-CwsXqCpS.d.mts} +4 -4
- package/dist/{api-BKIN0s0S.mjs → api-Bp5TIl1R.mjs} +29 -46
- package/dist/api-Bp5TIl1R.mjs.map +1 -0
- package/dist/{api-B3SCEHPf.cjs → api-D4W9-tdZ.cjs} +29 -46
- package/dist/api-D4W9-tdZ.cjs.map +1 -0
- package/dist/build/index.cjs +5 -3
- package/dist/build/index.d.cts +1 -1
- package/dist/build/index.d.mts +1 -1
- package/dist/build/index.mjs +5 -3
- package/dist/build/manifests.cjs +1 -1
- package/dist/build/manifests.d.cts +1 -1
- package/dist/build/manifests.d.mts +1 -1
- package/dist/build/manifests.mjs +1 -1
- package/dist/build/providerResolver.d.cts +1 -1
- package/dist/build/providerResolver.d.mts +1 -1
- package/dist/build/types.d.cts +2 -2
- package/dist/build/types.d.mts +2 -2
- package/dist/{build-B8C_qHir.mjs → build-Cu6Mi0Lf.mjs} +3 -3
- package/dist/{build-B8C_qHir.mjs.map → build-Cu6Mi0Lf.mjs.map} +1 -1
- package/dist/{build-D0Wr49bf.cjs → build-wmt8ZcmA.cjs} +3 -3
- package/dist/{build-D0Wr49bf.cjs.map → build-wmt8ZcmA.cjs.map} +1 -1
- package/dist/{config-CLEDqKO3.cjs → config-BP1IZynR.cjs} +17 -6
- package/dist/config-BP1IZynR.cjs.map +1 -0
- package/dist/{config-Ba-Gbpbc.d.cts → config-CIzRhm_D.d.mts} +2 -2
- package/dist/{config-DBsmMDhf.d.mts → config-CvehIYsb.d.cts} +2 -2
- package/dist/{config-Dp8RonV_.mjs → config-UCK12Lrr.mjs} +17 -6
- package/dist/config-UCK12Lrr.mjs.map +1 -0
- package/dist/config.d.cts +1 -1
- package/dist/config.d.mts +1 -1
- package/dist/dev/index.cjs +3 -1
- package/dist/dev/index.d.cts +2 -2
- package/dist/dev/index.d.mts +2 -2
- package/dist/dev/index.mjs +3 -1
- package/dist/{dev-B734w3L1.mjs → dev-BBPWSllq.mjs} +6 -1
- package/dist/dev-BBPWSllq.mjs.map +1 -0
- package/dist/{dev-DHqYn8k4.cjs → dev-C2lCgE53.cjs} +6 -1
- package/dist/dev-C2lCgE53.cjs.map +1 -0
- package/dist/{docker-5d8Yh5_X.cjs → docker-2-ipZDOJ.cjs} +1 -1
- package/dist/{docker-5d8Yh5_X.cjs.map → docker-2-ipZDOJ.cjs.map} +1 -1
- package/dist/{docker-DlUqdFle.mjs → docker-31GNwU3F.mjs} +1 -1
- package/dist/{docker-DlUqdFle.mjs.map → docker-31GNwU3F.mjs.map} +1 -1
- package/dist/{env-HfuJRlg5.d.cts → env-CQ3hXAAW.d.mts} +2 -2
- package/dist/{env-B-OKjgI4.cjs → env-CS0jvg7k.cjs} +1 -1
- package/dist/{env-B-OKjgI4.cjs.map → env-CS0jvg7k.cjs.map} +1 -1
- package/dist/{env-nd-iQPYM.d.mts → env-D4YFgMqo.d.cts} +2 -2
- package/dist/{env-tv1HlZlw.mjs → env-DEeVOvVu.mjs} +1 -1
- package/dist/{env-tv1HlZlw.mjs.map → env-DEeVOvVu.mjs.map} +1 -1
- package/dist/generators/CronGenerator.d.cts +4 -4
- package/dist/generators/CronGenerator.d.mts +4 -4
- package/dist/generators/EndpointGenerator.d.cts +4 -4
- package/dist/generators/EndpointGenerator.d.mts +4 -4
- package/dist/generators/FunctionGenerator.d.cts +4 -4
- package/dist/generators/FunctionGenerator.d.mts +4 -4
- package/dist/generators/Generator.d.cts +3 -3
- package/dist/generators/Generator.d.mts +3 -3
- package/dist/generators/OpenApiTsGenerator.cjs +1 -1
- package/dist/generators/OpenApiTsGenerator.mjs +1 -1
- package/dist/generators/SubscriberGenerator.d.cts +4 -4
- package/dist/generators/SubscriberGenerator.d.mts +4 -4
- package/dist/generators/index.d.cts +7 -7
- package/dist/generators/index.d.mts +7 -7
- package/dist/{index-C523No_B.d.mts → index-DG6xNQMH.d.cts} +25 -8
- package/dist/{index-DrzN4xkQ.d.cts → index-DZgrOOOW.d.mts} +25 -8
- package/dist/index.cjs +21 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +21 -21
- package/dist/index.mjs.map +1 -1
- package/dist/init/generators/config.cjs +1 -1
- package/dist/init/generators/config.d.cts +2 -2
- package/dist/init/generators/config.d.mts +2 -2
- package/dist/init/generators/config.mjs +1 -1
- package/dist/init/generators/docker.cjs +1 -1
- package/dist/init/generators/docker.d.cts +1 -1
- package/dist/init/generators/docker.d.mts +1 -1
- package/dist/init/generators/docker.mjs +1 -1
- package/dist/init/generators/env.cjs +1 -1
- package/dist/init/generators/env.d.cts +2 -2
- package/dist/init/generators/env.d.mts +2 -2
- package/dist/init/generators/env.mjs +1 -1
- package/dist/init/generators/index.cjs +9 -4
- package/dist/init/generators/index.d.cts +5 -5
- package/dist/init/generators/index.d.mts +5 -5
- package/dist/init/generators/index.mjs +9 -4
- package/dist/init/generators/models.cjs +1 -1
- package/dist/init/generators/models.d.cts +1 -1
- package/dist/init/generators/models.d.mts +1 -1
- package/dist/init/generators/models.mjs +1 -1
- package/dist/init/generators/monorepo.cjs +1 -1
- package/dist/init/generators/monorepo.d.cts +1 -1
- package/dist/init/generators/monorepo.d.mts +1 -1
- package/dist/init/generators/monorepo.mjs +1 -1
- package/dist/init/generators/package.cjs +6 -1
- package/dist/init/generators/package.d.cts +2 -2
- package/dist/init/generators/package.d.mts +2 -2
- package/dist/init/generators/package.mjs +6 -1
- package/dist/init/generators/source.cjs +1 -1
- package/dist/init/generators/source.d.cts +2 -2
- package/dist/init/generators/source.d.mts +2 -2
- package/dist/init/generators/source.mjs +1 -1
- package/dist/init/index.cjs +14 -14
- package/dist/init/index.d.cts +1 -1
- package/dist/init/index.d.mts +1 -1
- package/dist/init/index.mjs +14 -14
- package/dist/init/templates/api.cjs +1 -1
- package/dist/init/templates/api.d.cts +1 -1
- package/dist/init/templates/api.d.mts +1 -1
- package/dist/init/templates/api.mjs +1 -1
- package/dist/init/templates/index.cjs +8 -6
- package/dist/init/templates/index.d.cts +2 -2
- package/dist/init/templates/index.d.mts +2 -2
- package/dist/init/templates/index.mjs +6 -6
- package/dist/init/templates/minimal.cjs +1 -1
- package/dist/init/templates/minimal.d.cts +1 -1
- package/dist/init/templates/minimal.d.mts +1 -1
- package/dist/init/templates/minimal.mjs +1 -1
- package/dist/init/templates/serverless.cjs +1 -1
- package/dist/init/templates/serverless.d.cts +1 -1
- package/dist/init/templates/serverless.d.mts +1 -1
- package/dist/init/templates/serverless.mjs +1 -1
- package/dist/init/templates/worker.cjs +1 -1
- package/dist/init/templates/worker.d.cts +1 -1
- package/dist/init/templates/worker.d.mts +1 -1
- package/dist/init/templates/worker.mjs +1 -1
- package/dist/init/utils.cjs +1 -1
- package/dist/init/utils.mjs +1 -1
- package/dist/{init-CtOnZn3G.mjs → init-BMA7xi8r.mjs} +37 -21
- package/dist/init-BMA7xi8r.mjs.map +1 -0
- package/dist/{init-qLFsWR-R.cjs → init-D-7WEk-b.cjs} +37 -21
- package/dist/init-D-7WEk-b.cjs.map +1 -0
- package/dist/{manifests-DIA_2QYd.mjs → manifests-BNKG6AXf.mjs} +1 -1
- package/dist/{manifests-DIA_2QYd.mjs.map → manifests-BNKG6AXf.mjs.map} +1 -1
- package/dist/{manifests-VJ9-2JpW.cjs → manifests-D13Ej8AE.cjs} +1 -1
- package/dist/{manifests-VJ9-2JpW.cjs.map → manifests-D13Ej8AE.cjs.map} +1 -1
- package/dist/{minimal-C4GsE45s.mjs → minimal-BkyASH_C.mjs} +15 -9
- package/dist/minimal-BkyASH_C.mjs.map +1 -0
- package/dist/{minimal-Bdhhpp7v.cjs → minimal-CSFggzdH.cjs} +15 -9
- package/dist/minimal-CSFggzdH.cjs.map +1 -0
- package/dist/{models-cvNg6Oea.mjs → models-BWlDfviw.mjs} +1 -1
- package/dist/{models-cvNg6Oea.mjs.map → models-BWlDfviw.mjs.map} +1 -1
- package/dist/{models-DyNwdOcz.cjs → models-BapGSoHC.cjs} +1 -1
- package/dist/{models-DyNwdOcz.cjs.map → models-BapGSoHC.cjs.map} +1 -1
- package/dist/{monorepo-Cknwzj5C.mjs → monorepo-BBOWhkcd.mjs} +1 -1
- package/dist/{monorepo-Cknwzj5C.mjs.map → monorepo-BBOWhkcd.mjs.map} +1 -1
- package/dist/{monorepo-sEK8gW59.cjs → monorepo-CFtxHeDh.cjs} +1 -1
- package/dist/{monorepo-sEK8gW59.cjs.map → monorepo-CFtxHeDh.cjs.map} +1 -1
- package/dist/openapi-DA9RkPJl.mjs +74 -0
- package/dist/openapi-DA9RkPJl.mjs.map +1 -0
- package/dist/openapi-DZH6RQHk.cjs +98 -0
- package/dist/openapi-DZH6RQHk.cjs.map +1 -0
- package/dist/{openapi-react-query-DxHjXQvg.cjs → openapi-react-query-Cp-w8_05.cjs} +1 -1
- package/dist/{openapi-react-query-DxHjXQvg.cjs.map → openapi-react-query-Cp-w8_05.cjs.map} +1 -1
- package/dist/{openapi-react-query-o7Mp1Jd5.mjs → openapi-react-query-_-B3s8v_.mjs} +1 -1
- package/dist/{openapi-react-query-o7Mp1Jd5.mjs.map → openapi-react-query-_-B3s8v_.mjs.map} +1 -1
- package/dist/openapi-react-query.cjs +1 -1
- package/dist/openapi-react-query.mjs +1 -1
- package/dist/openapi.cjs +6 -3
- package/dist/openapi.d.cts +23 -3
- package/dist/openapi.d.mts +23 -3
- package/dist/openapi.mjs +3 -3
- package/dist/{package-C7WhWU8m.d.mts → package-6h-7QfJZ.d.cts} +2 -2
- package/dist/{package-DvWEMz6z.d.cts → package-BCe_KvGv.d.mts} +2 -2
- package/dist/{package-CIfmeuSW.mjs → package-C3If80n1.mjs} +7 -1
- package/dist/package-C3If80n1.mjs.map +1 -0
- package/dist/{package-PP-o1nvq.cjs → package-Dk8IMBOB.cjs} +6 -1
- package/dist/package-Dk8IMBOB.cjs.map +1 -0
- package/dist/{serverless-Yav3GRVz.cjs → serverless-AGOS-l3G.cjs} +15 -10
- package/dist/serverless-AGOS-l3G.cjs.map +1 -0
- package/dist/{serverless-DkHBF2vC.mjs → serverless-D5HjJByU.mjs} +15 -10
- package/dist/serverless-D5HjJByU.mjs.map +1 -0
- package/dist/{source-DT5Xhiob.cjs → source-C1cyfHcF.cjs} +1 -1
- package/dist/{source-DT5Xhiob.cjs.map → source-C1cyfHcF.cjs.map} +1 -1
- package/dist/{source-D6v2BnKT.d.mts → source-C3LiNUV9.d.mts} +2 -2
- package/dist/{source-DnaH_MLA.mjs → source-CkQHBpwu.mjs} +1 -1
- package/dist/{source-DnaH_MLA.mjs.map → source-CkQHBpwu.mjs.map} +1 -1
- package/dist/{source-D8fK9qRo.d.cts → source-Dtcjbokc.d.cts} +2 -2
- package/dist/templates-C0EMmhwb.mjs +88 -0
- package/dist/templates-C0EMmhwb.mjs.map +1 -0
- package/dist/templates-CbgQ9dw0.cjs +123 -0
- package/dist/templates-CbgQ9dw0.cjs.map +1 -0
- package/dist/{types-Cxl8-uwV.d.mts → types-Bi7VzDUZ.d.mts} +31 -2
- package/dist/{types-C4KITv-y.d.mts → types-D2xYkOal.d.mts} +2 -2
- package/dist/{types-DLFN49M3.d.cts → types-DA-r8HWZ.d.cts} +2 -2
- package/dist/{types-DB99_qIy.d.cts → types-KmjzMgu8.d.cts} +31 -2
- package/dist/types.d.cts +2 -2
- package/dist/types.d.mts +2 -2
- package/dist/{utils-C31-SWHP.mjs → utils-CKEzCxc1.mjs} +1 -1
- package/dist/{utils-C31-SWHP.mjs.map → utils-CKEzCxc1.mjs.map} +1 -1
- package/dist/{utils-BX3F4fT8.cjs → utils-DSdN2MTt.cjs} +1 -1
- package/dist/{utils-BX3F4fT8.cjs.map → utils-DSdN2MTt.cjs.map} +1 -1
- package/dist/{worker--8O5a3Hv.cjs → worker-CGhlqNH-.cjs} +15 -9
- package/dist/worker-CGhlqNH-.cjs.map +1 -0
- package/dist/{worker-Jme7uOOJ.mjs → worker-CiP420As.mjs} +15 -9
- package/dist/worker-CiP420As.mjs.map +1 -0
- package/examples/gkm.config.ts +3 -5
- package/package.json +4 -4
- package/src/__tests__/openapi.spec.ts +395 -302
- package/src/dev/__tests__/index.spec.ts +6 -3
- package/src/dev/index.ts +18 -0
- package/src/generators/OpenApiTsGenerator.ts +1 -1
- package/src/init/generators/config.ts +23 -5
- package/src/init/generators/package.ts +11 -4
- package/src/init/index.ts +26 -7
- package/src/init/templates/api.ts +38 -56
- package/src/init/templates/index.ts +46 -11
- package/src/init/templates/minimal.ts +23 -10
- package/src/init/templates/serverless.ts +23 -11
- package/src/init/templates/worker.ts +23 -10
- package/src/openapi.ts +83 -45
- package/src/types.ts +30 -0
- package/dist/api-B3SCEHPf.cjs.map +0 -1
- package/dist/api-BKIN0s0S.mjs.map +0 -1
- package/dist/config-CLEDqKO3.cjs.map +0 -1
- package/dist/config-Dp8RonV_.mjs.map +0 -1
- package/dist/dev-B734w3L1.mjs.map +0 -1
- package/dist/dev-DHqYn8k4.cjs.map +0 -1
- package/dist/init-CtOnZn3G.mjs.map +0 -1
- package/dist/init-qLFsWR-R.cjs.map +0 -1
- package/dist/minimal-Bdhhpp7v.cjs.map +0 -1
- package/dist/minimal-C4GsE45s.mjs.map +0 -1
- package/dist/openapi-BQWPWyNB.cjs +0 -56
- package/dist/openapi-BQWPWyNB.cjs.map +0 -1
- package/dist/openapi-DBX8cJJ8.mjs +0 -50
- package/dist/openapi-DBX8cJJ8.mjs.map +0 -1
- package/dist/package-CIfmeuSW.mjs.map +0 -1
- package/dist/package-PP-o1nvq.cjs.map +0 -1
- package/dist/serverless-DkHBF2vC.mjs.map +0 -1
- package/dist/serverless-Yav3GRVz.cjs.map +0 -1
- package/dist/templates-CBFUwpBy.mjs +0 -64
- package/dist/templates-CBFUwpBy.mjs.map +0 -1
- package/dist/templates-DM_rtYYW.cjs +0 -87
- package/dist/templates-DM_rtYYW.cjs.map +0 -1
- package/dist/worker--8O5a3Hv.cjs.map +0 -1
- package/dist/worker-Jme7uOOJ.mjs.map +0 -1
package/dist/openapi.cjs
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
require('./config-CFls09Ey.cjs');
|
|
3
3
|
require('./Generator-CLVplqm2.cjs');
|
|
4
4
|
require('./EndpointGenerator-npWEDoK2.cjs');
|
|
5
|
-
require('./OpenApiTsGenerator-
|
|
6
|
-
const require_openapi = require('./openapi-
|
|
5
|
+
require('./OpenApiTsGenerator-gPIIyppX.cjs');
|
|
6
|
+
const require_openapi = require('./openapi-DZH6RQHk.cjs');
|
|
7
7
|
|
|
8
|
-
exports.
|
|
8
|
+
exports.OPENAPI_OUTPUT_PATH = require_openapi.OPENAPI_OUTPUT_PATH;
|
|
9
|
+
exports.generateOpenApi = require_openapi.generateOpenApi;
|
|
10
|
+
exports.openapiCommand = require_openapi.openapiCommand;
|
|
11
|
+
exports.resolveOpenApiConfig = require_openapi.resolveOpenApiConfig;
|
package/dist/openapi.d.cts
CHANGED
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
#!/usr/bin/env -S npx tsx
|
|
2
|
+
import { GkmConfig, OpenApiConfig } from "./types-KmjzMgu8.cjs";
|
|
3
|
+
|
|
2
4
|
//#region src/openapi.d.ts
|
|
3
5
|
interface OpenAPIOptions {
|
|
4
|
-
output?: string;
|
|
5
|
-
json?: boolean;
|
|
6
6
|
cwd?: string;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Fixed output path for generated OpenAPI client (not configurable)
|
|
10
|
+
*/
|
|
11
|
+
declare const OPENAPI_OUTPUT_PATH = "./.gkm/openapi.ts";
|
|
12
|
+
/**
|
|
13
|
+
* Resolve OpenAPI config from GkmConfig
|
|
14
|
+
*/
|
|
15
|
+
declare function resolveOpenApiConfig(config: GkmConfig): OpenApiConfig & {
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Generate OpenAPI spec from endpoints
|
|
20
|
+
* @returns Object with output path and endpoint count, or null if disabled
|
|
21
|
+
*/
|
|
22
|
+
declare function generateOpenApi(config: GkmConfig, options?: {
|
|
23
|
+
silent?: boolean;
|
|
24
|
+
}): Promise<{
|
|
25
|
+
outputPath: string;
|
|
26
|
+
endpointCount: number;
|
|
27
|
+
} | null>;
|
|
8
28
|
declare function openapiCommand(options?: OpenAPIOptions): Promise<void>;
|
|
9
29
|
//#endregion
|
|
10
|
-
export { openapiCommand };
|
|
30
|
+
export { OPENAPI_OUTPUT_PATH, generateOpenApi, openapiCommand, resolveOpenApiConfig };
|
|
11
31
|
//# sourceMappingURL=openapi.d.cts.map
|
package/dist/openapi.d.mts
CHANGED
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
#!/usr/bin/env -S npx tsx
|
|
2
|
+
import { GkmConfig, OpenApiConfig } from "./types-Bi7VzDUZ.mjs";
|
|
3
|
+
|
|
2
4
|
//#region src/openapi.d.ts
|
|
3
5
|
interface OpenAPIOptions {
|
|
4
|
-
output?: string;
|
|
5
|
-
json?: boolean;
|
|
6
6
|
cwd?: string;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Fixed output path for generated OpenAPI client (not configurable)
|
|
10
|
+
*/
|
|
11
|
+
declare const OPENAPI_OUTPUT_PATH = "./.gkm/openapi.ts";
|
|
12
|
+
/**
|
|
13
|
+
* Resolve OpenAPI config from GkmConfig
|
|
14
|
+
*/
|
|
15
|
+
declare function resolveOpenApiConfig(config: GkmConfig): OpenApiConfig & {
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Generate OpenAPI spec from endpoints
|
|
20
|
+
* @returns Object with output path and endpoint count, or null if disabled
|
|
21
|
+
*/
|
|
22
|
+
declare function generateOpenApi(config: GkmConfig, options?: {
|
|
23
|
+
silent?: boolean;
|
|
24
|
+
}): Promise<{
|
|
25
|
+
outputPath: string;
|
|
26
|
+
endpointCount: number;
|
|
27
|
+
} | null>;
|
|
8
28
|
declare function openapiCommand(options?: OpenAPIOptions): Promise<void>;
|
|
9
29
|
//#endregion
|
|
10
|
-
export { openapiCommand };
|
|
30
|
+
export { OPENAPI_OUTPUT_PATH, generateOpenApi, openapiCommand, resolveOpenApiConfig };
|
|
11
31
|
//# sourceMappingURL=openapi.d.mts.map
|
package/dist/openapi.mjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import "./config-Bq72aj8e.mjs";
|
|
3
3
|
import "./Generator-CDt4pB3W.mjs";
|
|
4
4
|
import "./EndpointGenerator-DGivkPLT.mjs";
|
|
5
|
-
import "./OpenApiTsGenerator-
|
|
6
|
-
import { openapiCommand } from "./openapi-
|
|
5
|
+
import "./OpenApiTsGenerator-BVS4pOH7.mjs";
|
|
6
|
+
import { OPENAPI_OUTPUT_PATH, generateOpenApi, openapiCommand, resolveOpenApiConfig } from "./openapi-DA9RkPJl.mjs";
|
|
7
7
|
|
|
8
|
-
export { openapiCommand };
|
|
8
|
+
export { OPENAPI_OUTPUT_PATH, generateOpenApi, openapiCommand, resolveOpenApiConfig };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-
|
|
1
|
+
import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-DG6xNQMH.cjs";
|
|
2
2
|
|
|
3
3
|
//#region src/init/generators/package.d.ts
|
|
4
4
|
|
|
@@ -8,4 +8,4 @@ import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-C523No_B
|
|
|
8
8
|
declare function generatePackageJson(options: TemplateOptions, template: TemplateConfig): GeneratedFile[];
|
|
9
9
|
//#endregion
|
|
10
10
|
export { generatePackageJson };
|
|
11
|
-
//# sourceMappingURL=package-
|
|
11
|
+
//# sourceMappingURL=package-6h-7QfJZ.d.cts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-
|
|
1
|
+
import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-DZgrOOOW.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/init/generators/package.d.ts
|
|
4
4
|
|
|
@@ -8,4 +8,4 @@ import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-DrzN4xkQ
|
|
|
8
8
|
declare function generatePackageJson(options: TemplateOptions, template: TemplateConfig): GeneratedFile[];
|
|
9
9
|
//#endregion
|
|
10
10
|
export { generatePackageJson };
|
|
11
|
-
//# sourceMappingURL=package-
|
|
11
|
+
//# sourceMappingURL=package-BCe_KvGv.d.mts.map
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { OPENAPI_OUTPUT_PATH } from "./templates-C0EMmhwb.mjs";
|
|
2
|
+
|
|
1
3
|
//#region src/init/generators/package.ts
|
|
2
4
|
/**
|
|
3
5
|
* Generate package.json with dependencies based on template and options
|
|
@@ -36,6 +38,10 @@ function generatePackageJson(options, template) {
|
|
|
36
38
|
version: "0.0.1",
|
|
37
39
|
private: true,
|
|
38
40
|
type: "module",
|
|
41
|
+
exports: { "./client": {
|
|
42
|
+
types: OPENAPI_OUTPUT_PATH,
|
|
43
|
+
import: OPENAPI_OUTPUT_PATH
|
|
44
|
+
} },
|
|
39
45
|
scripts,
|
|
40
46
|
dependencies: sortObject(dependencies),
|
|
41
47
|
devDependencies: sortObject(devDependencies)
|
|
@@ -48,4 +54,4 @@ function generatePackageJson(options, template) {
|
|
|
48
54
|
|
|
49
55
|
//#endregion
|
|
50
56
|
export { generatePackageJson };
|
|
51
|
-
//# sourceMappingURL=package-
|
|
57
|
+
//# sourceMappingURL=package-C3If80n1.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-C3If80n1.mjs","names":["options: TemplateOptions","template: TemplateConfig","obj: Record<string, string>"],"sources":["../src/init/generators/package.ts"],"sourcesContent":["import {\n type GeneratedFile,\n OPENAPI_OUTPUT_PATH,\n type TemplateConfig,\n type TemplateOptions,\n} from '../templates/index.js';\n\n/**\n * Generate package.json with dependencies based on template and options\n */\nexport function generatePackageJson(\n options: TemplateOptions,\n template: TemplateConfig,\n): GeneratedFile[] {\n const { name, telescope, database, monorepo } = options;\n\n // Start with template dependencies\n const dependencies = { ...template.dependencies };\n const devDependencies = { ...template.devDependencies };\n const scripts = { ...template.scripts };\n\n // Add optional dependencies based on user choices\n if (telescope) {\n dependencies['@geekmidas/telescope'] = 'workspace:*';\n }\n\n if (database) {\n dependencies['@geekmidas/db'] = 'workspace:*';\n dependencies['kysely'] = '~0.28.2';\n dependencies['pg'] = '~8.16.0';\n devDependencies['@types/pg'] = '~8.15.0';\n }\n\n // Add zod for schema validation (commonly used)\n dependencies['zod'] = '~4.1.0';\n\n // For monorepo apps, remove biome/turbo (they're at root) and lint/fmt scripts\n if (monorepo) {\n delete devDependencies['@biomejs/biome'];\n delete devDependencies['turbo'];\n delete scripts['lint'];\n delete scripts['fmt'];\n delete scripts['fmt:check'];\n\n // Add models package as dependency\n dependencies[`@${name}/models`] = 'workspace:*';\n\n // Remove zod from api package (it's in models)\n delete dependencies['zod'];\n }\n\n // Sort dependencies alphabetically\n const sortObject = (obj: Record<string, string>) =>\n Object.fromEntries(\n Object.entries(obj).sort(([a], [b]) => a.localeCompare(b)),\n );\n\n // For monorepo, derive package name from apiPath (e.g., apps/api -> @name/api)\n let packageName = name;\n if (monorepo && options.apiPath) {\n const pathParts = options.apiPath.split('/');\n const appName = pathParts[pathParts.length - 1] || 'api';\n packageName = `@${name}/${appName}`;\n }\n\n const packageJson = {\n name: packageName,\n version: '0.0.1',\n private: true,\n type: 'module',\n exports: {\n './client': {\n types: OPENAPI_OUTPUT_PATH,\n import: OPENAPI_OUTPUT_PATH,\n },\n },\n scripts,\n dependencies: sortObject(dependencies),\n devDependencies: sortObject(devDependencies),\n };\n\n return [\n {\n path: 'package.json',\n content: JSON.stringify(packageJson, null, 2) + '\\n',\n },\n ];\n}\n"],"mappings":";;;;;;AAUA,SAAgB,oBACdA,SACAC,UACiB;CACjB,MAAM,EAAE,MAAM,WAAW,UAAU,UAAU,GAAG;CAGhD,MAAM,eAAe,EAAE,GAAG,SAAS,aAAc;CACjD,MAAM,kBAAkB,EAAE,GAAG,SAAS,gBAAiB;CACvD,MAAM,UAAU,EAAE,GAAG,SAAS,QAAS;AAGvC,KAAI,UACF,cAAa,0BAA0B;AAGzC,KAAI,UAAU;AACZ,eAAa,mBAAmB;AAChC,eAAa,YAAY;AACzB,eAAa,QAAQ;AACrB,kBAAgB,eAAe;CAChC;AAGD,cAAa,SAAS;AAGtB,KAAI,UAAU;AACZ,SAAO,gBAAgB;AACvB,SAAO,gBAAgB;AACvB,SAAO,QAAQ;AACf,SAAO,QAAQ;AACf,SAAO,QAAQ;AAGf,gBAAc,GAAG,KAAK,YAAY;AAGlC,SAAO,aAAa;CACrB;CAGD,MAAM,aAAa,CAACC,QAClB,OAAO,YACL,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAC3D;CAGH,IAAI,cAAc;AAClB,KAAI,YAAY,QAAQ,SAAS;EAC/B,MAAM,YAAY,QAAQ,QAAQ,MAAM,IAAI;EAC5C,MAAM,UAAU,UAAU,UAAU,SAAS,MAAM;AACnD,iBAAe,GAAG,KAAK,GAAG,QAAQ;CACnC;CAED,MAAM,cAAc;EAClB,MAAM;EACN,SAAS;EACT,SAAS;EACT,MAAM;EACN,SAAS,EACP,YAAY;GACV,OAAO;GACP,QAAQ;EACT,EACF;EACD;EACA,cAAc,WAAW,aAAa;EACtC,iBAAiB,WAAW,gBAAgB;CAC7C;AAED,QAAO,CACL;EACE,MAAM;EACN,SAAS,KAAK,UAAU,aAAa,MAAM,EAAE,GAAG;CACjD,CACF;AACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const require_templates = require('./templates-CbgQ9dw0.cjs');
|
|
1
2
|
|
|
2
3
|
//#region src/init/generators/package.ts
|
|
3
4
|
/**
|
|
@@ -37,6 +38,10 @@ function generatePackageJson(options, template) {
|
|
|
37
38
|
version: "0.0.1",
|
|
38
39
|
private: true,
|
|
39
40
|
type: "module",
|
|
41
|
+
exports: { "./client": {
|
|
42
|
+
types: require_templates.OPENAPI_OUTPUT_PATH,
|
|
43
|
+
import: require_templates.OPENAPI_OUTPUT_PATH
|
|
44
|
+
} },
|
|
40
45
|
scripts,
|
|
41
46
|
dependencies: sortObject(dependencies),
|
|
42
47
|
devDependencies: sortObject(devDependencies)
|
|
@@ -54,4 +59,4 @@ Object.defineProperty(exports, 'generatePackageJson', {
|
|
|
54
59
|
return generatePackageJson;
|
|
55
60
|
}
|
|
56
61
|
});
|
|
57
|
-
//# sourceMappingURL=package-
|
|
62
|
+
//# sourceMappingURL=package-Dk8IMBOB.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-Dk8IMBOB.cjs","names":["options: TemplateOptions","template: TemplateConfig","obj: Record<string, string>","OPENAPI_OUTPUT_PATH"],"sources":["../src/init/generators/package.ts"],"sourcesContent":["import {\n type GeneratedFile,\n OPENAPI_OUTPUT_PATH,\n type TemplateConfig,\n type TemplateOptions,\n} from '../templates/index.js';\n\n/**\n * Generate package.json with dependencies based on template and options\n */\nexport function generatePackageJson(\n options: TemplateOptions,\n template: TemplateConfig,\n): GeneratedFile[] {\n const { name, telescope, database, monorepo } = options;\n\n // Start with template dependencies\n const dependencies = { ...template.dependencies };\n const devDependencies = { ...template.devDependencies };\n const scripts = { ...template.scripts };\n\n // Add optional dependencies based on user choices\n if (telescope) {\n dependencies['@geekmidas/telescope'] = 'workspace:*';\n }\n\n if (database) {\n dependencies['@geekmidas/db'] = 'workspace:*';\n dependencies['kysely'] = '~0.28.2';\n dependencies['pg'] = '~8.16.0';\n devDependencies['@types/pg'] = '~8.15.0';\n }\n\n // Add zod for schema validation (commonly used)\n dependencies['zod'] = '~4.1.0';\n\n // For monorepo apps, remove biome/turbo (they're at root) and lint/fmt scripts\n if (monorepo) {\n delete devDependencies['@biomejs/biome'];\n delete devDependencies['turbo'];\n delete scripts['lint'];\n delete scripts['fmt'];\n delete scripts['fmt:check'];\n\n // Add models package as dependency\n dependencies[`@${name}/models`] = 'workspace:*';\n\n // Remove zod from api package (it's in models)\n delete dependencies['zod'];\n }\n\n // Sort dependencies alphabetically\n const sortObject = (obj: Record<string, string>) =>\n Object.fromEntries(\n Object.entries(obj).sort(([a], [b]) => a.localeCompare(b)),\n );\n\n // For monorepo, derive package name from apiPath (e.g., apps/api -> @name/api)\n let packageName = name;\n if (monorepo && options.apiPath) {\n const pathParts = options.apiPath.split('/');\n const appName = pathParts[pathParts.length - 1] || 'api';\n packageName = `@${name}/${appName}`;\n }\n\n const packageJson = {\n name: packageName,\n version: '0.0.1',\n private: true,\n type: 'module',\n exports: {\n './client': {\n types: OPENAPI_OUTPUT_PATH,\n import: OPENAPI_OUTPUT_PATH,\n },\n },\n scripts,\n dependencies: sortObject(dependencies),\n devDependencies: sortObject(devDependencies),\n };\n\n return [\n {\n path: 'package.json',\n content: JSON.stringify(packageJson, null, 2) + '\\n',\n },\n ];\n}\n"],"mappings":";;;;;;AAUA,SAAgB,oBACdA,SACAC,UACiB;CACjB,MAAM,EAAE,MAAM,WAAW,UAAU,UAAU,GAAG;CAGhD,MAAM,eAAe,EAAE,GAAG,SAAS,aAAc;CACjD,MAAM,kBAAkB,EAAE,GAAG,SAAS,gBAAiB;CACvD,MAAM,UAAU,EAAE,GAAG,SAAS,QAAS;AAGvC,KAAI,UACF,cAAa,0BAA0B;AAGzC,KAAI,UAAU;AACZ,eAAa,mBAAmB;AAChC,eAAa,YAAY;AACzB,eAAa,QAAQ;AACrB,kBAAgB,eAAe;CAChC;AAGD,cAAa,SAAS;AAGtB,KAAI,UAAU;AACZ,SAAO,gBAAgB;AACvB,SAAO,gBAAgB;AACvB,SAAO,QAAQ;AACf,SAAO,QAAQ;AACf,SAAO,QAAQ;AAGf,gBAAc,GAAG,KAAK,YAAY;AAGlC,SAAO,aAAa;CACrB;CAGD,MAAM,aAAa,CAACC,QAClB,OAAO,YACL,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAC3D;CAGH,IAAI,cAAc;AAClB,KAAI,YAAY,QAAQ,SAAS;EAC/B,MAAM,YAAY,QAAQ,QAAQ,MAAM,IAAI;EAC5C,MAAM,UAAU,UAAU,UAAU,SAAS,MAAM;AACnD,iBAAe,GAAG,KAAK,GAAG,QAAQ;CACnC;CAED,MAAM,cAAc;EAClB,MAAM;EACN,SAAS;EACT,SAAS;EACT,MAAM;EACN,SAAS,EACP,YAAY;GACV,OAAOC;GACP,QAAQA;EACT,EACF;EACD;EACA,cAAc,WAAW,aAAa;EACtC,iBAAiB,WAAW,gBAAgB;CAC7C;AAED,QAAO,CACL;EACE,MAAM;EACN,SAAS,KAAK,UAAU,aAAa,MAAM,EAAE,GAAG;CACjD,CACF;AACF"}
|
|
@@ -32,6 +32,18 @@ const serverlessTemplate = {
|
|
|
32
32
|
"fmt:check": "biome format ."
|
|
33
33
|
},
|
|
34
34
|
files: (options) => {
|
|
35
|
+
const { loggerType, routesStructure } = options;
|
|
36
|
+
const loggerContent = `import { createLogger } from '@geekmidas/logger/${loggerType}';
|
|
37
|
+
|
|
38
|
+
export const logger = createLogger();
|
|
39
|
+
`;
|
|
40
|
+
const getRoutePath = (file) => {
|
|
41
|
+
switch (routesStructure) {
|
|
42
|
+
case "centralized-endpoints": return `src/endpoints/${file}`;
|
|
43
|
+
case "centralized-routes": return `src/routes/${file}`;
|
|
44
|
+
case "domain-based": return `src/${file.replace(".ts", "")}/routes/index.ts`;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
35
47
|
const files = [
|
|
36
48
|
{
|
|
37
49
|
path: "src/config/env.ts",
|
|
@@ -52,17 +64,10 @@ export const config = envParser
|
|
|
52
64
|
},
|
|
53
65
|
{
|
|
54
66
|
path: "src/config/logger.ts",
|
|
55
|
-
content:
|
|
56
|
-
|
|
57
|
-
export const logger = new PinoLogger({
|
|
58
|
-
app: '${options.name}',
|
|
59
|
-
stage: process.env.STAGE || 'dev',
|
|
60
|
-
level: process.env.LOG_LEVEL || 'info',
|
|
61
|
-
});
|
|
62
|
-
`
|
|
67
|
+
content: loggerContent
|
|
63
68
|
},
|
|
64
69
|
{
|
|
65
|
-
path: "
|
|
70
|
+
path: getRoutePath("health.ts"),
|
|
66
71
|
content: `import { e } from '@geekmidas/constructs/endpoints';
|
|
67
72
|
|
|
68
73
|
export default e
|
|
@@ -111,4 +116,4 @@ Object.defineProperty(exports, 'serverlessTemplate', {
|
|
|
111
116
|
return serverlessTemplate;
|
|
112
117
|
}
|
|
113
118
|
});
|
|
114
|
-
//# sourceMappingURL=serverless-
|
|
119
|
+
//# sourceMappingURL=serverless-AGOS-l3G.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverless-AGOS-l3G.cjs","names":["serverlessTemplate: TemplateConfig","options: TemplateOptions","file: string","files: GeneratedFile[]"],"sources":["../src/init/templates/serverless.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from './index.js';\n\nexport const serverlessTemplate: TemplateConfig = {\n name: 'serverless',\n description: 'AWS Lambda handlers',\n\n dependencies: {\n '@geekmidas/constructs': 'workspace:*',\n '@geekmidas/envkit': 'workspace:*',\n '@geekmidas/logger': 'workspace:*',\n '@geekmidas/cloud': 'workspace:*',\n hono: '~4.8.2',\n pino: '~9.6.0',\n },\n\n devDependencies: {\n '@biomejs/biome': '~1.9.4',\n '@geekmidas/cli': 'workspace:*',\n '@types/aws-lambda': '~8.10.92',\n '@types/node': '~22.0.0',\n tsx: '~4.20.0',\n turbo: '~2.3.0',\n typescript: '~5.8.2',\n vitest: '~4.0.0',\n },\n\n scripts: {\n dev: 'gkm dev',\n build: 'gkm build --provider aws-apigatewayv2',\n test: 'vitest',\n 'test:once': 'vitest run',\n typecheck: 'tsc --noEmit',\n lint: 'biome lint .',\n fmt: 'biome format . --write',\n 'fmt:check': 'biome format .',\n },\n\n files: (options: TemplateOptions): GeneratedFile[] => {\n const { loggerType, routesStructure } = options;\n\n const loggerContent = `import { createLogger } from '@geekmidas/logger/${loggerType}';\n\nexport const logger = createLogger();\n`;\n\n // Get route path based on structure\n const getRoutePath = (file: string) => {\n switch (routesStructure) {\n case 'centralized-endpoints':\n return `src/endpoints/${file}`;\n case 'centralized-routes':\n return `src/routes/${file}`;\n case 'domain-based':\n return `src/${file.replace('.ts', '')}/routes/index.ts`;\n }\n };\n\n const files: GeneratedFile[] = [\n // src/config/env.ts\n {\n path: 'src/config/env.ts',\n content: `import { EnvironmentParser } from '@geekmidas/envkit';\n\nexport const envParser = new EnvironmentParser(process.env);\n\nexport const config = envParser\n .create((get) => ({\n stage: get('STAGE').string().default('dev'),\n region: get('AWS_REGION').string().default('us-east-1'),${\n options.database\n ? `\n database: {\n url: get('DATABASE_URL').string(),\n },`\n : ''\n }\n }))\n .parse();\n`,\n },\n\n // src/config/logger.ts\n {\n path: 'src/config/logger.ts',\n content: loggerContent,\n },\n\n // health endpoint\n {\n path: getRoutePath('health.ts'),\n content: `import { e } from '@geekmidas/constructs/endpoints';\n\nexport default e\n .get('/health')\n .handle(async () => ({\n status: 'ok',\n timestamp: new Date().toISOString(),\n region: process.env.AWS_REGION || 'local',\n }));\n`,\n },\n\n // src/functions/hello.ts\n {\n path: 'src/functions/hello.ts',\n content: `import { f } from '@geekmidas/constructs/functions';\nimport { z } from 'zod';\n\nexport default f\n .input(z.object({ name: z.string() }))\n .output(z.object({ message: z.string() }))\n .handle(async ({ input }) => ({\n message: \\`Hello, \\${input.name}!\\`,\n }));\n`,\n },\n ];\n\n // Add Telescope config if enabled\n if (options.telescope) {\n files.push({\n path: 'src/config/telescope.ts',\n content: `import { Telescope } from '@geekmidas/telescope';\nimport { InMemoryStorage } from '@geekmidas/telescope/storage/memory';\n\n// Note: For production Lambda, consider using a persistent storage\nexport const telescope = new Telescope({\n storage: new InMemoryStorage({ maxEntries: 50 }),\n enabled: process.env.STAGE === 'dev',\n});\n`,\n });\n }\n\n return files;\n },\n};\n"],"mappings":";;AAMA,MAAaA,qBAAqC;CAChD,MAAM;CACN,aAAa;CAEb,cAAc;EACZ,yBAAyB;EACzB,qBAAqB;EACrB,qBAAqB;EACrB,oBAAoB;EACpB,MAAM;EACN,MAAM;CACP;CAED,iBAAiB;EACf,kBAAkB;EAClB,kBAAkB;EAClB,qBAAqB;EACrB,eAAe;EACf,KAAK;EACL,OAAO;EACP,YAAY;EACZ,QAAQ;CACT;CAED,SAAS;EACP,KAAK;EACL,OAAO;EACP,MAAM;EACN,aAAa;EACb,WAAW;EACX,MAAM;EACN,KAAK;EACL,aAAa;CACd;CAED,OAAO,CAACC,YAA8C;EACpD,MAAM,EAAE,YAAY,iBAAiB,GAAG;EAExC,MAAM,iBAAiB,kDAAkD,WAAW;;;;EAMpF,MAAM,eAAe,CAACC,SAAiB;AACrC,WAAQ,iBAAR;IACE,KAAK,wBACH,SAAQ,gBAAgB,KAAK;IAC/B,KAAK,qBACH,SAAQ,aAAa,KAAK;IAC5B,KAAK,eACH,SAAQ,MAAM,KAAK,QAAQ,OAAO,GAAG,CAAC;GACzC;EACF;EAED,MAAMC,QAAyB;GAE7B;IACE,MAAM;IACN,UAAU;;;;;;;8DAQZ,QAAQ,YACH;;;UAID,GACL;;;;GAIE;GAGD;IACE,MAAM;IACN,SAAS;GACV;GAGD;IACE,MAAM,aAAa,YAAY;IAC/B,UAAU;;;;;;;;;;GAUX;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;;;GAUX;EACF;AAGD,MAAI,QAAQ,UACV,OAAM,KAAK;GACT,MAAM;GACN,UAAU;;;;;;;;;EASX,EAAC;AAGJ,SAAO;CACR;AACF"}
|
|
@@ -31,6 +31,18 @@ const serverlessTemplate = {
|
|
|
31
31
|
"fmt:check": "biome format ."
|
|
32
32
|
},
|
|
33
33
|
files: (options) => {
|
|
34
|
+
const { loggerType, routesStructure } = options;
|
|
35
|
+
const loggerContent = `import { createLogger } from '@geekmidas/logger/${loggerType}';
|
|
36
|
+
|
|
37
|
+
export const logger = createLogger();
|
|
38
|
+
`;
|
|
39
|
+
const getRoutePath = (file) => {
|
|
40
|
+
switch (routesStructure) {
|
|
41
|
+
case "centralized-endpoints": return `src/endpoints/${file}`;
|
|
42
|
+
case "centralized-routes": return `src/routes/${file}`;
|
|
43
|
+
case "domain-based": return `src/${file.replace(".ts", "")}/routes/index.ts`;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
34
46
|
const files = [
|
|
35
47
|
{
|
|
36
48
|
path: "src/config/env.ts",
|
|
@@ -51,17 +63,10 @@ export const config = envParser
|
|
|
51
63
|
},
|
|
52
64
|
{
|
|
53
65
|
path: "src/config/logger.ts",
|
|
54
|
-
content:
|
|
55
|
-
|
|
56
|
-
export const logger = new PinoLogger({
|
|
57
|
-
app: '${options.name}',
|
|
58
|
-
stage: process.env.STAGE || 'dev',
|
|
59
|
-
level: process.env.LOG_LEVEL || 'info',
|
|
60
|
-
});
|
|
61
|
-
`
|
|
66
|
+
content: loggerContent
|
|
62
67
|
},
|
|
63
68
|
{
|
|
64
|
-
path: "
|
|
69
|
+
path: getRoutePath("health.ts"),
|
|
65
70
|
content: `import { e } from '@geekmidas/constructs/endpoints';
|
|
66
71
|
|
|
67
72
|
export default e
|
|
@@ -105,4 +110,4 @@ export const telescope = new Telescope({
|
|
|
105
110
|
|
|
106
111
|
//#endregion
|
|
107
112
|
export { serverlessTemplate };
|
|
108
|
-
//# sourceMappingURL=serverless-
|
|
113
|
+
//# sourceMappingURL=serverless-D5HjJByU.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverless-D5HjJByU.mjs","names":["serverlessTemplate: TemplateConfig","options: TemplateOptions","file: string","files: GeneratedFile[]"],"sources":["../src/init/templates/serverless.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from './index.js';\n\nexport const serverlessTemplate: TemplateConfig = {\n name: 'serverless',\n description: 'AWS Lambda handlers',\n\n dependencies: {\n '@geekmidas/constructs': 'workspace:*',\n '@geekmidas/envkit': 'workspace:*',\n '@geekmidas/logger': 'workspace:*',\n '@geekmidas/cloud': 'workspace:*',\n hono: '~4.8.2',\n pino: '~9.6.0',\n },\n\n devDependencies: {\n '@biomejs/biome': '~1.9.4',\n '@geekmidas/cli': 'workspace:*',\n '@types/aws-lambda': '~8.10.92',\n '@types/node': '~22.0.0',\n tsx: '~4.20.0',\n turbo: '~2.3.0',\n typescript: '~5.8.2',\n vitest: '~4.0.0',\n },\n\n scripts: {\n dev: 'gkm dev',\n build: 'gkm build --provider aws-apigatewayv2',\n test: 'vitest',\n 'test:once': 'vitest run',\n typecheck: 'tsc --noEmit',\n lint: 'biome lint .',\n fmt: 'biome format . --write',\n 'fmt:check': 'biome format .',\n },\n\n files: (options: TemplateOptions): GeneratedFile[] => {\n const { loggerType, routesStructure } = options;\n\n const loggerContent = `import { createLogger } from '@geekmidas/logger/${loggerType}';\n\nexport const logger = createLogger();\n`;\n\n // Get route path based on structure\n const getRoutePath = (file: string) => {\n switch (routesStructure) {\n case 'centralized-endpoints':\n return `src/endpoints/${file}`;\n case 'centralized-routes':\n return `src/routes/${file}`;\n case 'domain-based':\n return `src/${file.replace('.ts', '')}/routes/index.ts`;\n }\n };\n\n const files: GeneratedFile[] = [\n // src/config/env.ts\n {\n path: 'src/config/env.ts',\n content: `import { EnvironmentParser } from '@geekmidas/envkit';\n\nexport const envParser = new EnvironmentParser(process.env);\n\nexport const config = envParser\n .create((get) => ({\n stage: get('STAGE').string().default('dev'),\n region: get('AWS_REGION').string().default('us-east-1'),${\n options.database\n ? `\n database: {\n url: get('DATABASE_URL').string(),\n },`\n : ''\n }\n }))\n .parse();\n`,\n },\n\n // src/config/logger.ts\n {\n path: 'src/config/logger.ts',\n content: loggerContent,\n },\n\n // health endpoint\n {\n path: getRoutePath('health.ts'),\n content: `import { e } from '@geekmidas/constructs/endpoints';\n\nexport default e\n .get('/health')\n .handle(async () => ({\n status: 'ok',\n timestamp: new Date().toISOString(),\n region: process.env.AWS_REGION || 'local',\n }));\n`,\n },\n\n // src/functions/hello.ts\n {\n path: 'src/functions/hello.ts',\n content: `import { f } from '@geekmidas/constructs/functions';\nimport { z } from 'zod';\n\nexport default f\n .input(z.object({ name: z.string() }))\n .output(z.object({ message: z.string() }))\n .handle(async ({ input }) => ({\n message: \\`Hello, \\${input.name}!\\`,\n }));\n`,\n },\n ];\n\n // Add Telescope config if enabled\n if (options.telescope) {\n files.push({\n path: 'src/config/telescope.ts',\n content: `import { Telescope } from '@geekmidas/telescope';\nimport { InMemoryStorage } from '@geekmidas/telescope/storage/memory';\n\n// Note: For production Lambda, consider using a persistent storage\nexport const telescope = new Telescope({\n storage: new InMemoryStorage({ maxEntries: 50 }),\n enabled: process.env.STAGE === 'dev',\n});\n`,\n });\n }\n\n return files;\n },\n};\n"],"mappings":";AAMA,MAAaA,qBAAqC;CAChD,MAAM;CACN,aAAa;CAEb,cAAc;EACZ,yBAAyB;EACzB,qBAAqB;EACrB,qBAAqB;EACrB,oBAAoB;EACpB,MAAM;EACN,MAAM;CACP;CAED,iBAAiB;EACf,kBAAkB;EAClB,kBAAkB;EAClB,qBAAqB;EACrB,eAAe;EACf,KAAK;EACL,OAAO;EACP,YAAY;EACZ,QAAQ;CACT;CAED,SAAS;EACP,KAAK;EACL,OAAO;EACP,MAAM;EACN,aAAa;EACb,WAAW;EACX,MAAM;EACN,KAAK;EACL,aAAa;CACd;CAED,OAAO,CAACC,YAA8C;EACpD,MAAM,EAAE,YAAY,iBAAiB,GAAG;EAExC,MAAM,iBAAiB,kDAAkD,WAAW;;;;EAMpF,MAAM,eAAe,CAACC,SAAiB;AACrC,WAAQ,iBAAR;IACE,KAAK,wBACH,SAAQ,gBAAgB,KAAK;IAC/B,KAAK,qBACH,SAAQ,aAAa,KAAK;IAC5B,KAAK,eACH,SAAQ,MAAM,KAAK,QAAQ,OAAO,GAAG,CAAC;GACzC;EACF;EAED,MAAMC,QAAyB;GAE7B;IACE,MAAM;IACN,UAAU;;;;;;;8DAQZ,QAAQ,YACH;;;UAID,GACL;;;;GAIE;GAGD;IACE,MAAM;IACN,SAAS;GACV;GAGD;IACE,MAAM,aAAa,YAAY;IAC/B,UAAU;;;;;;;;;;GAUX;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;;;GAUX;EACF;AAGD,MAAI,QAAQ,UACV,OAAM,KAAK;GACT,MAAM;GACN,UAAU;;;;;;;;;EASX,EAAC;AAGJ,SAAO;CACR;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-
|
|
1
|
+
{"version":3,"file":"source-C1cyfHcF.cjs","names":["options: TemplateOptions","template: TemplateConfig"],"sources":["../src/init/generators/source.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from '../templates/index.js';\n\n/**\n * Generate source files from template\n */\nexport function generateSourceFiles(\n options: TemplateOptions,\n template: TemplateConfig,\n): GeneratedFile[] {\n return template.files(options);\n}\n"],"mappings":";;;;;AASA,SAAgB,oBACdA,SACAC,UACiB;AACjB,QAAO,SAAS,MAAM,QAAQ;AAC/B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-
|
|
1
|
+
import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-DZgrOOOW.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/init/generators/source.d.ts
|
|
4
4
|
|
|
@@ -8,4 +8,4 @@ import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-C523No_B
|
|
|
8
8
|
declare function generateSourceFiles(options: TemplateOptions, template: TemplateConfig): GeneratedFile[];
|
|
9
9
|
//#endregion
|
|
10
10
|
export { generateSourceFiles };
|
|
11
|
-
//# sourceMappingURL=source-
|
|
11
|
+
//# sourceMappingURL=source-C3LiNUV9.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-
|
|
1
|
+
{"version":3,"file":"source-CkQHBpwu.mjs","names":["options: TemplateOptions","template: TemplateConfig"],"sources":["../src/init/generators/source.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from '../templates/index.js';\n\n/**\n * Generate source files from template\n */\nexport function generateSourceFiles(\n options: TemplateOptions,\n template: TemplateConfig,\n): GeneratedFile[] {\n return template.files(options);\n}\n"],"mappings":";;;;AASA,SAAgB,oBACdA,SACAC,UACiB;AACjB,QAAO,SAAS,MAAM,QAAQ;AAC/B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-
|
|
1
|
+
import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-DG6xNQMH.cjs";
|
|
2
2
|
|
|
3
3
|
//#region src/init/generators/source.d.ts
|
|
4
4
|
|
|
@@ -8,4 +8,4 @@ import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-DrzN4xkQ
|
|
|
8
8
|
declare function generateSourceFiles(options: TemplateOptions, template: TemplateConfig): GeneratedFile[];
|
|
9
9
|
//#endregion
|
|
10
10
|
export { generateSourceFiles };
|
|
11
|
-
//# sourceMappingURL=source-
|
|
11
|
+
//# sourceMappingURL=source-Dtcjbokc.d.cts.map
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { apiTemplate } from "./api-Bp5TIl1R.mjs";
|
|
2
|
+
import { minimalTemplate } from "./minimal-BkyASH_C.mjs";
|
|
3
|
+
import { serverlessTemplate } from "./serverless-D5HjJByU.mjs";
|
|
4
|
+
import { workerTemplate } from "./worker-CiP420As.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/init/templates/index.ts
|
|
7
|
+
/**
|
|
8
|
+
* OpenAPI output path (fixed, not configurable)
|
|
9
|
+
*/
|
|
10
|
+
const OPENAPI_OUTPUT_PATH = "./.gkm/openapi.ts";
|
|
11
|
+
/**
|
|
12
|
+
* All available templates
|
|
13
|
+
*/
|
|
14
|
+
const templates = {
|
|
15
|
+
minimal: minimalTemplate,
|
|
16
|
+
api: apiTemplate,
|
|
17
|
+
serverless: serverlessTemplate,
|
|
18
|
+
worker: workerTemplate
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Template choices for prompts
|
|
22
|
+
*/
|
|
23
|
+
const templateChoices = [
|
|
24
|
+
{
|
|
25
|
+
title: "Minimal",
|
|
26
|
+
value: "minimal",
|
|
27
|
+
description: "Basic health endpoint"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
title: "API",
|
|
31
|
+
value: "api",
|
|
32
|
+
description: "Full API with auth, database, services"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
title: "Serverless",
|
|
36
|
+
value: "serverless",
|
|
37
|
+
description: "AWS Lambda handlers"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
title: "Worker",
|
|
41
|
+
value: "worker",
|
|
42
|
+
description: "Background job processing"
|
|
43
|
+
}
|
|
44
|
+
];
|
|
45
|
+
/**
|
|
46
|
+
* Logger type choices for prompts
|
|
47
|
+
*/
|
|
48
|
+
const loggerTypeChoices = [{
|
|
49
|
+
title: "Pino",
|
|
50
|
+
value: "pino",
|
|
51
|
+
description: "Fast JSON logger for production (recommended)"
|
|
52
|
+
}, {
|
|
53
|
+
title: "Console",
|
|
54
|
+
value: "console",
|
|
55
|
+
description: "Simple console logger for development"
|
|
56
|
+
}];
|
|
57
|
+
/**
|
|
58
|
+
* Routes structure choices for prompts
|
|
59
|
+
*/
|
|
60
|
+
const routesStructureChoices = [
|
|
61
|
+
{
|
|
62
|
+
title: "Centralized (endpoints)",
|
|
63
|
+
value: "centralized-endpoints",
|
|
64
|
+
description: "src/endpoints/**/*.ts"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
title: "Centralized (routes)",
|
|
68
|
+
value: "centralized-routes",
|
|
69
|
+
description: "src/routes/**/*.ts"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
title: "Domain-based",
|
|
73
|
+
value: "domain-based",
|
|
74
|
+
description: "src/**/routes/*.ts (e.g., src/users/routes/list.ts)"
|
|
75
|
+
}
|
|
76
|
+
];
|
|
77
|
+
/**
|
|
78
|
+
* Get a template by name
|
|
79
|
+
*/
|
|
80
|
+
function getTemplate(name) {
|
|
81
|
+
const template = templates[name];
|
|
82
|
+
if (!template) throw new Error(`Unknown template: ${name}`);
|
|
83
|
+
return template;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
//#endregion
|
|
87
|
+
export { OPENAPI_OUTPUT_PATH, getTemplate, loggerTypeChoices, routesStructureChoices, templateChoices, templates };
|
|
88
|
+
//# sourceMappingURL=templates-C0EMmhwb.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates-C0EMmhwb.mjs","names":["templates: Record<TemplateName, TemplateConfig>","name: TemplateName"],"sources":["../src/init/templates/index.ts"],"sourcesContent":["import { apiTemplate } from './api.js';\nimport { minimalTemplate } from './minimal.js';\nimport { serverlessTemplate } from './serverless.js';\nimport { workerTemplate } from './worker.js';\n\n/**\n * OpenAPI output path (fixed, not configurable)\n */\nexport const OPENAPI_OUTPUT_PATH = './.gkm/openapi.ts';\n\n/**\n * Logger implementation type\n */\nexport type LoggerType = 'pino' | 'console';\n\n/**\n * Routes structure pattern\n */\nexport type RoutesStructure =\n | 'centralized-endpoints'\n | 'centralized-routes'\n | 'domain-based';\n\n/**\n * Options collected from user prompts\n */\nexport interface TemplateOptions {\n name: string;\n template: TemplateName;\n telescope: boolean;\n database: boolean;\n loggerType: LoggerType;\n routesStructure: RoutesStructure;\n monorepo: boolean;\n /** Path for the API app in monorepo (e.g., 'apps/api') */\n apiPath: string;\n}\n\n/**\n * A file to be generated\n */\nexport interface GeneratedFile {\n path: string;\n content: string;\n}\n\n/**\n * Template configuration\n */\nexport interface TemplateConfig {\n name: TemplateName;\n description: string;\n dependencies: Record<string, string>;\n devDependencies: Record<string, string>;\n scripts: Record<string, string>;\n files: (options: TemplateOptions) => GeneratedFile[];\n}\n\nexport type TemplateName = 'minimal' | 'api' | 'serverless' | 'worker';\n\n/**\n * All available templates\n */\nexport const templates: Record<TemplateName, TemplateConfig> = {\n minimal: minimalTemplate,\n api: apiTemplate,\n serverless: serverlessTemplate,\n worker: workerTemplate,\n};\n\n/**\n * Template choices for prompts\n */\nexport const templateChoices = [\n {\n title: 'Minimal',\n value: 'minimal' as TemplateName,\n description: 'Basic health endpoint',\n },\n {\n title: 'API',\n value: 'api' as TemplateName,\n description: 'Full API with auth, database, services',\n },\n {\n title: 'Serverless',\n value: 'serverless' as TemplateName,\n description: 'AWS Lambda handlers',\n },\n {\n title: 'Worker',\n value: 'worker' as TemplateName,\n description: 'Background job processing',\n },\n];\n\n/**\n * Logger type choices for prompts\n */\nexport const loggerTypeChoices = [\n {\n title: 'Pino',\n value: 'pino' as LoggerType,\n description: 'Fast JSON logger for production (recommended)',\n },\n {\n title: 'Console',\n value: 'console' as LoggerType,\n description: 'Simple console logger for development',\n },\n];\n\n/**\n * Routes structure choices for prompts\n */\nexport const routesStructureChoices = [\n {\n title: 'Centralized (endpoints)',\n value: 'centralized-endpoints' as RoutesStructure,\n description: 'src/endpoints/**/*.ts',\n },\n {\n title: 'Centralized (routes)',\n value: 'centralized-routes' as RoutesStructure,\n description: 'src/routes/**/*.ts',\n },\n {\n title: 'Domain-based',\n value: 'domain-based' as RoutesStructure,\n description: 'src/**/routes/*.ts (e.g., src/users/routes/list.ts)',\n },\n];\n\n/**\n * Get a template by name\n */\nexport function getTemplate(name: TemplateName): TemplateConfig {\n const template = templates[name];\n if (!template) {\n throw new Error(`Unknown template: ${name}`);\n }\n return template;\n}\n"],"mappings":";;;;;;;;;AAQA,MAAa,sBAAsB;;;;AAuDnC,MAAaA,YAAkD;CAC7D,SAAS;CACT,KAAK;CACL,YAAY;CACZ,QAAQ;AACT;;;;AAKD,MAAa,kBAAkB;CAC7B;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;AACF;;;;AAKD,MAAa,oBAAoB,CAC/B;CACE,OAAO;CACP,OAAO;CACP,aAAa;AACd,GACD;CACE,OAAO;CACP,OAAO;CACP,aAAa;AACd,CACF;;;;AAKD,MAAa,yBAAyB;CACpC;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;AACF;;;;AAKD,SAAgB,YAAYC,MAAoC;CAC9D,MAAM,WAAW,UAAU;AAC3B,MAAK,SACH,OAAM,IAAI,OAAO,oBAAoB,KAAK;AAE5C,QAAO;AACR"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
const require_api = require('./api-D4W9-tdZ.cjs');
|
|
2
|
+
const require_minimal = require('./minimal-CSFggzdH.cjs');
|
|
3
|
+
const require_serverless = require('./serverless-AGOS-l3G.cjs');
|
|
4
|
+
const require_worker = require('./worker-CGhlqNH-.cjs');
|
|
5
|
+
|
|
6
|
+
//#region src/init/templates/index.ts
|
|
7
|
+
/**
|
|
8
|
+
* OpenAPI output path (fixed, not configurable)
|
|
9
|
+
*/
|
|
10
|
+
const OPENAPI_OUTPUT_PATH = "./.gkm/openapi.ts";
|
|
11
|
+
/**
|
|
12
|
+
* All available templates
|
|
13
|
+
*/
|
|
14
|
+
const templates = {
|
|
15
|
+
minimal: require_minimal.minimalTemplate,
|
|
16
|
+
api: require_api.apiTemplate,
|
|
17
|
+
serverless: require_serverless.serverlessTemplate,
|
|
18
|
+
worker: require_worker.workerTemplate
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Template choices for prompts
|
|
22
|
+
*/
|
|
23
|
+
const templateChoices = [
|
|
24
|
+
{
|
|
25
|
+
title: "Minimal",
|
|
26
|
+
value: "minimal",
|
|
27
|
+
description: "Basic health endpoint"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
title: "API",
|
|
31
|
+
value: "api",
|
|
32
|
+
description: "Full API with auth, database, services"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
title: "Serverless",
|
|
36
|
+
value: "serverless",
|
|
37
|
+
description: "AWS Lambda handlers"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
title: "Worker",
|
|
41
|
+
value: "worker",
|
|
42
|
+
description: "Background job processing"
|
|
43
|
+
}
|
|
44
|
+
];
|
|
45
|
+
/**
|
|
46
|
+
* Logger type choices for prompts
|
|
47
|
+
*/
|
|
48
|
+
const loggerTypeChoices = [{
|
|
49
|
+
title: "Pino",
|
|
50
|
+
value: "pino",
|
|
51
|
+
description: "Fast JSON logger for production (recommended)"
|
|
52
|
+
}, {
|
|
53
|
+
title: "Console",
|
|
54
|
+
value: "console",
|
|
55
|
+
description: "Simple console logger for development"
|
|
56
|
+
}];
|
|
57
|
+
/**
|
|
58
|
+
* Routes structure choices for prompts
|
|
59
|
+
*/
|
|
60
|
+
const routesStructureChoices = [
|
|
61
|
+
{
|
|
62
|
+
title: "Centralized (endpoints)",
|
|
63
|
+
value: "centralized-endpoints",
|
|
64
|
+
description: "src/endpoints/**/*.ts"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
title: "Centralized (routes)",
|
|
68
|
+
value: "centralized-routes",
|
|
69
|
+
description: "src/routes/**/*.ts"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
title: "Domain-based",
|
|
73
|
+
value: "domain-based",
|
|
74
|
+
description: "src/**/routes/*.ts (e.g., src/users/routes/list.ts)"
|
|
75
|
+
}
|
|
76
|
+
];
|
|
77
|
+
/**
|
|
78
|
+
* Get a template by name
|
|
79
|
+
*/
|
|
80
|
+
function getTemplate(name) {
|
|
81
|
+
const template = templates[name];
|
|
82
|
+
if (!template) throw new Error(`Unknown template: ${name}`);
|
|
83
|
+
return template;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
//#endregion
|
|
87
|
+
Object.defineProperty(exports, 'OPENAPI_OUTPUT_PATH', {
|
|
88
|
+
enumerable: true,
|
|
89
|
+
get: function () {
|
|
90
|
+
return OPENAPI_OUTPUT_PATH;
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
Object.defineProperty(exports, 'getTemplate', {
|
|
94
|
+
enumerable: true,
|
|
95
|
+
get: function () {
|
|
96
|
+
return getTemplate;
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
Object.defineProperty(exports, 'loggerTypeChoices', {
|
|
100
|
+
enumerable: true,
|
|
101
|
+
get: function () {
|
|
102
|
+
return loggerTypeChoices;
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
Object.defineProperty(exports, 'routesStructureChoices', {
|
|
106
|
+
enumerable: true,
|
|
107
|
+
get: function () {
|
|
108
|
+
return routesStructureChoices;
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
Object.defineProperty(exports, 'templateChoices', {
|
|
112
|
+
enumerable: true,
|
|
113
|
+
get: function () {
|
|
114
|
+
return templateChoices;
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
Object.defineProperty(exports, 'templates', {
|
|
118
|
+
enumerable: true,
|
|
119
|
+
get: function () {
|
|
120
|
+
return templates;
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
//# sourceMappingURL=templates-CbgQ9dw0.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates-CbgQ9dw0.cjs","names":["templates: Record<TemplateName, TemplateConfig>","minimalTemplate","apiTemplate","serverlessTemplate","workerTemplate","name: TemplateName"],"sources":["../src/init/templates/index.ts"],"sourcesContent":["import { apiTemplate } from './api.js';\nimport { minimalTemplate } from './minimal.js';\nimport { serverlessTemplate } from './serverless.js';\nimport { workerTemplate } from './worker.js';\n\n/**\n * OpenAPI output path (fixed, not configurable)\n */\nexport const OPENAPI_OUTPUT_PATH = './.gkm/openapi.ts';\n\n/**\n * Logger implementation type\n */\nexport type LoggerType = 'pino' | 'console';\n\n/**\n * Routes structure pattern\n */\nexport type RoutesStructure =\n | 'centralized-endpoints'\n | 'centralized-routes'\n | 'domain-based';\n\n/**\n * Options collected from user prompts\n */\nexport interface TemplateOptions {\n name: string;\n template: TemplateName;\n telescope: boolean;\n database: boolean;\n loggerType: LoggerType;\n routesStructure: RoutesStructure;\n monorepo: boolean;\n /** Path for the API app in monorepo (e.g., 'apps/api') */\n apiPath: string;\n}\n\n/**\n * A file to be generated\n */\nexport interface GeneratedFile {\n path: string;\n content: string;\n}\n\n/**\n * Template configuration\n */\nexport interface TemplateConfig {\n name: TemplateName;\n description: string;\n dependencies: Record<string, string>;\n devDependencies: Record<string, string>;\n scripts: Record<string, string>;\n files: (options: TemplateOptions) => GeneratedFile[];\n}\n\nexport type TemplateName = 'minimal' | 'api' | 'serverless' | 'worker';\n\n/**\n * All available templates\n */\nexport const templates: Record<TemplateName, TemplateConfig> = {\n minimal: minimalTemplate,\n api: apiTemplate,\n serverless: serverlessTemplate,\n worker: workerTemplate,\n};\n\n/**\n * Template choices for prompts\n */\nexport const templateChoices = [\n {\n title: 'Minimal',\n value: 'minimal' as TemplateName,\n description: 'Basic health endpoint',\n },\n {\n title: 'API',\n value: 'api' as TemplateName,\n description: 'Full API with auth, database, services',\n },\n {\n title: 'Serverless',\n value: 'serverless' as TemplateName,\n description: 'AWS Lambda handlers',\n },\n {\n title: 'Worker',\n value: 'worker' as TemplateName,\n description: 'Background job processing',\n },\n];\n\n/**\n * Logger type choices for prompts\n */\nexport const loggerTypeChoices = [\n {\n title: 'Pino',\n value: 'pino' as LoggerType,\n description: 'Fast JSON logger for production (recommended)',\n },\n {\n title: 'Console',\n value: 'console' as LoggerType,\n description: 'Simple console logger for development',\n },\n];\n\n/**\n * Routes structure choices for prompts\n */\nexport const routesStructureChoices = [\n {\n title: 'Centralized (endpoints)',\n value: 'centralized-endpoints' as RoutesStructure,\n description: 'src/endpoints/**/*.ts',\n },\n {\n title: 'Centralized (routes)',\n value: 'centralized-routes' as RoutesStructure,\n description: 'src/routes/**/*.ts',\n },\n {\n title: 'Domain-based',\n value: 'domain-based' as RoutesStructure,\n description: 'src/**/routes/*.ts (e.g., src/users/routes/list.ts)',\n },\n];\n\n/**\n * Get a template by name\n */\nexport function getTemplate(name: TemplateName): TemplateConfig {\n const template = templates[name];\n if (!template) {\n throw new Error(`Unknown template: ${name}`);\n }\n return template;\n}\n"],"mappings":";;;;;;;;;AAQA,MAAa,sBAAsB;;;;AAuDnC,MAAaA,YAAkD;CAC7D,SAASC;CACT,KAAKC;CACL,YAAYC;CACZ,QAAQC;AACT;;;;AAKD,MAAa,kBAAkB;CAC7B;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;AACF;;;;AAKD,MAAa,oBAAoB,CAC/B;CACE,OAAO;CACP,OAAO;CACP,aAAa;AACd,GACD;CACE,OAAO;CACP,OAAO;CACP,aAAa;AACd,CACF;;;;AAKD,MAAa,yBAAyB;CACpC;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;AACF;;;;AAKD,SAAgB,YAAYC,MAAoC;CAC9D,MAAM,WAAW,UAAU;AAC3B,MAAK,SACH,OAAM,IAAI,OAAO,oBAAoB,KAAK;AAE5C,QAAO;AACR"}
|