@openapi-typescript-infra/service 3.0.2 → 4.0.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/CHANGELOG.md +19 -0
- package/build/config/index.d.ts +1 -2
- package/build/config/index.js +6 -4
- package/build/config/index.js.map +1 -1
- package/build/config/schema.d.ts +2 -2
- package/build/express-app/app.js +7 -10
- package/build/express-app/app.js.map +1 -1
- package/build/express-app/types.d.ts +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/build/types.d.ts +1 -2
- package/package.json +6 -8
- package/src/config/index.ts +10 -8
- package/src/config/schema.ts +2 -2
- package/src/express-app/app.ts +7 -11
- package/src/express-app/types.ts +1 -2
- package/src/types.ts +1 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
# [4.0.0](https://github.com/openapi-typescript-infra/service/compare/v3.0.3...v4.0.0) (2023-10-18)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **config:** expose raw configuration schema ([fae719d](https://github.com/openapi-typescript-infra/service/commit/fae719de5a73084c0580058bc59b59a74861f66f))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### BREAKING CHANGES
|
|
10
|
+
|
|
11
|
+
* **config:** No more config.get, just access config directly
|
|
12
|
+
|
|
13
|
+
## [3.0.3](https://github.com/openapi-typescript-infra/service/compare/v3.0.2...v3.0.3) (2023-10-18)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* **types:** simplify ServiceRouter by removing config arg ([8f1e334](https://github.com/openapi-typescript-infra/service/commit/8f1e334a45b6f8bed5b6c7f1e61136522e7faef9))
|
|
19
|
+
|
|
1
20
|
## [3.0.2](https://github.com/openapi-typescript-infra/service/compare/v3.0.1...v3.0.2) (2023-10-18)
|
|
2
21
|
|
|
3
22
|
|
package/build/config/index.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { Confit } from '@sesamecare-oss/confit';
|
|
2
1
|
import type { ConfigurationSchema } from './schema';
|
|
3
2
|
export interface ServiceConfigurationSpec {
|
|
4
3
|
sourceDirectory: string;
|
|
5
4
|
configurationDirectories: string[];
|
|
6
5
|
name: string;
|
|
7
6
|
}
|
|
8
|
-
export declare function loadConfiguration<Config extends ConfigurationSchema>({ name, configurationDirectories: dirs, sourceDirectory, }: ServiceConfigurationSpec): Promise<
|
|
7
|
+
export declare function loadConfiguration<Config extends ConfigurationSchema>({ name, configurationDirectories: dirs, sourceDirectory, }: ServiceConfigurationSpec): Promise<Config>;
|
|
9
8
|
export declare function insertConfigurationBefore(configDirs: string[] | undefined, insert: string, before: string): string[];
|
|
10
9
|
export * from './schema';
|
package/build/config/index.js
CHANGED
|
@@ -43,7 +43,7 @@ async function pathExists(f) {
|
|
|
43
43
|
async function addDefaultConfiguration(configFactory, directory, envConfit) {
|
|
44
44
|
const addIfEnv = async (e) => {
|
|
45
45
|
const c = path_1.default.join(directory, `${e}.json`);
|
|
46
|
-
if (envConfit.get(
|
|
46
|
+
if (envConfit.get().env[e] && (await pathExists(c))) {
|
|
47
47
|
configFactory.addDefault(c);
|
|
48
48
|
return true;
|
|
49
49
|
}
|
|
@@ -75,15 +75,17 @@ async function loadConfiguration({ name, configurationDirectories: dirs, sourceD
|
|
|
75
75
|
const loaded = await configFactory.create();
|
|
76
76
|
// Because other things need to know the port we choose, we pick it here if it's
|
|
77
77
|
// configured to auto-select
|
|
78
|
-
const serverConfig = loaded.get(
|
|
78
|
+
const serverConfig = loaded.get().server;
|
|
79
79
|
if (serverConfig.port === 0) {
|
|
80
80
|
const port = (await (0, port_finder_1.findPort)(8001));
|
|
81
|
-
loaded.
|
|
81
|
+
const store = loaded.get();
|
|
82
|
+
store.server = store.server || {};
|
|
83
|
+
store.server.port = port;
|
|
82
84
|
}
|
|
83
85
|
// TODO init other stuff based on config here, such as key management or
|
|
84
86
|
// other cloud-aware shortstop handlers
|
|
85
87
|
// Not sure why this is necessary, but it is
|
|
86
|
-
return loaded;
|
|
88
|
+
return loaded.get();
|
|
87
89
|
}
|
|
88
90
|
exports.loadConfiguration = loadConfiguration;
|
|
89
91
|
function insertConfigurationBefore(configDirs, insert, before) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
|
package/build/config/schema.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BaseConfitSchema } from '@sesamecare-oss/confit';
|
|
2
2
|
import type { Level } from 'pino';
|
|
3
3
|
export interface ServiceConfiguration {
|
|
4
4
|
protocol?: string;
|
|
@@ -10,7 +10,7 @@ export interface ServiceConfiguration {
|
|
|
10
10
|
export interface ConfigurationItemEnabled {
|
|
11
11
|
enabled?: boolean;
|
|
12
12
|
}
|
|
13
|
-
export interface ConfigurationSchema extends
|
|
13
|
+
export interface ConfigurationSchema extends BaseConfitSchema {
|
|
14
14
|
trustProxy?: string[];
|
|
15
15
|
logging?: {
|
|
16
16
|
level?: Level;
|
package/build/express-app/app.js
CHANGED
|
@@ -63,11 +63,11 @@ async function startApp(startOptions) {
|
|
|
63
63
|
configurationDirectories: options.configurationDirectories,
|
|
64
64
|
sourceDirectory: path_1.default.join(rootDirectory, codepath),
|
|
65
65
|
});
|
|
66
|
-
const logging = config.
|
|
66
|
+
const logging = config.logging;
|
|
67
67
|
logger.level = logging?.level || 'info';
|
|
68
68
|
// Concentrate the Typescript ugliness...
|
|
69
69
|
const app = (0, express_1.default)();
|
|
70
|
-
const routing = config.
|
|
70
|
+
const routing = config.routing;
|
|
71
71
|
app.disable('x-powered-by');
|
|
72
72
|
if (routing?.etag !== true) {
|
|
73
73
|
app.disable('etag');
|
|
@@ -83,8 +83,8 @@ async function startApp(startOptions) {
|
|
|
83
83
|
}
|
|
84
84
|
app.locals.meter = api_1.metrics.getMeterProvider().getMeter(name);
|
|
85
85
|
(0, opentelemetry_node_metrics_1.setupNodeMetrics)(app.locals.meter, {});
|
|
86
|
-
if (config.
|
|
87
|
-
app.set('trust proxy', config.
|
|
86
|
+
if (config.trustProxy) {
|
|
87
|
+
app.set('trust proxy', config.trustProxy);
|
|
88
88
|
}
|
|
89
89
|
app.use((0, requestLogger_1.loggerMiddleware)(app, logging?.logRequestBody, logging?.logResponseBody));
|
|
90
90
|
// Allow the service to add locals, etc. We put this before the body parsers
|
|
@@ -176,7 +176,7 @@ async function startApp(startOptions) {
|
|
|
176
176
|
}
|
|
177
177
|
const codePattern = codepath === 'src' ? '**/*.ts' : '**/*.js';
|
|
178
178
|
if (routing?.routes) {
|
|
179
|
-
await (0, route_loader_1.loadRoutes)(app, path_1.default.resolve(rootDirectory, codepath, config.
|
|
179
|
+
await (0, route_loader_1.loadRoutes)(app, path_1.default.resolve(rootDirectory, codepath, config.routing?.routes || 'routes'), codePattern);
|
|
180
180
|
}
|
|
181
181
|
if (routing?.openapi) {
|
|
182
182
|
app.use(await (0, openapi_1.openApi)(app, rootDirectory, codepath, codePattern, options.openApiOptions));
|
|
@@ -221,10 +221,7 @@ function url(config, port) {
|
|
|
221
221
|
return `http://${config.hostname}${port === 80 ? '' : `:${port}`}`;
|
|
222
222
|
}
|
|
223
223
|
async function listen(app, shutdownHandler) {
|
|
224
|
-
|
|
225
|
-
// otherwise.
|
|
226
|
-
const typedConfig = app.locals.config;
|
|
227
|
-
const config = typedConfig.get('server');
|
|
224
|
+
const config = app.locals.config.server || {};
|
|
228
225
|
const { port } = config;
|
|
229
226
|
const { service, logger } = app.locals;
|
|
230
227
|
const server = httpServer(app, config);
|
|
@@ -276,7 +273,7 @@ async function listen(app, shutdownHandler) {
|
|
|
276
273
|
server.listen(port, () => {
|
|
277
274
|
const { locals } = app;
|
|
278
275
|
locals.logger.info({ url: url(config, port), service: locals.name }, 'express listening');
|
|
279
|
-
const serverConfig =
|
|
276
|
+
const serverConfig = app.locals.config.server;
|
|
280
277
|
// Ok now start the internal port if we have one.
|
|
281
278
|
if (serverConfig?.internalPort || serverConfig?.internalPort === 0) {
|
|
282
279
|
(0, internal_server_1.startInternalApp)(app, serverConfig.internalPort)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/express-app/app.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,gDAAwB;AACxB,kDAA0B;AAC1B,gDAAwB;AAExB,sDAA8B;AAC9B,+BAA4B;AAC5B,kEAAyC;AACzC,4CAA6C;AAC7C,2FAA8E;AAC9E,gDAAmD;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/express-app/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { NextFunction, Response } from 'express';
|
|
|
2
2
|
import type { AnyServiceLocals, RequestLocals, RequestWithApp, ServiceLocals } from '../types';
|
|
3
3
|
import { ConfigurationSchema } from '../config/schema';
|
|
4
4
|
export type ServiceHandler<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>, RLocals extends RequestLocals = RequestLocals, ResBody = unknown, RetType = unknown> = (req: RequestWithApp<SLocals>, res: Response<ResBody, RLocals>, next: NextFunction) => RetType | Promise<RetType>;
|
|
5
|
-
export interface ServiceRouter<
|
|
5
|
+
export interface ServiceRouter<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>, RLocals extends RequestLocals = RequestLocals> {
|
|
6
6
|
all(path: string, ...handlers: ServiceHandler<SLocals, RLocals>[]): void;
|
|
7
7
|
get(path: string, ...handlers: ServiceHandler<SLocals, RLocals>[]): void;
|
|
8
8
|
post(path: string, ...handlers: ServiceHandler<SLocals, RLocals>[]): void;
|