@platformatic/generators 1.21.1 → 1.22.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/index.d.ts +4 -5
- package/index.js +1 -2
- package/lib/base-generator.d.ts +8 -2
- package/lib/base-generator.js +35 -18
- package/lib/create-stackable-cli.js +56 -64
- package/lib/create-stackable-files.js +12 -14
- package/lib/stackable-generator.js +12 -12
- package/lib/utils.d.ts +0 -2
- package/lib/utils.js +0 -19
- package/package.json +1 -1
- package/test/utils.test.js +9 -38
package/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { BaseGenerator } from
|
|
2
|
-
import { generateTests } from
|
|
3
|
-
|
|
1
|
+
import { BaseGenerator } from './lib/base-generator'
|
|
2
|
+
import { generateTests } from './lib/create-plugin'
|
|
3
|
+
|
|
4
4
|
export {
|
|
5
|
-
addPrefixToEnv,
|
|
6
5
|
BaseGenerator,
|
|
7
|
-
generateTests
|
|
6
|
+
generateTests
|
|
8
7
|
}
|
package/index.js
CHANGED
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
const { BaseGenerator } = require('./lib/base-generator')
|
|
4
4
|
const { StackableGenerator } = require('./lib/stackable-generator')
|
|
5
5
|
const { generateTests } = require('./lib/create-plugin')
|
|
6
|
-
|
|
6
|
+
|
|
7
7
|
module.exports = {
|
|
8
|
-
addPrefixToEnv,
|
|
9
8
|
BaseGenerator,
|
|
10
9
|
StackableGenerator,
|
|
11
10
|
generateTests
|
package/lib/base-generator.d.ts
CHANGED
|
@@ -7,8 +7,9 @@ export namespace BaseGenerator {
|
|
|
7
7
|
inquirer?: object
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
export type EnvVarValue = string | number | boolean
|
|
10
11
|
export type Env = {
|
|
11
|
-
[key: string]:
|
|
12
|
+
[key: string]: EnvVarValue
|
|
12
13
|
}
|
|
13
14
|
type KeyValue = {
|
|
14
15
|
[key: string]: string | number | undefined | null | boolean | object
|
|
@@ -80,7 +81,12 @@ export namespace BaseGenerator {
|
|
|
80
81
|
constructor(opts?: BaseGeneratorOptions)
|
|
81
82
|
|
|
82
83
|
setConfig(config?: BaseGeneratorConfig): void
|
|
83
|
-
|
|
84
|
+
|
|
85
|
+
getEnvVarName (envVarName: string): string
|
|
86
|
+
addEnvVars (envVars: Env): void
|
|
87
|
+
addEnvVar (envVarName: string, envVarValue: EnvVarValue): void
|
|
88
|
+
getEnvVar (envVarName: string): EnvVarValue
|
|
89
|
+
setEnvVars(env?: Env): void
|
|
84
90
|
|
|
85
91
|
getDefaultConfig(): JSONValue
|
|
86
92
|
getDefaultEnv(): Env
|
package/lib/base-generator.js
CHANGED
|
@@ -4,7 +4,6 @@ const { readFile } = require('node:fs/promises')
|
|
|
4
4
|
const {
|
|
5
5
|
stripVersion,
|
|
6
6
|
convertServiceNameToPrefix,
|
|
7
|
-
addPrefixToEnv,
|
|
8
7
|
extractEnvVariablesFromText,
|
|
9
8
|
getPackageConfigurationObject,
|
|
10
9
|
PLT_ROOT,
|
|
@@ -76,7 +75,7 @@ class BaseGenerator extends FileGenerator {
|
|
|
76
75
|
for (const field of fields) {
|
|
77
76
|
if (shouldHandleConfigField(field)) {
|
|
78
77
|
if (field.var) {
|
|
79
|
-
this.
|
|
78
|
+
this.addEnvVar(field.var, field.value)
|
|
80
79
|
}
|
|
81
80
|
if (field.configValue) {
|
|
82
81
|
this.config[field.configValue] = field.value
|
|
@@ -89,14 +88,39 @@ class BaseGenerator extends FileGenerator {
|
|
|
89
88
|
return {}
|
|
90
89
|
}
|
|
91
90
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
91
|
+
getEnvVarName (envVarName) {
|
|
92
|
+
const envVarPrefix = 'PLT_' + this.config.envPrefix + '_'
|
|
93
|
+
if (this.config.isRuntimeContext && !envVarName.startsWith(envVarPrefix)) {
|
|
94
|
+
if (envVarName.startsWith('PLT_')) {
|
|
95
|
+
return envVarName.replace('PLT_', envVarPrefix)
|
|
96
|
+
}
|
|
97
|
+
return envVarPrefix + envVarName
|
|
98
|
+
}
|
|
99
|
+
return envVarName
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
addEnvVars (envVars) {
|
|
103
|
+
for (const envVarName of Object.keys(envVars)) {
|
|
104
|
+
const envVarValue = envVars[envVarName]
|
|
105
|
+
this.addEnvVar(envVarName, envVarValue)
|
|
97
106
|
}
|
|
98
107
|
}
|
|
99
108
|
|
|
109
|
+
addEnvVar (envVarName, envVarValue) {
|
|
110
|
+
envVarName = this.getEnvVarName(envVarName)
|
|
111
|
+
this.config.env[envVarName] = envVarValue
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
getEnvVar (envVarName) {
|
|
115
|
+
envVarName = this.getEnvVarName(envVarName)
|
|
116
|
+
return this.config.env[envVarName]
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
setEnvVars (envVars) {
|
|
120
|
+
this.config.env = {}
|
|
121
|
+
this.addEnvVars(envVars)
|
|
122
|
+
}
|
|
123
|
+
|
|
100
124
|
setConfig (config) {
|
|
101
125
|
if (!config) {
|
|
102
126
|
this.config = this.getDefaultConfig()
|
|
@@ -116,10 +140,8 @@ class BaseGenerator extends FileGenerator {
|
|
|
116
140
|
if (this.config.serviceName && !this.config.envPrefix) {
|
|
117
141
|
this.config.envPrefix = convertServiceNameToPrefix(this.config.serviceName)
|
|
118
142
|
}
|
|
119
|
-
|
|
120
|
-
// modify env
|
|
121
|
-
this.config.env = addPrefixToEnv(this.config.env, this.config.envPrefix)
|
|
122
143
|
}
|
|
144
|
+
this.setEnvVars(this.config.env)
|
|
123
145
|
|
|
124
146
|
if (this.config.targetDirectory) {
|
|
125
147
|
this.targetDirectory = this.config.targetDirectory
|
|
@@ -213,8 +235,8 @@ class BaseGenerator extends FileGenerator {
|
|
|
213
235
|
checkEnvVariablesInConfigFile () {
|
|
214
236
|
const excludedEnvs = [PLT_ROOT]
|
|
215
237
|
const configFileName = 'platformatic.json'
|
|
216
|
-
const
|
|
217
|
-
const envVars = extractEnvVariablesFromText(
|
|
238
|
+
const fileObject = this.getFileObject(configFileName)
|
|
239
|
+
const envVars = extractEnvVariablesFromText(fileObject.contents)
|
|
218
240
|
const envKeys = Object.keys(this.config.env)
|
|
219
241
|
if (envVars.length > 0) {
|
|
220
242
|
for (const ev of envVars) {
|
|
@@ -298,12 +320,7 @@ class BaseGenerator extends FileGenerator {
|
|
|
298
320
|
Object.entries(packageConfigOutput.env).forEach((kv) => {
|
|
299
321
|
envForPackages[kv[0]] = kv[1]
|
|
300
322
|
})
|
|
301
|
-
|
|
302
|
-
this.config.env = {
|
|
303
|
-
...this.config.env,
|
|
304
|
-
...addPrefixToEnv(envForPackages, this.config.envPrefix)
|
|
305
|
-
}
|
|
306
|
-
}
|
|
323
|
+
this.addEnvVars(envForPackages)
|
|
307
324
|
}
|
|
308
325
|
return {
|
|
309
326
|
name: packageDefinition.name,
|
|
@@ -6,11 +6,11 @@ function getJsStackableStartCli () {
|
|
|
6
6
|
return `\
|
|
7
7
|
#!/usr/bin/env node
|
|
8
8
|
'use strict'
|
|
9
|
-
|
|
9
|
+
|
|
10
10
|
const stackable = require('../index')
|
|
11
11
|
const { start } = require('@platformatic/service')
|
|
12
12
|
const { printAndExitLoadConfigError } = require('@platformatic/config')
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
start(stackable, process.argv.splice(2)).catch(printAndExitLoadConfigError)
|
|
15
15
|
`
|
|
16
16
|
}
|
|
@@ -32,48 +32,44 @@ function getJsStackableCreateCli (stackableName) {
|
|
|
32
32
|
'use strict'
|
|
33
33
|
|
|
34
34
|
const { join } = require('node:path')
|
|
35
|
-
const
|
|
36
|
-
const pretty = require('pino-pretty')
|
|
37
|
-
const minimist = require('minimist')
|
|
35
|
+
const { parseArgs } = require('node:util')
|
|
38
36
|
const { Generator } = require('../lib/generator')
|
|
39
|
-
|
|
37
|
+
|
|
40
38
|
async function execute () {
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
git: false,
|
|
56
|
-
install: true
|
|
39
|
+
const args = parseArgs({
|
|
40
|
+
args: process.argv.slice(2),
|
|
41
|
+
options: {
|
|
42
|
+
dir: {
|
|
43
|
+
type: 'string',
|
|
44
|
+
default: join(process.cwd(), '${kebabCase(stackableName + '-app')}')
|
|
45
|
+
},
|
|
46
|
+
port: { type: 'string', default: '3042' },
|
|
47
|
+
hostname: { type: 'string', default: '0.0.0.0' },
|
|
48
|
+
plugins: { type: 'boolean', default: true },
|
|
49
|
+
tests: { type: 'boolean', default: true },
|
|
50
|
+
typescript: { type: 'boolean', default: false },
|
|
51
|
+
git: { type: 'boolean', default: false },
|
|
52
|
+
install: { type: 'boolean', default: true }
|
|
57
53
|
}
|
|
58
54
|
})
|
|
59
|
-
|
|
60
|
-
const generator = new Generator(
|
|
61
|
-
|
|
55
|
+
|
|
56
|
+
const generator = new Generator()
|
|
57
|
+
|
|
62
58
|
generator.setConfig({
|
|
63
|
-
port: args.port,
|
|
64
|
-
hostname: args.hostname,
|
|
65
|
-
|
|
66
|
-
tests: args.
|
|
67
|
-
typescript: args.typescript,
|
|
68
|
-
initGitRepository: args.git,
|
|
69
|
-
targetDirectory: args.dir
|
|
59
|
+
port: parseInt(args.values.port),
|
|
60
|
+
hostname: args.values.hostname,
|
|
61
|
+
plugins: args.values.plugins,
|
|
62
|
+
tests: args.values.tests,
|
|
63
|
+
typescript: args.values.typescript,
|
|
64
|
+
initGitRepository: args.values.git,
|
|
65
|
+
targetDirectory: args.values.dir
|
|
70
66
|
})
|
|
71
|
-
|
|
67
|
+
|
|
72
68
|
await generator.run()
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
|
|
70
|
+
console.log('Application created successfully! Run \`npm run start\` to start an application.')
|
|
75
71
|
}
|
|
76
|
-
|
|
72
|
+
|
|
77
73
|
execute()
|
|
78
74
|
`
|
|
79
75
|
}
|
|
@@ -82,46 +78,42 @@ function getTsStackableCreateCli (stackableName) {
|
|
|
82
78
|
return `\
|
|
83
79
|
#!/usr/bin/env node
|
|
84
80
|
import { join } from 'node:path'
|
|
85
|
-
import
|
|
86
|
-
import pretty from 'pino-pretty'
|
|
87
|
-
import minimist from 'minimist'
|
|
81
|
+
import { parseArgs } from 'node:util'
|
|
88
82
|
import { Generator } from '../lib/generator'
|
|
89
83
|
|
|
90
84
|
async function execute () {
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
git: false,
|
|
106
|
-
install: true
|
|
85
|
+
const args = parseArgs({
|
|
86
|
+
args: process.argv.slice(2),
|
|
87
|
+
options: {
|
|
88
|
+
dir: {
|
|
89
|
+
type: 'string',
|
|
90
|
+
default: join(process.cwd(), '${kebabCase(stackableName + '-app')}')
|
|
91
|
+
},
|
|
92
|
+
port: { type: 'string', default: '3042' },
|
|
93
|
+
hostname: { type: 'string', default: '0.0.0.0' },
|
|
94
|
+
plugins: { type: 'boolean', default: true },
|
|
95
|
+
tests: { type: 'boolean', default: true },
|
|
96
|
+
typescript: { type: 'boolean', default: false },
|
|
97
|
+
git: { type: 'boolean', default: false },
|
|
98
|
+
install: { type: 'boolean', default: true }
|
|
107
99
|
}
|
|
108
100
|
})
|
|
109
101
|
|
|
110
|
-
const generator = new Generator(
|
|
102
|
+
const generator = new Generator()
|
|
111
103
|
|
|
112
104
|
generator.setConfig({
|
|
113
|
-
port: args.port,
|
|
114
|
-
hostname: args.hostname,
|
|
115
|
-
|
|
116
|
-
tests: args.
|
|
117
|
-
typescript: args.typescript,
|
|
118
|
-
initGitRepository: args.git,
|
|
119
|
-
targetDirectory: args.dir
|
|
105
|
+
port: parseInt(args.values.port as string),
|
|
106
|
+
hostname: args.values.hostname,
|
|
107
|
+
plugins: args.values.plugins,
|
|
108
|
+
tests: args.values.tests,
|
|
109
|
+
typescript: args.values.typescript,
|
|
110
|
+
initGitRepository: args.values.git,
|
|
111
|
+
targetDirectory: args.values.dir
|
|
120
112
|
})
|
|
121
113
|
|
|
122
114
|
await generator.run()
|
|
123
115
|
|
|
124
|
-
|
|
116
|
+
console.log('Application created successfully! Run \`npm run start\` to start an application.')
|
|
125
117
|
}
|
|
126
118
|
|
|
127
119
|
execute()
|
|
@@ -28,7 +28,7 @@ stackable.configManagerConfig = {
|
|
|
28
28
|
allErrors: true,
|
|
29
29
|
strict: false
|
|
30
30
|
},
|
|
31
|
-
transformConfig
|
|
31
|
+
async transformConfig () {}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
// break Fastify encapsulation
|
|
@@ -67,7 +67,7 @@ stackable.configManagerConfig = {
|
|
|
67
67
|
allErrors: true,
|
|
68
68
|
strict: false
|
|
69
69
|
},
|
|
70
|
-
transformConfig
|
|
70
|
+
async transformConfig () {}
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
// break Fastify encapsulation
|
|
@@ -181,7 +181,7 @@ class ${stackableGeneratorType} extends ServiceGenerator {
|
|
|
181
181
|
$schema: './stackable.schema.json',
|
|
182
182
|
module: packageJson.name,
|
|
183
183
|
greeting: {
|
|
184
|
-
text: '
|
|
184
|
+
text: \`{\${this.getEnvVarName('PLT_GREETING_TEXT')}}\`
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
187
|
return Object.assign({}, baseConfig, config)
|
|
@@ -190,10 +190,9 @@ class ${stackableGeneratorType} extends ServiceGenerator {
|
|
|
190
190
|
async _beforePrepare () {
|
|
191
191
|
super._beforePrepare()
|
|
192
192
|
|
|
193
|
-
this.
|
|
194
|
-
PLT_GREETING_TEXT: this.config.greeting ?? 'Hello world!'
|
|
195
|
-
|
|
196
|
-
}
|
|
193
|
+
this.addEnvVars({
|
|
194
|
+
PLT_GREETING_TEXT: this.config.greeting ?? 'Hello world!'
|
|
195
|
+
})
|
|
197
196
|
|
|
198
197
|
const packageJson = await this.getStackablePackageJson()
|
|
199
198
|
|
|
@@ -226,7 +225,7 @@ class ${stackableGeneratorType} extends ServiceGenerator {
|
|
|
226
225
|
if (!packageJson.name) {
|
|
227
226
|
throw new Error('Missing package name in package.json')
|
|
228
227
|
}
|
|
229
|
-
|
|
228
|
+
|
|
230
229
|
if (!packageJson.version) {
|
|
231
230
|
throw new Error('Missing package version in package.json')
|
|
232
231
|
}
|
|
@@ -290,7 +289,7 @@ class ${stackableGeneratorType} extends ServiceGenerator {
|
|
|
290
289
|
$schema: './stackable.schema.json',
|
|
291
290
|
module: packageJson.name,
|
|
292
291
|
greeting: {
|
|
293
|
-
text: '
|
|
292
|
+
text: \`{\${this.getEnvVarName('PLT_GREETING_TEXT')}}\`
|
|
294
293
|
}
|
|
295
294
|
}
|
|
296
295
|
return Object.assign({}, baseConfig, config)
|
|
@@ -299,10 +298,9 @@ class ${stackableGeneratorType} extends ServiceGenerator {
|
|
|
299
298
|
async _beforePrepare () {
|
|
300
299
|
super._beforePrepare()
|
|
301
300
|
|
|
302
|
-
this.
|
|
303
|
-
PLT_GREETING_TEXT: this.config.greeting ?? 'Hello world!'
|
|
304
|
-
|
|
305
|
-
}
|
|
301
|
+
this.addEnvVars({
|
|
302
|
+
PLT_GREETING_TEXT: this.config.greeting ?? 'Hello world!'
|
|
303
|
+
})
|
|
306
304
|
|
|
307
305
|
const packageJson = await this.getStackablePackageJson()
|
|
308
306
|
|
|
@@ -335,7 +333,7 @@ class ${stackableGeneratorType} extends ServiceGenerator {
|
|
|
335
333
|
if (!packageJson.name) {
|
|
336
334
|
throw new Error('Missing package name in package.json')
|
|
337
335
|
}
|
|
338
|
-
|
|
336
|
+
|
|
339
337
|
if (!packageJson.version) {
|
|
340
338
|
throw new Error('Missing package version in package.json')
|
|
341
339
|
}
|
|
@@ -205,11 +205,7 @@ class StackableGenerator extends FileGenerator {
|
|
|
205
205
|
const dependencies = {
|
|
206
206
|
'@platformatic/config': `^${this.platformaticVersion}`,
|
|
207
207
|
'@platformatic/service': `^${this.platformaticVersion}`,
|
|
208
|
-
'json-schema-to-typescript': '^13.0.0'
|
|
209
|
-
pino: '^8.0.0',
|
|
210
|
-
'pino-pretty': '^10.0.0',
|
|
211
|
-
minimist: '^1.2.0',
|
|
212
|
-
platformatic: `^${this.platformaticVersion}`
|
|
208
|
+
'json-schema-to-typescript': '^13.0.0'
|
|
213
209
|
}
|
|
214
210
|
|
|
215
211
|
const devDependencies = {
|
|
@@ -237,9 +233,11 @@ class StackableGenerator extends FileGenerator {
|
|
|
237
233
|
'build:config': 'node ./dist/lib/schema.js | json2ts > config.d.ts',
|
|
238
234
|
clean: 'rm -fr ./dist'
|
|
239
235
|
},
|
|
236
|
+
engines: {
|
|
237
|
+
node: '^18.8.0 || >=20.6.0'
|
|
238
|
+
},
|
|
240
239
|
devDependencies: {
|
|
241
240
|
...devDependencies,
|
|
242
|
-
'@types/minimist': '^1.2.5',
|
|
243
241
|
typescript: typescriptVersion,
|
|
244
242
|
...this.config.devDependencies
|
|
245
243
|
},
|
|
@@ -248,8 +246,8 @@ class StackableGenerator extends FileGenerator {
|
|
|
248
246
|
'@platformatic/generators': `^${this.platformaticVersion}`,
|
|
249
247
|
...this.config.dependencies
|
|
250
248
|
},
|
|
251
|
-
|
|
252
|
-
|
|
249
|
+
overrides: {
|
|
250
|
+
minimatch: '^5.0.0'
|
|
253
251
|
}
|
|
254
252
|
}
|
|
255
253
|
}
|
|
@@ -263,18 +261,20 @@ class StackableGenerator extends FileGenerator {
|
|
|
263
261
|
[startStackableCommand]: './cli/start.js'
|
|
264
262
|
},
|
|
265
263
|
scripts: {
|
|
266
|
-
'build:config': 'node lib/schema.js | json2ts > config.d.ts'
|
|
264
|
+
'build:config': 'node lib/schema.js | json2ts > config.d.ts',
|
|
265
|
+
lint: 'standard'
|
|
266
|
+
},
|
|
267
|
+
engines: {
|
|
268
|
+
node: '^18.8.0 || >=20.6.0'
|
|
267
269
|
},
|
|
268
270
|
devDependencies: {
|
|
269
271
|
...devDependencies,
|
|
272
|
+
standard: '^17.0.0',
|
|
270
273
|
...this.config.devDependencies
|
|
271
274
|
},
|
|
272
275
|
dependencies: {
|
|
273
276
|
...dependencies,
|
|
274
277
|
...this.config.dependencies
|
|
275
|
-
},
|
|
276
|
-
engines: {
|
|
277
|
-
node: '^18.8.0 || >=20.6.0'
|
|
278
278
|
}
|
|
279
279
|
}
|
|
280
280
|
}
|
package/lib/utils.d.ts
CHANGED
|
@@ -12,8 +12,6 @@ export namespace GeneratorUtils {
|
|
|
12
12
|
export function safeMkdir(dir: string): Promise<void>
|
|
13
13
|
export function stripVersion(version: string): string
|
|
14
14
|
export function convertServiceNameToPrefix(serviceName: string): string
|
|
15
|
-
export function addPrefixToEnv(env: Env, prefix: string): Env
|
|
16
|
-
export function addPrefixToEnv(input: string, prefix: string): string
|
|
17
15
|
export function envObjectToString(env: Env): string
|
|
18
16
|
export function extractEnvVariablesFromText(text: string): string[]
|
|
19
17
|
export function getPackageConfigurationObject(config: PackageConfiguration[]): object
|
package/lib/utils.js
CHANGED
|
@@ -46,24 +46,6 @@ function addPrefixToString (input, prefix) {
|
|
|
46
46
|
return input
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
function addPrefixToEnv (env, prefix) {
|
|
50
|
-
const newEnv = {}
|
|
51
|
-
if (!prefix) {
|
|
52
|
-
// return original env
|
|
53
|
-
return env
|
|
54
|
-
}
|
|
55
|
-
const prefixRegExp = new RegExp(`^PLT_${prefix}_`)
|
|
56
|
-
Object.entries(env).forEach((kv) => {
|
|
57
|
-
if (!kv[0].match(prefixRegExp)) {
|
|
58
|
-
// strip PLT_ if needed
|
|
59
|
-
kv[0] = kv[0].replace(/^PLT_/, '')
|
|
60
|
-
newEnv[`PLT_${prefix}_${kv[0]}`] = kv[1]
|
|
61
|
-
} else {
|
|
62
|
-
newEnv[kv[0]] = kv[1]
|
|
63
|
-
}
|
|
64
|
-
})
|
|
65
|
-
return newEnv
|
|
66
|
-
}
|
|
67
49
|
|
|
68
50
|
function envObjectToString (env) {
|
|
69
51
|
const output = []
|
|
@@ -152,7 +134,6 @@ async function getLatestNpmVersion (pkg) {
|
|
|
152
134
|
}
|
|
153
135
|
|
|
154
136
|
module.exports = {
|
|
155
|
-
addPrefixToEnv,
|
|
156
137
|
addPrefixToString,
|
|
157
138
|
convertServiceNameToPrefix,
|
|
158
139
|
getPackageConfigurationObject,
|
package/package.json
CHANGED
package/test/utils.test.js
CHANGED
|
@@ -2,7 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
const { test, describe } = require('node:test')
|
|
4
4
|
const assert = require('node:assert')
|
|
5
|
-
const {
|
|
5
|
+
const {
|
|
6
|
+
stripVersion,
|
|
7
|
+
convertServiceNameToPrefix,
|
|
8
|
+
envObjectToString,
|
|
9
|
+
extractEnvVariablesFromText,
|
|
10
|
+
getPackageConfigurationObject,
|
|
11
|
+
addPrefixToString
|
|
12
|
+
} = require('../lib/utils')
|
|
6
13
|
|
|
7
14
|
describe('utils', () => {
|
|
8
15
|
describe('stripVersion', async () => {
|
|
@@ -33,42 +40,6 @@ describe('utils', () => {
|
|
|
33
40
|
})
|
|
34
41
|
})
|
|
35
42
|
|
|
36
|
-
describe('addPrefixToEnv', () => {
|
|
37
|
-
test('Should convert env and add prefix, if needed', async (t) => {
|
|
38
|
-
{
|
|
39
|
-
const testEnv = {
|
|
40
|
-
FOO: 'bar',
|
|
41
|
-
PLT_MY_SERVICE_NAME: 'service',
|
|
42
|
-
DATABASE_URL: 'foobar',
|
|
43
|
-
PLT_ANOTHER_VALUE: 'anotherValue'
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
assert.deepEqual(addPrefixToEnv(testEnv, 'MY_SERVICE'), {
|
|
47
|
-
PLT_MY_SERVICE_FOO: 'bar',
|
|
48
|
-
PLT_MY_SERVICE_NAME: 'service',
|
|
49
|
-
PLT_MY_SERVICE_DATABASE_URL: 'foobar',
|
|
50
|
-
PLT_MY_SERVICE_ANOTHER_VALUE: 'anotherValue'
|
|
51
|
-
})
|
|
52
|
-
}
|
|
53
|
-
{
|
|
54
|
-
// empty service name, return same env
|
|
55
|
-
const testEnv = {
|
|
56
|
-
FOO: 'bar',
|
|
57
|
-
PLT_MY_SERVICE_NAME: 'service',
|
|
58
|
-
DATABASE_URL: 'foobar',
|
|
59
|
-
PLT_ANOTHER_VALUE: 'anotherValue'
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
assert.deepEqual(addPrefixToEnv(testEnv, ''), {
|
|
63
|
-
FOO: 'bar',
|
|
64
|
-
PLT_MY_SERVICE_NAME: 'service',
|
|
65
|
-
DATABASE_URL: 'foobar',
|
|
66
|
-
PLT_ANOTHER_VALUE: 'anotherValue'
|
|
67
|
-
})
|
|
68
|
-
}
|
|
69
|
-
})
|
|
70
|
-
})
|
|
71
|
-
|
|
72
43
|
describe('envObjectToString', () => {
|
|
73
44
|
test('should convert env object to string', async () => {
|
|
74
45
|
const env = {
|
|
@@ -176,7 +147,7 @@ describe('utils', () => {
|
|
|
176
147
|
assert.fail()
|
|
177
148
|
} catch (err) {
|
|
178
149
|
assert.equal(err.code, 'PLT_GEN_WRONG_TYPE')
|
|
179
|
-
assert.equal(err.message,
|
|
150
|
+
assert.equal(err.message, "Invalid value type. Accepted values are 'string', 'number' and 'boolean', found 'object'.")
|
|
180
151
|
}
|
|
181
152
|
})
|
|
182
153
|
|