@geekmidas/cli 0.6.2 → 0.7.0
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/config.d.cts +1 -1
- package/dist/config.d.mts +1 -1
- package/dist/index.cjs +2561 -34
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +2556 -29
- package/dist/index.mjs.map +1 -1
- package/dist/openapi-Mwy2_R4W.mjs +957 -0
- package/dist/openapi-Mwy2_R4W.mjs.map +1 -0
- package/dist/{openapi-react-query-_-B3s8v_.mjs → openapi-react-query-CcciaVu5.mjs} +1 -1
- package/dist/{openapi-react-query-_-B3s8v_.mjs.map → openapi-react-query-CcciaVu5.mjs.map} +1 -1
- package/dist/{openapi-react-query-Cp-w8_05.cjs → openapi-react-query-o5iMi8tz.cjs} +1 -1
- package/dist/{openapi-react-query-Cp-w8_05.cjs.map → openapi-react-query-o5iMi8tz.cjs.map} +1 -1
- package/dist/openapi-react-query.cjs +1 -1
- package/dist/openapi-react-query.mjs +1 -1
- package/dist/openapi-tAIbJJU_.cjs +993 -0
- package/dist/openapi-tAIbJJU_.cjs.map +1 -0
- package/dist/openapi.cjs +1 -4
- package/dist/openapi.d.cts +1 -1
- package/dist/openapi.d.mts +1 -1
- package/dist/openapi.mjs +1 -4
- package/dist/{types-Bi7VzDUZ.d.mts → types-B3TXoj7v.d.mts} +21 -53
- package/dist/{types-KmjzMgu8.d.cts → types-C0hwnSjm.d.cts} +21 -53
- package/package.json +5 -5
- package/src/build/types.ts +13 -0
- package/src/dev/index.ts +71 -8
- package/src/generators/EndpointGenerator.ts +46 -5
- package/src/generators/__tests__/EndpointGenerator.spec.ts +1 -1
- package/src/init/generators/config.ts +6 -1
- package/src/init/generators/package.ts +5 -1
- package/src/init/index.ts +9 -1
- package/src/init/templates/api.ts +31 -0
- package/src/init/templates/index.ts +1 -0
- package/src/init/templates/minimal.ts +83 -0
- package/src/types.ts +19 -0
- package/tsdown.config.ts +6 -0
- package/dist/CronGenerator-CCRYptuT.mjs +0 -55
- package/dist/CronGenerator-CCRYptuT.mjs.map +0 -1
- package/dist/CronGenerator-D4TWXQbh.cjs +0 -61
- package/dist/CronGenerator-D4TWXQbh.cjs.map +0 -1
- package/dist/CronGenerator-DWS3CCZt.d.cts +0 -14
- package/dist/CronGenerator-DZjdkEjI.d.mts +0 -14
- package/dist/EndpointGenerator-DGivkPLT.mjs +0 -335
- package/dist/EndpointGenerator-DGivkPLT.mjs.map +0 -1
- package/dist/EndpointGenerator-Dh7kMtuL.d.mts +0 -19
- package/dist/EndpointGenerator-npWEDoK2.cjs +0 -341
- package/dist/EndpointGenerator-npWEDoK2.cjs.map +0 -1
- package/dist/EndpointGenerator-zBsie_7s.d.cts +0 -19
- package/dist/FunctionGenerator-BmDHo27U.d.mts +0 -14
- package/dist/FunctionGenerator-CVk0h8tO.mjs +0 -54
- package/dist/FunctionGenerator-CVk0h8tO.mjs.map +0 -1
- package/dist/FunctionGenerator-DXjXBxUd.d.cts +0 -14
- package/dist/FunctionGenerator-DYTnyr4c.cjs +0 -60
- package/dist/FunctionGenerator-DYTnyr4c.cjs.map +0 -1
- package/dist/Generator-BGY-2dgI.d.cts +0 -27
- package/dist/Generator-CDt4pB3W.mjs +0 -41
- package/dist/Generator-CDt4pB3W.mjs.map +0 -1
- package/dist/Generator-CLVplqm2.cjs +0 -47
- package/dist/Generator-CLVplqm2.cjs.map +0 -1
- package/dist/Generator-yi9DH5TN.d.mts +0 -27
- package/dist/OpenApiTsGenerator-BVS4pOH7.mjs +0 -495
- package/dist/OpenApiTsGenerator-BVS4pOH7.mjs.map +0 -1
- package/dist/OpenApiTsGenerator-gPIIyppX.cjs +0 -501
- package/dist/OpenApiTsGenerator-gPIIyppX.cjs.map +0 -1
- package/dist/SubscriberGenerator-Bb-z3Kvx.d.cts +0 -15
- package/dist/SubscriberGenerator-CwsXqCpS.d.mts +0 -15
- package/dist/SubscriberGenerator-DABaJXML.mjs +0 -200
- package/dist/SubscriberGenerator-DABaJXML.mjs.map +0 -1
- package/dist/SubscriberGenerator-D_zpNGFr.cjs +0 -206
- package/dist/SubscriberGenerator-D_zpNGFr.cjs.map +0 -1
- package/dist/api-Bp5TIl1R.mjs +0 -167
- package/dist/api-Bp5TIl1R.mjs.map +0 -1
- package/dist/api-D4W9-tdZ.cjs +0 -173
- package/dist/api-D4W9-tdZ.cjs.map +0 -1
- package/dist/build/index.cjs +0 -15
- package/dist/build/index.d.cts +0 -7
- package/dist/build/index.d.mts +0 -7
- package/dist/build/index.mjs +0 -15
- package/dist/build/manifests.cjs +0 -4
- package/dist/build/manifests.d.cts +0 -13
- package/dist/build/manifests.d.mts +0 -13
- package/dist/build/manifests.mjs +0 -3
- package/dist/build/providerResolver.cjs +0 -5
- package/dist/build/providerResolver.d.cts +0 -23
- package/dist/build/providerResolver.d.mts +0 -23
- package/dist/build/providerResolver.mjs +0 -3
- package/dist/build/types.cjs +0 -0
- package/dist/build/types.d.cts +0 -3
- package/dist/build/types.d.mts +0 -3
- package/dist/build/types.mjs +0 -0
- package/dist/build-Cu6Mi0Lf.mjs +0 -87
- package/dist/build-Cu6Mi0Lf.mjs.map +0 -1
- package/dist/build-wmt8ZcmA.cjs +0 -93
- package/dist/build-wmt8ZcmA.cjs.map +0 -1
- package/dist/config-BP1IZynR.cjs +0 -168
- package/dist/config-BP1IZynR.cjs.map +0 -1
- package/dist/config-CIzRhm_D.d.mts +0 -11
- package/dist/config-CvehIYsb.d.cts +0 -11
- package/dist/config-UCK12Lrr.mjs +0 -162
- package/dist/config-UCK12Lrr.mjs.map +0 -1
- package/dist/dev/index.cjs +0 -17
- package/dist/dev/index.d.cts +0 -36
- package/dist/dev/index.d.mts +0 -36
- package/dist/dev/index.mjs +0 -13
- package/dist/dev-BBPWSllq.mjs +0 -348
- package/dist/dev-BBPWSllq.mjs.map +0 -1
- package/dist/dev-C2lCgE53.cjs +0 -378
- package/dist/dev-C2lCgE53.cjs.map +0 -1
- package/dist/docker-2-ipZDOJ.cjs +0 -119
- package/dist/docker-2-ipZDOJ.cjs.map +0 -1
- package/dist/docker-31GNwU3F.mjs +0 -113
- package/dist/docker-31GNwU3F.mjs.map +0 -1
- package/dist/env-CQ3hXAAW.d.mts +0 -11
- package/dist/env-CS0jvg7k.cjs +0 -144
- package/dist/env-CS0jvg7k.cjs.map +0 -1
- package/dist/env-D4YFgMqo.d.cts +0 -11
- package/dist/env-DEeVOvVu.mjs +0 -138
- package/dist/env-DEeVOvVu.mjs.map +0 -1
- package/dist/generators/CronGenerator.cjs +0 -4
- package/dist/generators/CronGenerator.d.cts +0 -5
- package/dist/generators/CronGenerator.d.mts +0 -5
- package/dist/generators/CronGenerator.mjs +0 -4
- package/dist/generators/EndpointGenerator.cjs +0 -4
- package/dist/generators/EndpointGenerator.d.cts +0 -5
- package/dist/generators/EndpointGenerator.d.mts +0 -5
- package/dist/generators/EndpointGenerator.mjs +0 -4
- package/dist/generators/FunctionGenerator.cjs +0 -4
- package/dist/generators/FunctionGenerator.d.cts +0 -5
- package/dist/generators/FunctionGenerator.d.mts +0 -5
- package/dist/generators/FunctionGenerator.mjs +0 -4
- package/dist/generators/Generator.cjs +0 -3
- package/dist/generators/Generator.d.cts +0 -4
- package/dist/generators/Generator.d.mts +0 -4
- package/dist/generators/Generator.mjs +0 -3
- package/dist/generators/OpenApiTsGenerator.cjs +0 -3
- package/dist/generators/OpenApiTsGenerator.d.cts +0 -44
- package/dist/generators/OpenApiTsGenerator.d.mts +0 -44
- package/dist/generators/OpenApiTsGenerator.mjs +0 -3
- package/dist/generators/SubscriberGenerator.cjs +0 -4
- package/dist/generators/SubscriberGenerator.d.cts +0 -5
- package/dist/generators/SubscriberGenerator.d.mts +0 -5
- package/dist/generators/SubscriberGenerator.mjs +0 -4
- package/dist/generators/index.cjs +0 -12
- package/dist/generators/index.d.cts +0 -8
- package/dist/generators/index.d.mts +0 -8
- package/dist/generators/index.mjs +0 -8
- package/dist/generators-3IemvCLk.cjs +0 -0
- package/dist/generators-FNpdfN6J.mjs +0 -0
- package/dist/index-DG6xNQMH.d.cts +0 -81
- package/dist/index-DZgrOOOW.d.mts +0 -81
- package/dist/init/generators/config.cjs +0 -3
- package/dist/init/generators/config.d.cts +0 -3
- package/dist/init/generators/config.d.mts +0 -3
- package/dist/init/generators/config.mjs +0 -3
- package/dist/init/generators/docker.cjs +0 -3
- package/dist/init/generators/docker.d.cts +0 -11
- package/dist/init/generators/docker.d.mts +0 -11
- package/dist/init/generators/docker.mjs +0 -3
- package/dist/init/generators/env.cjs +0 -3
- package/dist/init/generators/env.d.cts +0 -3
- package/dist/init/generators/env.d.mts +0 -3
- package/dist/init/generators/env.mjs +0 -3
- package/dist/init/generators/index.cjs +0 -14
- package/dist/init/generators/index.d.cts +0 -6
- package/dist/init/generators/index.d.mts +0 -6
- package/dist/init/generators/index.mjs +0 -11
- package/dist/init/generators/models.cjs +0 -3
- package/dist/init/generators/models.d.cts +0 -11
- package/dist/init/generators/models.d.mts +0 -11
- package/dist/init/generators/models.mjs +0 -3
- package/dist/init/generators/monorepo.cjs +0 -3
- package/dist/init/generators/monorepo.d.cts +0 -11
- package/dist/init/generators/monorepo.d.mts +0 -11
- package/dist/init/generators/monorepo.mjs +0 -3
- package/dist/init/generators/package.cjs +0 -8
- package/dist/init/generators/package.d.cts +0 -3
- package/dist/init/generators/package.d.mts +0 -3
- package/dist/init/generators/package.mjs +0 -8
- package/dist/init/generators/source.cjs +0 -3
- package/dist/init/generators/source.d.cts +0 -3
- package/dist/init/generators/source.d.mts +0 -3
- package/dist/init/generators/source.mjs +0 -3
- package/dist/init/index.cjs +0 -16
- package/dist/init/index.d.cts +0 -17
- package/dist/init/index.d.mts +0 -17
- package/dist/init/index.mjs +0 -16
- package/dist/init/templates/api.cjs +0 -3
- package/dist/init/templates/api.d.cts +0 -7
- package/dist/init/templates/api.d.mts +0 -7
- package/dist/init/templates/api.mjs +0 -3
- package/dist/init/templates/index.cjs +0 -12
- package/dist/init/templates/index.d.cts +0 -2
- package/dist/init/templates/index.d.mts +0 -2
- package/dist/init/templates/index.mjs +0 -7
- package/dist/init/templates/minimal.cjs +0 -3
- package/dist/init/templates/minimal.d.cts +0 -7
- package/dist/init/templates/minimal.d.mts +0 -7
- package/dist/init/templates/minimal.mjs +0 -3
- package/dist/init/templates/serverless.cjs +0 -3
- package/dist/init/templates/serverless.d.cts +0 -7
- package/dist/init/templates/serverless.d.mts +0 -7
- package/dist/init/templates/serverless.mjs +0 -3
- package/dist/init/templates/worker.cjs +0 -3
- package/dist/init/templates/worker.d.cts +0 -7
- package/dist/init/templates/worker.d.mts +0 -7
- package/dist/init/templates/worker.mjs +0 -3
- package/dist/init/utils.cjs +0 -7
- package/dist/init/utils.d.cts +0 -25
- package/dist/init/utils.d.mts +0 -25
- package/dist/init/utils.mjs +0 -3
- package/dist/init-BMA7xi8r.mjs +0 -161
- package/dist/init-BMA7xi8r.mjs.map +0 -1
- package/dist/init-D-7WEk-b.cjs +0 -167
- package/dist/init-D-7WEk-b.cjs.map +0 -1
- package/dist/manifests-BNKG6AXf.mjs +0 -68
- package/dist/manifests-BNKG6AXf.mjs.map +0 -1
- package/dist/manifests-D13Ej8AE.cjs +0 -80
- package/dist/manifests-D13Ej8AE.cjs.map +0 -1
- package/dist/minimal-BkyASH_C.mjs +0 -93
- package/dist/minimal-BkyASH_C.mjs.map +0 -1
- package/dist/minimal-CSFggzdH.cjs +0 -99
- package/dist/minimal-CSFggzdH.cjs.map +0 -1
- package/dist/models-BWlDfviw.mjs +0 -115
- package/dist/models-BWlDfviw.mjs.map +0 -1
- package/dist/models-BapGSoHC.cjs +0 -121
- package/dist/models-BapGSoHC.cjs.map +0 -1
- package/dist/monorepo-BBOWhkcd.mjs +0 -184
- package/dist/monorepo-BBOWhkcd.mjs.map +0 -1
- package/dist/monorepo-CFtxHeDh.cjs +0 -190
- package/dist/monorepo-CFtxHeDh.cjs.map +0 -1
- package/dist/openapi-DA9RkPJl.mjs +0 -74
- package/dist/openapi-DA9RkPJl.mjs.map +0 -1
- package/dist/openapi-DZH6RQHk.cjs +0 -98
- package/dist/openapi-DZH6RQHk.cjs.map +0 -1
- package/dist/package-6h-7QfJZ.d.cts +0 -11
- package/dist/package-BCe_KvGv.d.mts +0 -11
- package/dist/package-C3If80n1.mjs +0 -57
- package/dist/package-C3If80n1.mjs.map +0 -1
- package/dist/package-Dk8IMBOB.cjs +0 -62
- package/dist/package-Dk8IMBOB.cjs.map +0 -1
- package/dist/providerResolver-DEVKngbC.mjs +0 -96
- package/dist/providerResolver-DEVKngbC.mjs.map +0 -1
- package/dist/providerResolver-DOTbN9jo.cjs +0 -114
- package/dist/providerResolver-DOTbN9jo.cjs.map +0 -1
- package/dist/serverless-AGOS-l3G.cjs +0 -119
- package/dist/serverless-AGOS-l3G.cjs.map +0 -1
- package/dist/serverless-D5HjJByU.mjs +0 -113
- package/dist/serverless-D5HjJByU.mjs.map +0 -1
- package/dist/source-C1cyfHcF.cjs +0 -17
- package/dist/source-C1cyfHcF.cjs.map +0 -1
- package/dist/source-C3LiNUV9.d.mts +0 -11
- package/dist/source-CkQHBpwu.mjs +0 -11
- package/dist/source-CkQHBpwu.mjs.map +0 -1
- package/dist/source-Dtcjbokc.d.cts +0 -11
- package/dist/templates-C0EMmhwb.mjs +0 -88
- package/dist/templates-C0EMmhwb.mjs.map +0 -1
- package/dist/templates-CbgQ9dw0.cjs +0 -123
- package/dist/templates-CbgQ9dw0.cjs.map +0 -1
- package/dist/types-D2xYkOal.d.mts +0 -51
- package/dist/types-DA-r8HWZ.d.cts +0 -51
- package/dist/types.cjs +0 -0
- package/dist/types.d.cts +0 -2
- package/dist/types.d.mts +0 -2
- package/dist/types.mjs +0 -0
- package/dist/utils-CKEzCxc1.mjs +0 -69
- package/dist/utils-CKEzCxc1.mjs.map +0 -1
- package/dist/utils-DSdN2MTt.cjs +0 -99
- package/dist/utils-DSdN2MTt.cjs.map +0 -1
- package/dist/worker-CGhlqNH-.cjs +0 -156
- package/dist/worker-CGhlqNH-.cjs.map +0 -1
- package/dist/worker-CiP420As.mjs +0 -150
- package/dist/worker-CiP420As.mjs.map +0 -1
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
//#region src/init/generators/monorepo.ts
|
|
3
|
-
/**
|
|
4
|
-
* Generate monorepo root files (pnpm-workspace.yaml, root package.json, etc.)
|
|
5
|
-
*/
|
|
6
|
-
function generateMonorepoFiles(options, _template) {
|
|
7
|
-
if (!options.monorepo) return [];
|
|
8
|
-
const rootPackageJson = {
|
|
9
|
-
name: options.name,
|
|
10
|
-
version: "0.0.1",
|
|
11
|
-
private: true,
|
|
12
|
-
type: "module",
|
|
13
|
-
scripts: {
|
|
14
|
-
dev: "turbo dev",
|
|
15
|
-
build: "turbo build",
|
|
16
|
-
test: "turbo test",
|
|
17
|
-
"test:once": "turbo test:once",
|
|
18
|
-
typecheck: "turbo typecheck",
|
|
19
|
-
lint: "biome lint .",
|
|
20
|
-
fmt: "biome format . --write",
|
|
21
|
-
"fmt:check": "biome format ."
|
|
22
|
-
},
|
|
23
|
-
devDependencies: {
|
|
24
|
-
"@biomejs/biome": "~1.9.4",
|
|
25
|
-
turbo: "~2.3.0",
|
|
26
|
-
typescript: "~5.8.2",
|
|
27
|
-
vitest: "~4.0.0"
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
const apiPathParts = options.apiPath.split("/");
|
|
31
|
-
const appsFolder = apiPathParts[0] || "apps";
|
|
32
|
-
const pnpmWorkspace = `packages:
|
|
33
|
-
- '${appsFolder}/*'
|
|
34
|
-
- 'packages/*'
|
|
35
|
-
`;
|
|
36
|
-
const biomeConfig = {
|
|
37
|
-
$schema: "https://biomejs.dev/schemas/1.9.4/schema.json",
|
|
38
|
-
vcs: {
|
|
39
|
-
enabled: true,
|
|
40
|
-
clientKind: "git",
|
|
41
|
-
useIgnoreFile: true
|
|
42
|
-
},
|
|
43
|
-
organizeImports: { enabled: true },
|
|
44
|
-
formatter: {
|
|
45
|
-
enabled: true,
|
|
46
|
-
indentStyle: "space",
|
|
47
|
-
indentWidth: 2,
|
|
48
|
-
lineWidth: 80
|
|
49
|
-
},
|
|
50
|
-
javascript: { formatter: {
|
|
51
|
-
quoteStyle: "single",
|
|
52
|
-
trailingCommas: "all",
|
|
53
|
-
semicolons: "always",
|
|
54
|
-
arrowParentheses: "always"
|
|
55
|
-
} },
|
|
56
|
-
linter: {
|
|
57
|
-
enabled: true,
|
|
58
|
-
rules: {
|
|
59
|
-
recommended: true,
|
|
60
|
-
correctness: {
|
|
61
|
-
noUnusedImports: "error",
|
|
62
|
-
noUnusedVariables: "error"
|
|
63
|
-
},
|
|
64
|
-
style: { noNonNullAssertion: "off" }
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
files: { ignore: [
|
|
68
|
-
"node_modules",
|
|
69
|
-
"dist",
|
|
70
|
-
".gkm",
|
|
71
|
-
"coverage"
|
|
72
|
-
] }
|
|
73
|
-
};
|
|
74
|
-
const turboConfig = {
|
|
75
|
-
$schema: "https://turbo.build/schema.json",
|
|
76
|
-
tasks: {
|
|
77
|
-
build: {
|
|
78
|
-
dependsOn: ["^build"],
|
|
79
|
-
outputs: ["dist/**"]
|
|
80
|
-
},
|
|
81
|
-
dev: {
|
|
82
|
-
cache: false,
|
|
83
|
-
persistent: true
|
|
84
|
-
},
|
|
85
|
-
test: {
|
|
86
|
-
dependsOn: ["^build"],
|
|
87
|
-
cache: false
|
|
88
|
-
},
|
|
89
|
-
"test:once": {
|
|
90
|
-
dependsOn: ["^build"],
|
|
91
|
-
outputs: ["coverage/**"]
|
|
92
|
-
},
|
|
93
|
-
typecheck: {
|
|
94
|
-
dependsOn: ["^build"],
|
|
95
|
-
outputs: []
|
|
96
|
-
},
|
|
97
|
-
lint: { outputs: [] },
|
|
98
|
-
fmt: { outputs: [] }
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
const gitignore = `# Dependencies
|
|
102
|
-
node_modules/
|
|
103
|
-
|
|
104
|
-
# Build output
|
|
105
|
-
dist/
|
|
106
|
-
.gkm/
|
|
107
|
-
|
|
108
|
-
# Environment
|
|
109
|
-
.env
|
|
110
|
-
.env.local
|
|
111
|
-
.env.*.local
|
|
112
|
-
|
|
113
|
-
# IDE
|
|
114
|
-
.idea/
|
|
115
|
-
.vscode/
|
|
116
|
-
*.swp
|
|
117
|
-
*.swo
|
|
118
|
-
|
|
119
|
-
# OS
|
|
120
|
-
.DS_Store
|
|
121
|
-
Thumbs.db
|
|
122
|
-
|
|
123
|
-
# Logs
|
|
124
|
-
*.log
|
|
125
|
-
npm-debug.log*
|
|
126
|
-
yarn-debug.log*
|
|
127
|
-
pnpm-debug.log*
|
|
128
|
-
|
|
129
|
-
# Test coverage
|
|
130
|
-
coverage/
|
|
131
|
-
|
|
132
|
-
# TypeScript cache
|
|
133
|
-
*.tsbuildinfo
|
|
134
|
-
|
|
135
|
-
# Turbo
|
|
136
|
-
.turbo/
|
|
137
|
-
`;
|
|
138
|
-
const tsConfig = {
|
|
139
|
-
compilerOptions: {
|
|
140
|
-
target: "ES2022",
|
|
141
|
-
module: "NodeNext",
|
|
142
|
-
moduleResolution: "NodeNext",
|
|
143
|
-
lib: ["ES2022"],
|
|
144
|
-
strict: true,
|
|
145
|
-
esModuleInterop: true,
|
|
146
|
-
skipLibCheck: true,
|
|
147
|
-
forceConsistentCasingInFileNames: true,
|
|
148
|
-
resolveJsonModule: true,
|
|
149
|
-
declaration: true,
|
|
150
|
-
declarationMap: true,
|
|
151
|
-
composite: true
|
|
152
|
-
},
|
|
153
|
-
exclude: ["node_modules", "dist"]
|
|
154
|
-
};
|
|
155
|
-
return [
|
|
156
|
-
{
|
|
157
|
-
path: "package.json",
|
|
158
|
-
content: JSON.stringify(rootPackageJson, null, 2) + "\n"
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
path: "pnpm-workspace.yaml",
|
|
162
|
-
content: pnpmWorkspace
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
path: "tsconfig.json",
|
|
166
|
-
content: JSON.stringify(tsConfig, null, 2) + "\n"
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
path: "biome.json",
|
|
170
|
-
content: JSON.stringify(biomeConfig, null, 2) + "\n"
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
path: "turbo.json",
|
|
174
|
-
content: JSON.stringify(turboConfig, null, 2) + "\n"
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
path: ".gitignore",
|
|
178
|
-
content: gitignore
|
|
179
|
-
}
|
|
180
|
-
];
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
//#endregion
|
|
184
|
-
Object.defineProperty(exports, 'generateMonorepoFiles', {
|
|
185
|
-
enumerable: true,
|
|
186
|
-
get: function () {
|
|
187
|
-
return generateMonorepoFiles;
|
|
188
|
-
}
|
|
189
|
-
});
|
|
190
|
-
//# sourceMappingURL=monorepo-CFtxHeDh.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"monorepo-CFtxHeDh.cjs","names":["options: TemplateOptions","_template: TemplateConfig"],"sources":["../src/init/generators/monorepo.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from '../templates/index.js';\n\n/**\n * Generate monorepo root files (pnpm-workspace.yaml, root package.json, etc.)\n */\nexport function generateMonorepoFiles(\n options: TemplateOptions,\n _template: TemplateConfig,\n): GeneratedFile[] {\n if (!options.monorepo) {\n return [];\n }\n\n // Root package.json for monorepo\n const rootPackageJson = {\n name: options.name,\n version: '0.0.1',\n private: true,\n type: 'module',\n scripts: {\n dev: 'turbo dev',\n build: 'turbo build',\n test: 'turbo test',\n 'test:once': 'turbo test:once',\n typecheck: 'turbo typecheck',\n lint: 'biome lint .',\n fmt: 'biome format . --write',\n 'fmt:check': 'biome format .',\n },\n devDependencies: {\n '@biomejs/biome': '~1.9.4',\n turbo: '~2.3.0',\n typescript: '~5.8.2',\n vitest: '~4.0.0',\n },\n };\n\n // pnpm-workspace.yaml - detect folder structure from apiPath\n const apiPathParts = options.apiPath.split('/');\n const appsFolder = apiPathParts[0] || 'apps';\n\n const pnpmWorkspace = `packages:\n - '${appsFolder}/*'\n - 'packages/*'\n`;\n\n // Root 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 // Root 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 // Root .gitignore\n const gitignore = `# Dependencies\nnode_modules/\n\n# Build output\ndist/\n.gkm/\n\n# Environment\n.env\n.env.local\n.env.*.local\n\n# IDE\n.idea/\n.vscode/\n*.swp\n*.swo\n\n# OS\n.DS_Store\nThumbs.db\n\n# Logs\n*.log\nnpm-debug.log*\nyarn-debug.log*\npnpm-debug.log*\n\n# Test coverage\ncoverage/\n\n# TypeScript cache\n*.tsbuildinfo\n\n# Turbo\n.turbo/\n`;\n\n // Root tsconfig.json - base config for all packages\n const tsConfig = {\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 composite: true,\n },\n exclude: ['node_modules', 'dist'],\n };\n\n return [\n {\n path: 'package.json',\n content: JSON.stringify(rootPackageJson, null, 2) + '\\n',\n },\n {\n path: 'pnpm-workspace.yaml',\n content: pnpmWorkspace,\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 path: '.gitignore',\n content: gitignore,\n },\n ];\n}\n"],"mappings":";;;;;AASA,SAAgB,sBACdA,SACAC,WACiB;AACjB,MAAK,QAAQ,SACX,QAAO,CAAE;CAIX,MAAM,kBAAkB;EACtB,MAAM,QAAQ;EACd,SAAS;EACT,SAAS;EACT,MAAM;EACN,SAAS;GACP,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,WAAW;GACX,MAAM;GACN,KAAK;GACL,aAAa;EACd;EACD,iBAAiB;GACf,kBAAkB;GAClB,OAAO;GACP,YAAY;GACZ,QAAQ;EACT;CACF;CAGD,MAAM,eAAe,QAAQ,QAAQ,MAAM,IAAI;CAC/C,MAAM,aAAa,aAAa,MAAM;CAEtC,MAAM,iBAAiB;OAClB,WAAW;;;CAKhB,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;CAGD,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCnB,MAAM,WAAW;EACf,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,WAAW;EACZ;EACD,SAAS,CAAC,gBAAgB,MAAO;CAClC;AAED,QAAO;EACL;GACE,MAAM;GACN,SAAS,KAAK,UAAU,iBAAiB,MAAM,EAAE,GAAG;EACrD;EACD;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;EACD;GACE,MAAM;GACN,SAAS;EACV;CACF;AACF"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { loadConfig } from "./config-Bq72aj8e.mjs";
|
|
2
|
-
import { EndpointGenerator } from "./EndpointGenerator-DGivkPLT.mjs";
|
|
3
|
-
import { OpenApiTsGenerator } from "./OpenApiTsGenerator-BVS4pOH7.mjs";
|
|
4
|
-
import { mkdir, writeFile } from "node:fs/promises";
|
|
5
|
-
import { dirname, join } from "node:path";
|
|
6
|
-
|
|
7
|
-
//#region src/openapi.ts
|
|
8
|
-
/**
|
|
9
|
-
* Fixed output path for generated OpenAPI client (not configurable)
|
|
10
|
-
*/
|
|
11
|
-
const OPENAPI_OUTPUT_PATH = "./.gkm/openapi.ts";
|
|
12
|
-
/**
|
|
13
|
-
* Resolve OpenAPI config from GkmConfig
|
|
14
|
-
*/
|
|
15
|
-
function resolveOpenApiConfig(config) {
|
|
16
|
-
if (config.openapi === false) return { enabled: false };
|
|
17
|
-
if (config.openapi === true || config.openapi === void 0) return {
|
|
18
|
-
enabled: config.openapi === true,
|
|
19
|
-
title: "API Documentation",
|
|
20
|
-
version: "1.0.0",
|
|
21
|
-
description: "Auto-generated API documentation from endpoints"
|
|
22
|
-
};
|
|
23
|
-
return {
|
|
24
|
-
enabled: config.openapi.enabled !== false,
|
|
25
|
-
title: config.openapi.title || "API Documentation",
|
|
26
|
-
version: config.openapi.version || "1.0.0",
|
|
27
|
-
description: config.openapi.description || "Auto-generated API documentation from endpoints"
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Generate OpenAPI spec from endpoints
|
|
32
|
-
* @returns Object with output path and endpoint count, or null if disabled
|
|
33
|
-
*/
|
|
34
|
-
async function generateOpenApi(config, options = {}) {
|
|
35
|
-
const logger = options.silent ? { log: () => {} } : console;
|
|
36
|
-
const openApiConfig = resolveOpenApiConfig(config);
|
|
37
|
-
if (!openApiConfig.enabled) return null;
|
|
38
|
-
const endpointGenerator = new EndpointGenerator();
|
|
39
|
-
const loadedEndpoints = await endpointGenerator.load(config.routes);
|
|
40
|
-
if (loadedEndpoints.length === 0) {
|
|
41
|
-
logger.log("No valid endpoints found for OpenAPI generation");
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
const endpoints = loadedEndpoints.map(({ construct }) => construct);
|
|
45
|
-
const outputPath = join(process.cwd(), OPENAPI_OUTPUT_PATH);
|
|
46
|
-
await mkdir(dirname(outputPath), { recursive: true });
|
|
47
|
-
const tsGenerator = new OpenApiTsGenerator();
|
|
48
|
-
const tsContent = await tsGenerator.generate(endpoints, {
|
|
49
|
-
title: openApiConfig.title,
|
|
50
|
-
version: openApiConfig.version,
|
|
51
|
-
description: openApiConfig.description
|
|
52
|
-
});
|
|
53
|
-
await writeFile(outputPath, tsContent);
|
|
54
|
-
logger.log(`📄 OpenAPI client generated: ${OPENAPI_OUTPUT_PATH}`);
|
|
55
|
-
return {
|
|
56
|
-
outputPath,
|
|
57
|
-
endpointCount: loadedEndpoints.length
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
async function openapiCommand(options = {}) {
|
|
61
|
-
const logger = console;
|
|
62
|
-
try {
|
|
63
|
-
const config = await loadConfig(options.cwd);
|
|
64
|
-
if (!config.openapi) config.openapi = { enabled: true };
|
|
65
|
-
const result = await generateOpenApi(config);
|
|
66
|
-
if (result) logger.log(`Found ${result.endpointCount} endpoints`);
|
|
67
|
-
} catch (error) {
|
|
68
|
-
throw new Error(`OpenAPI generation failed: ${error.message}`);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
//#endregion
|
|
73
|
-
export { OPENAPI_OUTPUT_PATH, generateOpenApi, openapiCommand, resolveOpenApiConfig };
|
|
74
|
-
//# sourceMappingURL=openapi-DA9RkPJl.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openapi-DA9RkPJl.mjs","names":["config: GkmConfig","options: { silent?: boolean }","options: OpenAPIOptions"],"sources":["../src/openapi.ts"],"sourcesContent":["#!/usr/bin/env -S npx tsx\n\nimport { mkdir, writeFile } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport { loadConfig } from './config.js';\nimport { EndpointGenerator } from './generators/EndpointGenerator.js';\nimport { OpenApiTsGenerator } from './generators/OpenApiTsGenerator.js';\nimport type { GkmConfig, OpenApiConfig } from './types.js';\n\ninterface OpenAPIOptions {\n cwd?: string;\n}\n\n/**\n * Fixed output path for generated OpenAPI client (not configurable)\n */\nexport const OPENAPI_OUTPUT_PATH = './.gkm/openapi.ts';\n\n/**\n * Resolve OpenAPI config from GkmConfig\n */\nexport function resolveOpenApiConfig(\n config: GkmConfig,\n): OpenApiConfig & { enabled: boolean } {\n if (config.openapi === false) {\n return { enabled: false };\n }\n\n if (config.openapi === true || config.openapi === undefined) {\n return {\n enabled: config.openapi === true,\n title: 'API Documentation',\n version: '1.0.0',\n description: 'Auto-generated API documentation from endpoints',\n };\n }\n\n return {\n enabled: config.openapi.enabled !== false,\n title: config.openapi.title || 'API Documentation',\n version: config.openapi.version || '1.0.0',\n description:\n config.openapi.description ||\n 'Auto-generated API documentation from endpoints',\n };\n}\n\n/**\n * Generate OpenAPI spec from endpoints\n * @returns Object with output path and endpoint count, or null if disabled\n */\nexport async function generateOpenApi(\n config: GkmConfig,\n options: { silent?: boolean } = {},\n): Promise<{ outputPath: string; endpointCount: number } | null> {\n const logger = options.silent ? { log: () => {} } : console;\n const openApiConfig = resolveOpenApiConfig(config);\n\n if (!openApiConfig.enabled) {\n return null;\n }\n\n const endpointGenerator = new EndpointGenerator();\n const loadedEndpoints = await endpointGenerator.load(config.routes);\n\n if (loadedEndpoints.length === 0) {\n logger.log('No valid endpoints found for OpenAPI generation');\n return null;\n }\n\n const endpoints = loadedEndpoints.map(({ construct }) => construct);\n const outputPath = join(process.cwd(), OPENAPI_OUTPUT_PATH);\n\n await mkdir(dirname(outputPath), { recursive: true });\n\n const tsGenerator = new OpenApiTsGenerator();\n const tsContent = await tsGenerator.generate(endpoints, {\n title: openApiConfig.title!,\n version: openApiConfig.version!,\n description: openApiConfig.description!,\n });\n\n await writeFile(outputPath, tsContent);\n logger.log(`📄 OpenAPI client generated: ${OPENAPI_OUTPUT_PATH}`);\n\n return { outputPath, endpointCount: loadedEndpoints.length };\n}\n\nexport async function openapiCommand(\n options: OpenAPIOptions = {},\n): Promise<void> {\n const logger = console;\n\n try {\n const config = await loadConfig(options.cwd);\n\n // Enable openapi if not configured\n if (!config.openapi) {\n config.openapi = { enabled: true };\n }\n\n const result = await generateOpenApi(config);\n\n if (result) {\n logger.log(`Found ${result.endpointCount} endpoints`);\n }\n } catch (error) {\n throw new Error(`OpenAPI generation failed: ${(error as Error).message}`);\n }\n}\n"],"mappings":";;;;;;;;;;AAgBA,MAAa,sBAAsB;;;;AAKnC,SAAgB,qBACdA,QACsC;AACtC,KAAI,OAAO,YAAY,MACrB,QAAO,EAAE,SAAS,MAAO;AAG3B,KAAI,OAAO,YAAY,QAAQ,OAAO,mBACpC,QAAO;EACL,SAAS,OAAO,YAAY;EAC5B,OAAO;EACP,SAAS;EACT,aAAa;CACd;AAGH,QAAO;EACL,SAAS,OAAO,QAAQ,YAAY;EACpC,OAAO,OAAO,QAAQ,SAAS;EAC/B,SAAS,OAAO,QAAQ,WAAW;EACnC,aACE,OAAO,QAAQ,eACf;CACH;AACF;;;;;AAMD,eAAsB,gBACpBA,QACAC,UAAgC,CAAE,GAC6B;CAC/D,MAAM,SAAS,QAAQ,SAAS,EAAE,KAAK,MAAM,CAAE,EAAE,IAAG;CACpD,MAAM,gBAAgB,qBAAqB,OAAO;AAElD,MAAK,cAAc,QACjB,QAAO;CAGT,MAAM,oBAAoB,IAAI;CAC9B,MAAM,kBAAkB,MAAM,kBAAkB,KAAK,OAAO,OAAO;AAEnE,KAAI,gBAAgB,WAAW,GAAG;AAChC,SAAO,IAAI,kDAAkD;AAC7D,SAAO;CACR;CAED,MAAM,YAAY,gBAAgB,IAAI,CAAC,EAAE,WAAW,KAAK,UAAU;CACnE,MAAM,aAAa,KAAK,QAAQ,KAAK,EAAE,oBAAoB;AAE3D,OAAM,MAAM,QAAQ,WAAW,EAAE,EAAE,WAAW,KAAM,EAAC;CAErD,MAAM,cAAc,IAAI;CACxB,MAAM,YAAY,MAAM,YAAY,SAAS,WAAW;EACtD,OAAO,cAAc;EACrB,SAAS,cAAc;EACvB,aAAa,cAAc;CAC5B,EAAC;AAEF,OAAM,UAAU,YAAY,UAAU;AACtC,QAAO,KAAK,+BAA+B,oBAAoB,EAAE;AAEjE,QAAO;EAAE;EAAY,eAAe,gBAAgB;CAAQ;AAC7D;AAED,eAAsB,eACpBC,UAA0B,CAAE,GACb;CACf,MAAM,SAAS;AAEf,KAAI;EACF,MAAM,SAAS,MAAM,WAAW,QAAQ,IAAI;AAG5C,OAAK,OAAO,QACV,QAAO,UAAU,EAAE,SAAS,KAAM;EAGpC,MAAM,SAAS,MAAM,gBAAgB,OAAO;AAE5C,MAAI,OACF,QAAO,KAAK,QAAQ,OAAO,cAAc,YAAY;CAExD,SAAQ,OAAO;AACd,QAAM,IAAI,OAAO,6BAA8B,MAAgB,QAAQ;CACxE;AACF"}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
|
-
const require_config = require('./config-CFls09Ey.cjs');
|
|
3
|
-
const require_EndpointGenerator = require('./EndpointGenerator-npWEDoK2.cjs');
|
|
4
|
-
const require_OpenApiTsGenerator = require('./OpenApiTsGenerator-gPIIyppX.cjs');
|
|
5
|
-
const node_fs_promises = require_chunk.__toESM(require("node:fs/promises"));
|
|
6
|
-
const node_path = require_chunk.__toESM(require("node:path"));
|
|
7
|
-
|
|
8
|
-
//#region src/openapi.ts
|
|
9
|
-
/**
|
|
10
|
-
* Fixed output path for generated OpenAPI client (not configurable)
|
|
11
|
-
*/
|
|
12
|
-
const OPENAPI_OUTPUT_PATH = "./.gkm/openapi.ts";
|
|
13
|
-
/**
|
|
14
|
-
* Resolve OpenAPI config from GkmConfig
|
|
15
|
-
*/
|
|
16
|
-
function resolveOpenApiConfig(config) {
|
|
17
|
-
if (config.openapi === false) return { enabled: false };
|
|
18
|
-
if (config.openapi === true || config.openapi === void 0) return {
|
|
19
|
-
enabled: config.openapi === true,
|
|
20
|
-
title: "API Documentation",
|
|
21
|
-
version: "1.0.0",
|
|
22
|
-
description: "Auto-generated API documentation from endpoints"
|
|
23
|
-
};
|
|
24
|
-
return {
|
|
25
|
-
enabled: config.openapi.enabled !== false,
|
|
26
|
-
title: config.openapi.title || "API Documentation",
|
|
27
|
-
version: config.openapi.version || "1.0.0",
|
|
28
|
-
description: config.openapi.description || "Auto-generated API documentation from endpoints"
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Generate OpenAPI spec from endpoints
|
|
33
|
-
* @returns Object with output path and endpoint count, or null if disabled
|
|
34
|
-
*/
|
|
35
|
-
async function generateOpenApi(config, options = {}) {
|
|
36
|
-
const logger = options.silent ? { log: () => {} } : console;
|
|
37
|
-
const openApiConfig = resolveOpenApiConfig(config);
|
|
38
|
-
if (!openApiConfig.enabled) return null;
|
|
39
|
-
const endpointGenerator = new require_EndpointGenerator.EndpointGenerator();
|
|
40
|
-
const loadedEndpoints = await endpointGenerator.load(config.routes);
|
|
41
|
-
if (loadedEndpoints.length === 0) {
|
|
42
|
-
logger.log("No valid endpoints found for OpenAPI generation");
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
const endpoints = loadedEndpoints.map(({ construct }) => construct);
|
|
46
|
-
const outputPath = (0, node_path.join)(process.cwd(), OPENAPI_OUTPUT_PATH);
|
|
47
|
-
await (0, node_fs_promises.mkdir)((0, node_path.dirname)(outputPath), { recursive: true });
|
|
48
|
-
const tsGenerator = new require_OpenApiTsGenerator.OpenApiTsGenerator();
|
|
49
|
-
const tsContent = await tsGenerator.generate(endpoints, {
|
|
50
|
-
title: openApiConfig.title,
|
|
51
|
-
version: openApiConfig.version,
|
|
52
|
-
description: openApiConfig.description
|
|
53
|
-
});
|
|
54
|
-
await (0, node_fs_promises.writeFile)(outputPath, tsContent);
|
|
55
|
-
logger.log(`📄 OpenAPI client generated: ${OPENAPI_OUTPUT_PATH}`);
|
|
56
|
-
return {
|
|
57
|
-
outputPath,
|
|
58
|
-
endpointCount: loadedEndpoints.length
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
async function openapiCommand(options = {}) {
|
|
62
|
-
const logger = console;
|
|
63
|
-
try {
|
|
64
|
-
const config = await require_config.loadConfig(options.cwd);
|
|
65
|
-
if (!config.openapi) config.openapi = { enabled: true };
|
|
66
|
-
const result = await generateOpenApi(config);
|
|
67
|
-
if (result) logger.log(`Found ${result.endpointCount} endpoints`);
|
|
68
|
-
} catch (error) {
|
|
69
|
-
throw new Error(`OpenAPI generation failed: ${error.message}`);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
//#endregion
|
|
74
|
-
Object.defineProperty(exports, 'OPENAPI_OUTPUT_PATH', {
|
|
75
|
-
enumerable: true,
|
|
76
|
-
get: function () {
|
|
77
|
-
return OPENAPI_OUTPUT_PATH;
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
Object.defineProperty(exports, 'generateOpenApi', {
|
|
81
|
-
enumerable: true,
|
|
82
|
-
get: function () {
|
|
83
|
-
return generateOpenApi;
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
Object.defineProperty(exports, 'openapiCommand', {
|
|
87
|
-
enumerable: true,
|
|
88
|
-
get: function () {
|
|
89
|
-
return openapiCommand;
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
Object.defineProperty(exports, 'resolveOpenApiConfig', {
|
|
93
|
-
enumerable: true,
|
|
94
|
-
get: function () {
|
|
95
|
-
return resolveOpenApiConfig;
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
//# sourceMappingURL=openapi-DZH6RQHk.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openapi-DZH6RQHk.cjs","names":["config: GkmConfig","options: { silent?: boolean }","EndpointGenerator","OpenApiTsGenerator","options: OpenAPIOptions"],"sources":["../src/openapi.ts"],"sourcesContent":["#!/usr/bin/env -S npx tsx\n\nimport { mkdir, writeFile } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport { loadConfig } from './config.js';\nimport { EndpointGenerator } from './generators/EndpointGenerator.js';\nimport { OpenApiTsGenerator } from './generators/OpenApiTsGenerator.js';\nimport type { GkmConfig, OpenApiConfig } from './types.js';\n\ninterface OpenAPIOptions {\n cwd?: string;\n}\n\n/**\n * Fixed output path for generated OpenAPI client (not configurable)\n */\nexport const OPENAPI_OUTPUT_PATH = './.gkm/openapi.ts';\n\n/**\n * Resolve OpenAPI config from GkmConfig\n */\nexport function resolveOpenApiConfig(\n config: GkmConfig,\n): OpenApiConfig & { enabled: boolean } {\n if (config.openapi === false) {\n return { enabled: false };\n }\n\n if (config.openapi === true || config.openapi === undefined) {\n return {\n enabled: config.openapi === true,\n title: 'API Documentation',\n version: '1.0.0',\n description: 'Auto-generated API documentation from endpoints',\n };\n }\n\n return {\n enabled: config.openapi.enabled !== false,\n title: config.openapi.title || 'API Documentation',\n version: config.openapi.version || '1.0.0',\n description:\n config.openapi.description ||\n 'Auto-generated API documentation from endpoints',\n };\n}\n\n/**\n * Generate OpenAPI spec from endpoints\n * @returns Object with output path and endpoint count, or null if disabled\n */\nexport async function generateOpenApi(\n config: GkmConfig,\n options: { silent?: boolean } = {},\n): Promise<{ outputPath: string; endpointCount: number } | null> {\n const logger = options.silent ? { log: () => {} } : console;\n const openApiConfig = resolveOpenApiConfig(config);\n\n if (!openApiConfig.enabled) {\n return null;\n }\n\n const endpointGenerator = new EndpointGenerator();\n const loadedEndpoints = await endpointGenerator.load(config.routes);\n\n if (loadedEndpoints.length === 0) {\n logger.log('No valid endpoints found for OpenAPI generation');\n return null;\n }\n\n const endpoints = loadedEndpoints.map(({ construct }) => construct);\n const outputPath = join(process.cwd(), OPENAPI_OUTPUT_PATH);\n\n await mkdir(dirname(outputPath), { recursive: true });\n\n const tsGenerator = new OpenApiTsGenerator();\n const tsContent = await tsGenerator.generate(endpoints, {\n title: openApiConfig.title!,\n version: openApiConfig.version!,\n description: openApiConfig.description!,\n });\n\n await writeFile(outputPath, tsContent);\n logger.log(`📄 OpenAPI client generated: ${OPENAPI_OUTPUT_PATH}`);\n\n return { outputPath, endpointCount: loadedEndpoints.length };\n}\n\nexport async function openapiCommand(\n options: OpenAPIOptions = {},\n): Promise<void> {\n const logger = console;\n\n try {\n const config = await loadConfig(options.cwd);\n\n // Enable openapi if not configured\n if (!config.openapi) {\n config.openapi = { enabled: true };\n }\n\n const result = await generateOpenApi(config);\n\n if (result) {\n logger.log(`Found ${result.endpointCount} endpoints`);\n }\n } catch (error) {\n throw new Error(`OpenAPI generation failed: ${(error as Error).message}`);\n }\n}\n"],"mappings":";;;;;;;;;;;AAgBA,MAAa,sBAAsB;;;;AAKnC,SAAgB,qBACdA,QACsC;AACtC,KAAI,OAAO,YAAY,MACrB,QAAO,EAAE,SAAS,MAAO;AAG3B,KAAI,OAAO,YAAY,QAAQ,OAAO,mBACpC,QAAO;EACL,SAAS,OAAO,YAAY;EAC5B,OAAO;EACP,SAAS;EACT,aAAa;CACd;AAGH,QAAO;EACL,SAAS,OAAO,QAAQ,YAAY;EACpC,OAAO,OAAO,QAAQ,SAAS;EAC/B,SAAS,OAAO,QAAQ,WAAW;EACnC,aACE,OAAO,QAAQ,eACf;CACH;AACF;;;;;AAMD,eAAsB,gBACpBA,QACAC,UAAgC,CAAE,GAC6B;CAC/D,MAAM,SAAS,QAAQ,SAAS,EAAE,KAAK,MAAM,CAAE,EAAE,IAAG;CACpD,MAAM,gBAAgB,qBAAqB,OAAO;AAElD,MAAK,cAAc,QACjB,QAAO;CAGT,MAAM,oBAAoB,IAAIC;CAC9B,MAAM,kBAAkB,MAAM,kBAAkB,KAAK,OAAO,OAAO;AAEnE,KAAI,gBAAgB,WAAW,GAAG;AAChC,SAAO,IAAI,kDAAkD;AAC7D,SAAO;CACR;CAED,MAAM,YAAY,gBAAgB,IAAI,CAAC,EAAE,WAAW,KAAK,UAAU;CACnE,MAAM,aAAa,oBAAK,QAAQ,KAAK,EAAE,oBAAoB;AAE3D,OAAM,4BAAM,uBAAQ,WAAW,EAAE,EAAE,WAAW,KAAM,EAAC;CAErD,MAAM,cAAc,IAAIC;CACxB,MAAM,YAAY,MAAM,YAAY,SAAS,WAAW;EACtD,OAAO,cAAc;EACrB,SAAS,cAAc;EACvB,aAAa,cAAc;CAC5B,EAAC;AAEF,OAAM,gCAAU,YAAY,UAAU;AACtC,QAAO,KAAK,+BAA+B,oBAAoB,EAAE;AAEjE,QAAO;EAAE;EAAY,eAAe,gBAAgB;CAAQ;AAC7D;AAED,eAAsB,eACpBC,UAA0B,CAAE,GACb;CACf,MAAM,SAAS;AAEf,KAAI;EACF,MAAM,SAAS,MAAM,0BAAW,QAAQ,IAAI;AAG5C,OAAK,OAAO,QACV,QAAO,UAAU,EAAE,SAAS,KAAM;EAGpC,MAAM,SAAS,MAAM,gBAAgB,OAAO;AAE5C,MAAI,OACF,QAAO,KAAK,QAAQ,OAAO,cAAc,YAAY;CAExD,SAAQ,OAAO;AACd,QAAM,IAAI,OAAO,6BAA8B,MAAgB,QAAQ;CACxE;AACF"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-DG6xNQMH.cjs";
|
|
2
|
-
|
|
3
|
-
//#region src/init/generators/package.d.ts
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Generate package.json with dependencies based on template and options
|
|
7
|
-
*/
|
|
8
|
-
declare function generatePackageJson(options: TemplateOptions, template: TemplateConfig): GeneratedFile[];
|
|
9
|
-
//#endregion
|
|
10
|
-
export { generatePackageJson };
|
|
11
|
-
//# sourceMappingURL=package-6h-7QfJZ.d.cts.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { GeneratedFile, TemplateConfig, TemplateOptions } from "./index-DZgrOOOW.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/init/generators/package.d.ts
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Generate package.json with dependencies based on template and options
|
|
7
|
-
*/
|
|
8
|
-
declare function generatePackageJson(options: TemplateOptions, template: TemplateConfig): GeneratedFile[];
|
|
9
|
-
//#endregion
|
|
10
|
-
export { generatePackageJson };
|
|
11
|
-
//# sourceMappingURL=package-BCe_KvGv.d.mts.map
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { OPENAPI_OUTPUT_PATH } from "./templates-C0EMmhwb.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/init/generators/package.ts
|
|
4
|
-
/**
|
|
5
|
-
* Generate package.json with dependencies based on template and options
|
|
6
|
-
*/
|
|
7
|
-
function generatePackageJson(options, template) {
|
|
8
|
-
const { name, telescope, database, monorepo } = options;
|
|
9
|
-
const dependencies = { ...template.dependencies };
|
|
10
|
-
const devDependencies = { ...template.devDependencies };
|
|
11
|
-
const scripts = { ...template.scripts };
|
|
12
|
-
if (telescope) dependencies["@geekmidas/telescope"] = "workspace:*";
|
|
13
|
-
if (database) {
|
|
14
|
-
dependencies["@geekmidas/db"] = "workspace:*";
|
|
15
|
-
dependencies["kysely"] = "~0.28.2";
|
|
16
|
-
dependencies["pg"] = "~8.16.0";
|
|
17
|
-
devDependencies["@types/pg"] = "~8.15.0";
|
|
18
|
-
}
|
|
19
|
-
dependencies["zod"] = "~4.1.0";
|
|
20
|
-
if (monorepo) {
|
|
21
|
-
delete devDependencies["@biomejs/biome"];
|
|
22
|
-
delete devDependencies["turbo"];
|
|
23
|
-
delete scripts["lint"];
|
|
24
|
-
delete scripts["fmt"];
|
|
25
|
-
delete scripts["fmt:check"];
|
|
26
|
-
dependencies[`@${name}/models`] = "workspace:*";
|
|
27
|
-
delete dependencies["zod"];
|
|
28
|
-
}
|
|
29
|
-
const sortObject = (obj) => Object.fromEntries(Object.entries(obj).sort(([a], [b]) => a.localeCompare(b)));
|
|
30
|
-
let packageName = name;
|
|
31
|
-
if (monorepo && options.apiPath) {
|
|
32
|
-
const pathParts = options.apiPath.split("/");
|
|
33
|
-
const appName = pathParts[pathParts.length - 1] || "api";
|
|
34
|
-
packageName = `@${name}/${appName}`;
|
|
35
|
-
}
|
|
36
|
-
const packageJson = {
|
|
37
|
-
name: packageName,
|
|
38
|
-
version: "0.0.1",
|
|
39
|
-
private: true,
|
|
40
|
-
type: "module",
|
|
41
|
-
exports: { "./client": {
|
|
42
|
-
types: OPENAPI_OUTPUT_PATH,
|
|
43
|
-
import: OPENAPI_OUTPUT_PATH
|
|
44
|
-
} },
|
|
45
|
-
scripts,
|
|
46
|
-
dependencies: sortObject(dependencies),
|
|
47
|
-
devDependencies: sortObject(devDependencies)
|
|
48
|
-
};
|
|
49
|
-
return [{
|
|
50
|
-
path: "package.json",
|
|
51
|
-
content: JSON.stringify(packageJson, null, 2) + "\n"
|
|
52
|
-
}];
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
//#endregion
|
|
56
|
-
export { generatePackageJson };
|
|
57
|
-
//# sourceMappingURL=package-C3If80n1.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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,62 +0,0 @@
|
|
|
1
|
-
const require_templates = require('./templates-CbgQ9dw0.cjs');
|
|
2
|
-
|
|
3
|
-
//#region src/init/generators/package.ts
|
|
4
|
-
/**
|
|
5
|
-
* Generate package.json with dependencies based on template and options
|
|
6
|
-
*/
|
|
7
|
-
function generatePackageJson(options, template) {
|
|
8
|
-
const { name, telescope, database, monorepo } = options;
|
|
9
|
-
const dependencies = { ...template.dependencies };
|
|
10
|
-
const devDependencies = { ...template.devDependencies };
|
|
11
|
-
const scripts = { ...template.scripts };
|
|
12
|
-
if (telescope) dependencies["@geekmidas/telescope"] = "workspace:*";
|
|
13
|
-
if (database) {
|
|
14
|
-
dependencies["@geekmidas/db"] = "workspace:*";
|
|
15
|
-
dependencies["kysely"] = "~0.28.2";
|
|
16
|
-
dependencies["pg"] = "~8.16.0";
|
|
17
|
-
devDependencies["@types/pg"] = "~8.15.0";
|
|
18
|
-
}
|
|
19
|
-
dependencies["zod"] = "~4.1.0";
|
|
20
|
-
if (monorepo) {
|
|
21
|
-
delete devDependencies["@biomejs/biome"];
|
|
22
|
-
delete devDependencies["turbo"];
|
|
23
|
-
delete scripts["lint"];
|
|
24
|
-
delete scripts["fmt"];
|
|
25
|
-
delete scripts["fmt:check"];
|
|
26
|
-
dependencies[`@${name}/models`] = "workspace:*";
|
|
27
|
-
delete dependencies["zod"];
|
|
28
|
-
}
|
|
29
|
-
const sortObject = (obj) => Object.fromEntries(Object.entries(obj).sort(([a], [b]) => a.localeCompare(b)));
|
|
30
|
-
let packageName = name;
|
|
31
|
-
if (monorepo && options.apiPath) {
|
|
32
|
-
const pathParts = options.apiPath.split("/");
|
|
33
|
-
const appName = pathParts[pathParts.length - 1] || "api";
|
|
34
|
-
packageName = `@${name}/${appName}`;
|
|
35
|
-
}
|
|
36
|
-
const packageJson = {
|
|
37
|
-
name: packageName,
|
|
38
|
-
version: "0.0.1",
|
|
39
|
-
private: true,
|
|
40
|
-
type: "module",
|
|
41
|
-
exports: { "./client": {
|
|
42
|
-
types: require_templates.OPENAPI_OUTPUT_PATH,
|
|
43
|
-
import: require_templates.OPENAPI_OUTPUT_PATH
|
|
44
|
-
} },
|
|
45
|
-
scripts,
|
|
46
|
-
dependencies: sortObject(dependencies),
|
|
47
|
-
devDependencies: sortObject(devDependencies)
|
|
48
|
-
};
|
|
49
|
-
return [{
|
|
50
|
-
path: "package.json",
|
|
51
|
-
content: JSON.stringify(packageJson, null, 2) + "\n"
|
|
52
|
-
}];
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
//#endregion
|
|
56
|
-
Object.defineProperty(exports, 'generatePackageJson', {
|
|
57
|
-
enumerable: true,
|
|
58
|
-
get: function () {
|
|
59
|
-
return generatePackageJson;
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
//# sourceMappingURL=package-Dk8IMBOB.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
//#region src/build/providerResolver.ts
|
|
2
|
-
/**
|
|
3
|
-
* Resolves provider configuration from the new simplified system
|
|
4
|
-
* to the internal legacy format for backward compatibility
|
|
5
|
-
*/
|
|
6
|
-
function resolveProviders(config, options) {
|
|
7
|
-
const providers = [];
|
|
8
|
-
let enableOpenApi = options.enableOpenApi || false;
|
|
9
|
-
if (options.providers) return {
|
|
10
|
-
providers: options.providers,
|
|
11
|
-
enableOpenApi
|
|
12
|
-
};
|
|
13
|
-
if (options.provider) {
|
|
14
|
-
const resolvedProviders = resolveMainProvider(options.provider, config.providers);
|
|
15
|
-
providers.push(...resolvedProviders.providers);
|
|
16
|
-
enableOpenApi = resolvedProviders.enableOpenApi || enableOpenApi;
|
|
17
|
-
} else if (config.providers) {
|
|
18
|
-
const resolvedProviders = resolveAllConfiguredProviders(config.providers);
|
|
19
|
-
providers.push(...resolvedProviders.providers);
|
|
20
|
-
enableOpenApi = resolvedProviders.enableOpenApi || enableOpenApi;
|
|
21
|
-
} else providers.push("aws-apigatewayv2", "aws-lambda");
|
|
22
|
-
return {
|
|
23
|
-
providers: [...new Set(providers)],
|
|
24
|
-
enableOpenApi
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
function resolveMainProvider(mainProvider, providersConfig) {
|
|
28
|
-
const providers = [];
|
|
29
|
-
let enableOpenApi = false;
|
|
30
|
-
if (mainProvider === "aws") {
|
|
31
|
-
const awsConfig = providersConfig?.aws;
|
|
32
|
-
if (awsConfig?.apiGateway) {
|
|
33
|
-
if (isEnabled(awsConfig.apiGateway.v1)) providers.push("aws-apigatewayv1");
|
|
34
|
-
if (isEnabled(awsConfig.apiGateway.v2)) providers.push("aws-apigatewayv2");
|
|
35
|
-
} else providers.push("aws-apigatewayv2");
|
|
36
|
-
if (awsConfig?.lambda) {
|
|
37
|
-
if (isEnabled(awsConfig.lambda.functions) || isEnabled(awsConfig.lambda.crons)) providers.push("aws-lambda");
|
|
38
|
-
} else providers.push("aws-lambda");
|
|
39
|
-
} else if (mainProvider === "server") {
|
|
40
|
-
providers.push("server");
|
|
41
|
-
const serverConfig = providersConfig?.server;
|
|
42
|
-
if (typeof serverConfig === "object" && serverConfig?.enableOpenApi) enableOpenApi = true;
|
|
43
|
-
}
|
|
44
|
-
return {
|
|
45
|
-
providers,
|
|
46
|
-
enableOpenApi
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
function resolveAllConfiguredProviders(providersConfig) {
|
|
50
|
-
const providers = [];
|
|
51
|
-
let enableOpenApi = false;
|
|
52
|
-
if (providersConfig.aws) {
|
|
53
|
-
const awsProviders = resolveMainProvider("aws", providersConfig);
|
|
54
|
-
providers.push(...awsProviders.providers);
|
|
55
|
-
}
|
|
56
|
-
if (providersConfig.server && isEnabled(providersConfig.server)) {
|
|
57
|
-
providers.push("server");
|
|
58
|
-
if (typeof providersConfig.server === "object" && providersConfig.server.enableOpenApi) enableOpenApi = true;
|
|
59
|
-
}
|
|
60
|
-
return {
|
|
61
|
-
providers,
|
|
62
|
-
enableOpenApi
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
function isEnabled(config) {
|
|
66
|
-
if (config === void 0) return false;
|
|
67
|
-
if (typeof config === "boolean") return config;
|
|
68
|
-
return config.enabled !== false;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Gets configuration for a specific AWS service
|
|
72
|
-
*/
|
|
73
|
-
function getAWSServiceConfig(config, service, subService) {
|
|
74
|
-
const awsConfig = config.providers?.aws;
|
|
75
|
-
if (!awsConfig) return void 0;
|
|
76
|
-
if (service === "apiGateway" && awsConfig.apiGateway) {
|
|
77
|
-
const apiConfig = subService ? awsConfig.apiGateway[subService] : void 0;
|
|
78
|
-
return typeof apiConfig === "object" ? apiConfig : void 0;
|
|
79
|
-
}
|
|
80
|
-
if (service === "lambda" && awsConfig.lambda) {
|
|
81
|
-
const lambdaConfig = subService ? awsConfig.lambda[subService] : void 0;
|
|
82
|
-
return typeof lambdaConfig === "object" ? lambdaConfig : void 0;
|
|
83
|
-
}
|
|
84
|
-
return void 0;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Gets server configuration
|
|
88
|
-
*/
|
|
89
|
-
function getServerConfig(config) {
|
|
90
|
-
const serverConfig = config.providers?.server;
|
|
91
|
-
return typeof serverConfig === "object" ? serverConfig : void 0;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
//#endregion
|
|
95
|
-
export { getAWSServiceConfig, getServerConfig, resolveProviders };
|
|
96
|
-
//# sourceMappingURL=providerResolver-DEVKngbC.mjs.map
|