go-duck-cli 1.3.351 → 1.3.371
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/generators/config.js +6 -1
- package/generators/devops.js +1 -1
- package/generators/docs.js +1 -1
- package/generators/postman.js +1 -1
- package/generators/swagger.js +1 -1
- package/index.js +9 -1
- package/package.json +1 -1
package/generators/config.js
CHANGED
|
@@ -2,6 +2,11 @@ import fs from 'fs-extra';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import chalk from 'chalk';
|
|
4
4
|
|
|
5
|
+
const toKebabCase = (str) => {
|
|
6
|
+
if (!str) return '';
|
|
7
|
+
return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
|
|
8
|
+
};
|
|
9
|
+
|
|
5
10
|
export const generateConfigLoader = async (outputDir, configObj) => {
|
|
6
11
|
const configDir = path.join(outputDir, 'config');
|
|
7
12
|
await fs.ensureDir(configDir);
|
|
@@ -243,7 +248,7 @@ func LoadConfig() (*Config, error) {
|
|
|
243
248
|
// Default values
|
|
244
249
|
v.SetDefault("go-duck.server.rest.port", 8080)
|
|
245
250
|
v.SetDefault("go-duck.server.rest.protocol", "json")
|
|
246
|
-
v.SetDefault("go-duck.server.rest.api-path-prefix", "/${configObj.name || 'api'}/api")
|
|
251
|
+
v.SetDefault("go-duck.server.rest.api-path-prefix", "/${toKebabCase(configObj.name) || 'api'}/api")
|
|
247
252
|
v.SetDefault("go-duck.security.rate-limit.rps", 100.0)
|
|
248
253
|
v.SetDefault("go-duck.security.rate-limit.burst", 200)
|
|
249
254
|
v.SetDefault("go-duck.logging.datadog.enabled", false)
|
package/generators/devops.js
CHANGED
|
@@ -16,7 +16,7 @@ export const generateDeploymentArtifacts = async (config, projectRootDir) => {
|
|
|
16
16
|
const appName = config.name || 'go-duck';
|
|
17
17
|
const parts = appName.split(/[-_]/);
|
|
18
18
|
const shortName = (parts.length > 1 ? parts.map(w => w[0]).join('') : appName).substring(0, 10).toLowerCase() || 'goduck';
|
|
19
|
-
const appPort = config.server?.port || 8080;
|
|
19
|
+
const appPort = config.server?.rest?.port || 8080;
|
|
20
20
|
const keycloakHost = config.security?.['keycloak-host'] || 'http://localhost:8180';
|
|
21
21
|
const keycloakPort = keycloakHost.includes(':') ? keycloakHost.split(':').pop() : '8080';
|
|
22
22
|
|
package/generators/docs.js
CHANGED
|
@@ -72,7 +72,7 @@ export const generateDocumentation = async (config, entities, outputDir, enums =
|
|
|
72
72
|
entities: entities,
|
|
73
73
|
enums: enums,
|
|
74
74
|
openEntities: openEntities,
|
|
75
|
-
serverPort: config.server?.port || 8080,
|
|
75
|
+
serverPort: config.server?.rest?.port || 8080,
|
|
76
76
|
grpcPort: grpcPort,
|
|
77
77
|
mqttPort: mqttPort
|
|
78
78
|
};
|
package/generators/postman.js
CHANGED
|
@@ -18,7 +18,7 @@ export const generatePostmanCollection = async (config, entities, outputDir, ope
|
|
|
18
18
|
item: [],
|
|
19
19
|
variable: [
|
|
20
20
|
{ key: "host", value: "localhost", type: "string" },
|
|
21
|
-
{ key: "port", value: String(config.server?.port || 8080), type: "string" },
|
|
21
|
+
{ key: "port", value: String(config.server?.rest?.port || 8080), type: "string" },
|
|
22
22
|
{ key: "tenant", value: "tenant_1", type: "string" },
|
|
23
23
|
{ key: "token", value: "", type: "string" },
|
|
24
24
|
{ key: "keycloak_url", value: config.security?.['keycloak-host'] || "http://localhost:8180", type: "string" },
|
package/generators/swagger.js
CHANGED
|
@@ -17,7 +17,7 @@ export const generateSwaggerDocs = async (config, entities, outputDir, openEntit
|
|
|
17
17
|
description: `Generated documentation for ${config.name} microservice`
|
|
18
18
|
},
|
|
19
19
|
servers: [
|
|
20
|
-
{ url: `http://localhost:${config.server?.port || 8080}`, description: 'Local Development Server' }
|
|
20
|
+
{ url: `http://localhost:${config.server?.rest?.port || 8080}`, description: 'Local Development Server' }
|
|
21
21
|
],
|
|
22
22
|
paths: {},
|
|
23
23
|
components: {
|
package/index.js
CHANGED
|
@@ -875,13 +875,21 @@ const generateYAMLConfigs = async (config, outputDir) => {
|
|
|
875
875
|
delete cleanConfig.datasource['multitenancy-databases'];
|
|
876
876
|
}
|
|
877
877
|
|
|
878
|
+
const toKebabCase = (str) => {
|
|
879
|
+
if (!str) return '';
|
|
880
|
+
return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
|
|
881
|
+
};
|
|
882
|
+
|
|
883
|
+
const rawApiPrefix = cleanConfig.server?.rest?.['api-path-prefix'] || `/${cleanConfig.name || 'api'}/api`;
|
|
884
|
+
const kebabApiPrefix = rawApiPrefix.split('/').map(segment => toKebabCase(segment)).join('/');
|
|
885
|
+
|
|
878
886
|
const extendedConfig = {
|
|
879
887
|
...cleanConfig,
|
|
880
888
|
server: {
|
|
881
889
|
rest: {
|
|
882
890
|
port: cleanConfig.server?.rest?.port || cleanConfig.server?.port || 8080,
|
|
883
891
|
protocol: cleanConfig.server?.rest?.protocol || 'json',
|
|
884
|
-
'api-path-prefix':
|
|
892
|
+
'api-path-prefix': kebabApiPrefix
|
|
885
893
|
},
|
|
886
894
|
'read-timeout': cleanConfig.server?.['read-timeout'] || '30s',
|
|
887
895
|
'write-timeout': cleanConfig.server?.['write-timeout'] || '30s',
|