@platformatic/service 2.0.0-alpha.2 → 2.0.0-alpha.21
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/config.d.ts +11 -2
- package/eslint.config.js +14 -0
- package/index.d.ts +19 -16
- package/index.js +55 -7
- package/index.test-d.ts +34 -31
- package/lib/compile.js +4 -4
- package/lib/create.mjs +7 -7
- package/lib/gen-schema.js +1 -1
- package/lib/gen-types.mjs +2 -2
- package/lib/generator/service-generator.js +16 -16
- package/lib/openapi-schema-defs.js +363 -363
- package/lib/plugins/graphql.js +2 -2
- package/lib/plugins/health-check.js +1 -1
- package/lib/plugins/metrics.js +23 -31
- package/lib/plugins/openapi.js +10 -10
- package/lib/plugins/plugins.js +13 -6
- package/lib/plugins/sandbox-wrapper.js +2 -2
- package/lib/plugins/typescript.js +3 -3
- package/lib/root-endpoint/index.js +2 -2
- package/lib/schema.js +148 -155
- package/lib/stackable.js +271 -0
- package/lib/start.js +64 -65
- package/lib/upgrade.js +1 -4
- package/lib/utils.js +13 -11
- package/lib/versions/0.16.0.js +7 -7
- package/lib/versions/2.0.0.js +11 -0
- package/lib/versions/from-zero-twenty-eight-to-will-see.js +3 -3
- package/lib/versions/no-allow-cycles.js +2 -2
- package/package.json +37 -51
- package/schema.json +30 -6
- package/service.mjs +7 -7
package/config.d.ts
CHANGED
|
@@ -31,7 +31,13 @@ export interface PlatformaticService {
|
|
|
31
31
|
logger?:
|
|
32
32
|
| boolean
|
|
33
33
|
| {
|
|
34
|
-
level
|
|
34
|
+
level: (
|
|
35
|
+
| ("fatal" | "error" | "warn" | "info" | "debug" | "trace" | "silent")
|
|
36
|
+
| {
|
|
37
|
+
[k: string]: unknown;
|
|
38
|
+
}
|
|
39
|
+
) &
|
|
40
|
+
string;
|
|
35
41
|
transport?:
|
|
36
42
|
| {
|
|
37
43
|
target?: string;
|
|
@@ -61,6 +67,9 @@ export interface PlatformaticService {
|
|
|
61
67
|
};
|
|
62
68
|
[k: string]: unknown;
|
|
63
69
|
};
|
|
70
|
+
loggerInstance?: {
|
|
71
|
+
[k: string]: unknown;
|
|
72
|
+
};
|
|
64
73
|
serializerOpts?: {
|
|
65
74
|
schema?: {
|
|
66
75
|
[k: string]: unknown;
|
|
@@ -151,7 +160,6 @@ export interface PlatformaticService {
|
|
|
151
160
|
defaultMetrics?: {
|
|
152
161
|
enabled: boolean;
|
|
153
162
|
};
|
|
154
|
-
prefix?: string;
|
|
155
163
|
auth?: {
|
|
156
164
|
username: string;
|
|
157
165
|
password: string;
|
|
@@ -173,6 +181,7 @@ export interface PlatformaticService {
|
|
|
173
181
|
| boolean
|
|
174
182
|
| string;
|
|
175
183
|
$schema?: string;
|
|
184
|
+
module?: string;
|
|
176
185
|
service?: {
|
|
177
186
|
openapi?:
|
|
178
187
|
| {
|
package/eslint.config.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const neostandard = require('neostandard')
|
|
4
|
+
|
|
5
|
+
module.exports = neostandard({
|
|
6
|
+
ts: true,
|
|
7
|
+
ignores: [
|
|
8
|
+
...neostandard.resolveIgnoresFromGitignore(),
|
|
9
|
+
'test/tmp/**/*',
|
|
10
|
+
'test/fixtures/*/dist/**/*',
|
|
11
|
+
'**/dist/*',
|
|
12
|
+
'fixtures/**/*',
|
|
13
|
+
],
|
|
14
|
+
})
|
package/index.d.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/triple-slash-reference */
|
|
2
1
|
/// <reference types="mercurius" />
|
|
3
2
|
/// <reference types="@fastify/swagger" />
|
|
4
3
|
import { FastifyInstance, FastifyBaseLogger } from 'fastify'
|
|
5
4
|
import ConfigManager from '@platformatic/config'
|
|
6
|
-
import type {
|
|
5
|
+
import type { ConfigManagerConfig } from '@platformatic/config'
|
|
6
|
+
import type { Stackable as _Stackable, StackableInterface } from '@platformatic/config'
|
|
7
7
|
import { BaseGenerator } from '@platformatic/generators'
|
|
8
8
|
import { PlatformaticService } from './config'
|
|
9
9
|
import type { JSONSchemaType } from 'ajv'
|
|
10
10
|
import { ServiceGenerator } from './lib/generator/service-generator'
|
|
11
11
|
|
|
12
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
13
12
|
export import Generator = ServiceGenerator.ServiceGenerator
|
|
14
13
|
|
|
15
14
|
export interface PlatformaticApp<T> {
|
|
@@ -28,19 +27,11 @@ declare module 'fastify' {
|
|
|
28
27
|
}
|
|
29
28
|
}
|
|
30
29
|
|
|
31
|
-
|
|
32
|
-
transformConfig: (this: ConfigManager<T>) => Promise<void>
|
|
33
|
-
schema: object
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export interface Stackable<ConfigType> {
|
|
37
|
-
(app: FastifyInstance, opts: object): Promise<void>
|
|
38
|
-
|
|
39
|
-
configType: string
|
|
40
|
-
configManagerConfig: ConfigManagerConfig<ConfigType>
|
|
41
|
-
schema: object
|
|
42
|
-
Generator?: new () => BaseGenerator.BaseGenerator
|
|
30
|
+
type DefaultGenerator = new () => BaseGenerator.BaseGenerator
|
|
43
31
|
|
|
32
|
+
export interface Stackable<ConfigType, Generator = DefaultGenerator> extends _Stackable<ConfigType> {
|
|
33
|
+
app: (app: FastifyInstance, opts: object) => Promise<void>
|
|
34
|
+
Generator?: Generator
|
|
44
35
|
version?: string
|
|
45
36
|
upgrade?: (config: any, version: string) => Promise<any>
|
|
46
37
|
transformConfig?: (config: any) => Promise<any>
|
|
@@ -54,9 +45,21 @@ interface TSCompiler {
|
|
|
54
45
|
}
|
|
55
46
|
|
|
56
47
|
export const schema: JSONSchemaType<PlatformaticServiceConfig>
|
|
48
|
+
export const configManagerConfig: ConfigManagerConfig<PlatformaticServiceConfig>
|
|
57
49
|
|
|
58
50
|
export declare const platformaticService: Stackable<PlatformaticServiceConfig>
|
|
59
51
|
|
|
60
|
-
export
|
|
52
|
+
export declare const app: (app: FastifyInstance, opts: object) => Promise<void>
|
|
61
53
|
|
|
62
54
|
export const tsCompiler: TSCompiler
|
|
55
|
+
|
|
56
|
+
type defaultExport = Stackable<PlatformaticServiceConfig> & {
|
|
57
|
+
buildServer: (opts: object, app?: object, ConfigManagerConstructor?: object) => Promise<FastifyInstance>,
|
|
58
|
+
start: <ConfigType>(app: Stackable<ConfigType>, args: string[]) => Promise<void>,
|
|
59
|
+
tsCompiler: TSCompiler,
|
|
60
|
+
schema: JSONSchemaType<PlatformaticServiceConfig>,
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function buildStackable (opts: { config: string }, app?: object): Promise<StackableInterface>
|
|
64
|
+
|
|
65
|
+
export default defaultExport
|
package/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
3
|
const { isKeyEnabled } = require('@platformatic/utils')
|
|
4
|
+
const { loadConfig, ConfigManager } = require('@platformatic/config')
|
|
4
5
|
const { readFile } = require('fs/promises')
|
|
5
6
|
const { join } = require('path')
|
|
6
7
|
|
|
@@ -20,6 +21,7 @@ const { schema } = require('./lib/schema')
|
|
|
20
21
|
const { addLoggerToTheConfig } = require('./lib/utils')
|
|
21
22
|
const { start, buildServer } = require('./lib/start')
|
|
22
23
|
const ServiceGenerator = require('./lib/generator/service-generator.js')
|
|
24
|
+
const { ServiceStackable } = require('./lib/stackable')
|
|
23
25
|
|
|
24
26
|
const { version } = require('./package.json')
|
|
25
27
|
|
|
@@ -39,7 +41,7 @@ async function platformaticService (app, opts) {
|
|
|
39
41
|
}
|
|
40
42
|
|
|
41
43
|
// This must be done before loading the plugins, so they can inspect if the
|
|
42
|
-
// openTelemetry
|
|
44
|
+
// openTelemetry decorator exists and then configure accordingly.
|
|
43
45
|
if (isKeyEnabled('telemetry', config)) {
|
|
44
46
|
await app.register(telemetry, config.telemetry)
|
|
45
47
|
}
|
|
@@ -78,9 +80,9 @@ async function platformaticService (app, opts) {
|
|
|
78
80
|
}
|
|
79
81
|
|
|
80
82
|
if (registerTsCompiler) {
|
|
81
|
-
app.register(setupTsCompiler)
|
|
83
|
+
app.register(setupTsCompiler, { context: opts.context })
|
|
82
84
|
}
|
|
83
|
-
app.register(loadPlugins)
|
|
85
|
+
app.register(loadPlugins, { context: opts.context })
|
|
84
86
|
}
|
|
85
87
|
|
|
86
88
|
if (isKeyEnabled('cors', config.server)) {
|
|
@@ -93,8 +95,8 @@ async function platformaticService (app, opts) {
|
|
|
93
95
|
}
|
|
94
96
|
|
|
95
97
|
platformaticService[Symbol.for('skip-override')] = true
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
|
|
99
|
+
module.exports.configManagerConfig = {
|
|
98
100
|
version,
|
|
99
101
|
schema,
|
|
100
102
|
allowToWatch: ['.env'],
|
|
@@ -135,16 +137,62 @@ platformaticService.configManagerConfig = {
|
|
|
135
137
|
upgrade
|
|
136
138
|
}
|
|
137
139
|
|
|
140
|
+
platformaticService.configType = 'service'
|
|
141
|
+
platformaticService.schema = schema
|
|
142
|
+
platformaticService.configManagerConfig = module.exports.configManagerConfig
|
|
143
|
+
|
|
138
144
|
function _buildServer (options, app) {
|
|
139
|
-
return buildServer(options, app ||
|
|
145
|
+
return buildServer(options, app || module.exports)
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
async function buildStackable (options, app = platformaticService, Stackable = ServiceStackable) {
|
|
149
|
+
let configManager = options.configManager
|
|
150
|
+
|
|
151
|
+
if (configManager === undefined) {
|
|
152
|
+
if (typeof options.config === 'string') {
|
|
153
|
+
;({ configManager } = await loadConfig(
|
|
154
|
+
{},
|
|
155
|
+
['-c', options.config],
|
|
156
|
+
app,
|
|
157
|
+
{
|
|
158
|
+
onMissingEnv: options.onMissingEnv,
|
|
159
|
+
context: options.context
|
|
160
|
+
},
|
|
161
|
+
true
|
|
162
|
+
))
|
|
163
|
+
} else {
|
|
164
|
+
configManager = new ConfigManager({
|
|
165
|
+
...app.configManagerConfig,
|
|
166
|
+
source: options.config,
|
|
167
|
+
dirname: options.context?.directory
|
|
168
|
+
})
|
|
169
|
+
await configManager.parseAndValidate()
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
const stackable = new Stackable({
|
|
174
|
+
init: () => buildServer({
|
|
175
|
+
configManager,
|
|
176
|
+
...configManager.current,
|
|
177
|
+
}, app, options.context),
|
|
178
|
+
stackable: app,
|
|
179
|
+
configManager,
|
|
180
|
+
context: options.context
|
|
181
|
+
})
|
|
182
|
+
|
|
183
|
+
return stackable
|
|
140
184
|
}
|
|
141
|
-
|
|
185
|
+
|
|
186
|
+
module.exports.configType = 'service'
|
|
187
|
+
module.exports.app = platformaticService
|
|
142
188
|
module.exports.schema = schema
|
|
143
189
|
module.exports.buildServer = _buildServer
|
|
190
|
+
module.exports.buildStackable = buildStackable
|
|
144
191
|
module.exports.schemas = require('./lib/schema')
|
|
145
192
|
module.exports.platformaticService = platformaticService
|
|
146
193
|
module.exports.addLoggerToTheConfig = addLoggerToTheConfig
|
|
147
194
|
module.exports.start = start
|
|
148
195
|
module.exports.Generator = ServiceGenerator
|
|
196
|
+
module.exports.ServiceStackable = ServiceStackable
|
|
149
197
|
module.exports.buildCompileCmd = buildCompileCmd
|
|
150
198
|
module.exports.extractTypeScriptCompileOptionsFromConfig = extractTypeScriptCompileOptionsFromConfig
|
package/index.test-d.ts
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
platformaticService,
|
|
13
13
|
Stackable,
|
|
14
14
|
Generator,
|
|
15
|
-
PlatformaticServiceConfig
|
|
15
|
+
PlatformaticServiceConfig,
|
|
16
16
|
} from '.'
|
|
17
17
|
|
|
18
18
|
declare module 'fastify' {
|
|
@@ -32,21 +32,23 @@ expectType<MercuriusPlugin>(server.graphql)
|
|
|
32
32
|
expectType<Promise<void>>(server.restart())
|
|
33
33
|
|
|
34
34
|
function buildStackable (): Stackable<PlatformaticServiceConfig> {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
const myApp: Stackable<PlatformaticServiceConfig> = {
|
|
36
|
+
async app (app: FastifyInstance, opts: object): Promise<void> {
|
|
37
|
+
await platformaticService.app(app, opts)
|
|
38
|
+
},
|
|
38
39
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
schema: platformaticService.schema,
|
|
41
|
+
configType: 'myApp',
|
|
42
|
+
configManagerConfig: {
|
|
43
|
+
version: platformaticService.configManagerConfig.version,
|
|
44
|
+
...platformaticService.configManagerConfig,
|
|
45
|
+
async transformConfig (this: ConfigManager<PlatformaticServiceConfig>) {
|
|
46
|
+
this.current.plugins = {
|
|
47
|
+
paths: [{
|
|
48
|
+
path: 'my-plugin',
|
|
49
|
+
}],
|
|
50
|
+
}
|
|
51
|
+
},
|
|
50
52
|
},
|
|
51
53
|
async upgrade (config: PlatformaticServiceConfig, version: string) {
|
|
52
54
|
const upgrade = platformaticService.configManagerConfig.upgrade
|
|
@@ -54,7 +56,7 @@ function buildStackable (): Stackable<PlatformaticServiceConfig> {
|
|
|
54
56
|
return upgrade.call(this, config, version)
|
|
55
57
|
}
|
|
56
58
|
return config
|
|
57
|
-
}
|
|
59
|
+
},
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
// configVersion is not part of ConfigManagerConfig
|
|
@@ -77,21 +79,22 @@ expectType<MyGenerator>(myGenerator)
|
|
|
77
79
|
expectType<BaseGenerator.BaseGeneratorConfig>(myGenerator.config)
|
|
78
80
|
|
|
79
81
|
function buildStackable2 (): Stackable<PlatformaticServiceConfig> {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
82
|
+
const myApp: Stackable<PlatformaticServiceConfig> = {
|
|
83
|
+
async app (app: FastifyInstance, opts: object): Promise<void> {
|
|
84
|
+
await platformaticService.app(app, opts)
|
|
85
|
+
},
|
|
86
|
+
schema: platformaticService.schema,
|
|
87
|
+
configType: 'myApp',
|
|
88
|
+
configManagerConfig: {
|
|
89
|
+
...platformaticService.configManagerConfig,
|
|
90
|
+
async transformConfig (this: ConfigManager<PlatformaticServiceConfig>) {
|
|
91
|
+
this.current.plugins = {
|
|
92
|
+
paths: [{
|
|
93
|
+
path: 'my-plugin',
|
|
94
|
+
}],
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
},
|
|
95
98
|
}
|
|
96
99
|
|
|
97
100
|
await start(myApp, ['--help'])
|
package/lib/compile.js
CHANGED
|
@@ -13,7 +13,7 @@ function buildCompileCmd (app) {
|
|
|
13
13
|
|
|
14
14
|
try {
|
|
15
15
|
const { configManager } = await loadConfig({}, _args, app, {
|
|
16
|
-
watch: false
|
|
16
|
+
watch: false,
|
|
17
17
|
})
|
|
18
18
|
await configManager.parseAndValidate()
|
|
19
19
|
config = configManager.current
|
|
@@ -27,7 +27,7 @@ function buildCompileCmd (app) {
|
|
|
27
27
|
const logger = pino(
|
|
28
28
|
pretty({
|
|
29
29
|
translateTime: 'SYS:HH:MM:ss',
|
|
30
|
-
ignore: 'hostname,pid'
|
|
30
|
+
ignore: 'hostname,pid',
|
|
31
31
|
})
|
|
32
32
|
)
|
|
33
33
|
|
|
@@ -35,7 +35,7 @@ function buildCompileCmd (app) {
|
|
|
35
35
|
...extractTypeScriptCompileOptionsFromConfig(config),
|
|
36
36
|
cwd: fullPath,
|
|
37
37
|
logger,
|
|
38
|
-
clean: _args.includes('--clean')
|
|
38
|
+
clean: _args.includes('--clean'),
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
if (!await compile(compileOptions)) {
|
|
@@ -49,7 +49,7 @@ module.exports.buildCompileCmd = buildCompileCmd
|
|
|
49
49
|
function extractTypeScriptCompileOptionsFromConfig (config) {
|
|
50
50
|
return {
|
|
51
51
|
tsConfig: config.plugins?.typescript?.tsConfig,
|
|
52
|
-
flags: config.plugins?.typescript?.flags
|
|
52
|
+
flags: config.plugins?.typescript?.flags,
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
|
package/lib/create.mjs
CHANGED
|
@@ -16,14 +16,14 @@ function printAppSummary (args, logger) {
|
|
|
16
16
|
{ config: 'Language', value: args.typescript ? 'Typescript' : 'Javascript' },
|
|
17
17
|
{ config: 'Init Git Repository', value: args.git },
|
|
18
18
|
{ config: 'Install Dependencies', value: args.install },
|
|
19
|
-
{ config: 'Sample Plugin and Tests', value: args.plugin }
|
|
19
|
+
{ config: 'Sample Plugin and Tests', value: args.plugin },
|
|
20
20
|
]
|
|
21
21
|
|
|
22
22
|
const p = new Table({
|
|
23
23
|
columns: [
|
|
24
24
|
{ name: 'config', alignment: 'right' },
|
|
25
|
-
{ name: 'value', alignment: 'left' }
|
|
26
|
-
]
|
|
25
|
+
{ name: 'value', alignment: 'left' },
|
|
26
|
+
],
|
|
27
27
|
})
|
|
28
28
|
|
|
29
29
|
p.addRows(table)
|
|
@@ -34,7 +34,7 @@ async function createService (_args) {
|
|
|
34
34
|
translateTime: 'SYS:HH:MM:ss',
|
|
35
35
|
ignore: 'hostname,pid',
|
|
36
36
|
minimumLevel: 'debug',
|
|
37
|
-
sync: true
|
|
37
|
+
sync: true,
|
|
38
38
|
})
|
|
39
39
|
|
|
40
40
|
const logger = pino(stream)
|
|
@@ -49,8 +49,8 @@ async function createService (_args) {
|
|
|
49
49
|
plugin: true,
|
|
50
50
|
typescript: false,
|
|
51
51
|
git: false,
|
|
52
|
-
install: true
|
|
53
|
-
}
|
|
52
|
+
install: true,
|
|
53
|
+
},
|
|
54
54
|
|
|
55
55
|
})
|
|
56
56
|
|
|
@@ -64,7 +64,7 @@ async function createService (_args) {
|
|
|
64
64
|
tests: args.plugin,
|
|
65
65
|
typescript: args.typescript,
|
|
66
66
|
initGitRepository: args.git,
|
|
67
|
-
targetDirectory: args.dir
|
|
67
|
+
targetDirectory: args.dir,
|
|
68
68
|
})
|
|
69
69
|
|
|
70
70
|
try {
|
package/lib/gen-schema.js
CHANGED
package/lib/gen-types.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import { writeFile } from 'fs/promises'
|
|
|
4
4
|
import pino from 'pino'
|
|
5
5
|
import pretty from 'pino-pretty'
|
|
6
6
|
import { loadConfig } from '@platformatic/config'
|
|
7
|
-
import
|
|
7
|
+
import platformaticService from '../index.js'
|
|
8
8
|
import { checkForDependencies } from '@platformatic/utils'
|
|
9
9
|
|
|
10
10
|
const GLOBAL_TYPES_TEMPLATE = `
|
|
@@ -25,7 +25,7 @@ async function execute ({ logger, configManager }) {
|
|
|
25
25
|
async function generateTypes (_args) {
|
|
26
26
|
const logger = pino(pretty({
|
|
27
27
|
translateTime: 'SYS:HH:MM:ss',
|
|
28
|
-
ignore: 'hostname,pid'
|
|
28
|
+
ignore: 'hostname,pid',
|
|
29
29
|
}))
|
|
30
30
|
const { configManager, args } = await loadConfig({}, _args, platformaticService)
|
|
31
31
|
await configManager.parseAndValidate()
|
|
@@ -8,7 +8,7 @@ class ServiceGenerator extends BaseGenerator {
|
|
|
8
8
|
constructor (opts = {}) {
|
|
9
9
|
super({
|
|
10
10
|
...opts,
|
|
11
|
-
module: '@platformatic/service'
|
|
11
|
+
module: '@platformatic/service',
|
|
12
12
|
})
|
|
13
13
|
}
|
|
14
14
|
|
|
@@ -26,16 +26,16 @@ class ServiceGenerator extends BaseGenerator {
|
|
|
26
26
|
this.addEnvVars({
|
|
27
27
|
PLT_SERVER_HOSTNAME: this.config.hostname,
|
|
28
28
|
PLT_SERVER_LOGGER_LEVEL: 'info',
|
|
29
|
-
PORT: 3042
|
|
29
|
+
PORT: 3042,
|
|
30
30
|
}, { overwrite: false })
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
this.addEnvVars({
|
|
34
|
-
PLT_TYPESCRIPT: this.config.typescript
|
|
34
|
+
PLT_TYPESCRIPT: this.config.typescript,
|
|
35
35
|
}, { overwrite: false, default: true })
|
|
36
36
|
|
|
37
37
|
this.config.dependencies = {
|
|
38
|
-
'@platformatic/service': `^${this.platformaticVersion}
|
|
38
|
+
'@platformatic/service': `^${this.platformaticVersion}`,
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -50,22 +50,22 @@ class ServiceGenerator extends BaseGenerator {
|
|
|
50
50
|
label: 'What is the hostname?',
|
|
51
51
|
default: '0.0.0.0',
|
|
52
52
|
type: 'string',
|
|
53
|
-
configValue: 'hostname'
|
|
53
|
+
configValue: 'hostname',
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
56
|
var: 'PLT_SERVER_LOGGER_LEVEL',
|
|
57
57
|
label: 'What is the logger level?',
|
|
58
58
|
default: 'info',
|
|
59
59
|
type: 'string',
|
|
60
|
-
configValue: ''
|
|
60
|
+
configValue: '',
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
label: 'Which port do you want to use?',
|
|
64
64
|
var: 'PORT',
|
|
65
65
|
default: 3042,
|
|
66
66
|
type: 'number',
|
|
67
|
-
configValue: 'port'
|
|
68
|
-
}
|
|
67
|
+
configValue: 'port',
|
|
68
|
+
},
|
|
69
69
|
]
|
|
70
70
|
}
|
|
71
71
|
|
|
@@ -83,7 +83,7 @@ declare module 'fastify' {
|
|
|
83
83
|
}
|
|
84
84
|
`
|
|
85
85
|
this.addFile({ path: '', file: 'global.d.ts', contents: GLOBAL_TYPES_TEMPLATE })
|
|
86
|
-
this.addFile({ path: '', file: 'README.md', contents: await readFile(join(__dirname, 'README.md')) })
|
|
86
|
+
this.addFile({ path: '', file: 'README.md', contents: await readFile(join(__dirname, 'README.md'), 'utf-8') })
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
|
|
@@ -91,19 +91,19 @@ declare module 'fastify' {
|
|
|
91
91
|
const { isRuntimeContext } = this.config
|
|
92
92
|
const version = this.platformaticVersion
|
|
93
93
|
const config = {
|
|
94
|
-
$schema: `https://platformatic.dev/
|
|
94
|
+
$schema: `https://schemas.platformatic.dev/@platformatic/service/${version}.json`,
|
|
95
95
|
service: {
|
|
96
|
-
openapi: true
|
|
96
|
+
openapi: true,
|
|
97
97
|
},
|
|
98
|
-
watch: true
|
|
98
|
+
watch: true,
|
|
99
99
|
}
|
|
100
100
|
if (this.config.plugin) {
|
|
101
101
|
config.plugins = {
|
|
102
102
|
paths: [
|
|
103
103
|
{ path: './plugins', encapsulate: false },
|
|
104
|
-
'./routes'
|
|
104
|
+
'./routes',
|
|
105
105
|
],
|
|
106
|
-
typescript: `{${this.getEnvVarName('PLT_TYPESCRIPT')}}
|
|
106
|
+
typescript: `{${this.getEnvVarName('PLT_TYPESCRIPT')}}`,
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
|
|
@@ -112,8 +112,8 @@ declare module 'fastify' {
|
|
|
112
112
|
hostname: '{PLT_SERVER_HOSTNAME}',
|
|
113
113
|
port: '{PORT}',
|
|
114
114
|
logger: {
|
|
115
|
-
level: '{PLT_SERVER_LOGGER_LEVEL}'
|
|
116
|
-
}
|
|
115
|
+
level: '{PLT_SERVER_LOGGER_LEVEL}',
|
|
116
|
+
},
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
|