@map-colonies/config 1.2.0 → 1.3.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/README.md +9 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -3
- package/dist/config.js.map +1 -1
- package/dist/errors.d.ts +6 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -0
- package/dist/errors.js.map +1 -1
- package/dist/metrics.d.ts +3 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +51 -0
- package/dist/metrics.js.map +1 -0
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +7 -0
- package/dist/version.js.map +1 -0
- package/package.json +14 -5
package/README.md
CHANGED
|
@@ -62,6 +62,10 @@ The `ConfigInstance` interface represents the your way to interact with the conf
|
|
|
62
62
|
- **Description**: Retrieves the resolved options from the configuration object. Useful for debugging.
|
|
63
63
|
- **Returns**: The resolved options, which are an instance of `BaseOptions`.
|
|
64
64
|
|
|
65
|
+
##### `initializeMetrics(registry: promClient.Registry): void`
|
|
66
|
+
- **Description**: Initializes the metrics for the configuration.
|
|
67
|
+
- **Parameters**:
|
|
68
|
+
- `registry` (`promClient.Registry`): The prometheus registry to use for the metrics.
|
|
65
69
|
|
|
66
70
|
# Configuration Options
|
|
67
71
|
|
|
@@ -243,6 +247,11 @@ try {
|
|
|
243
247
|
```
|
|
244
248
|
- **Description**: This error occurs when there is a version mismatch between the remote and local schemas. The payload includes the versions of both the remote and local schemas.
|
|
245
249
|
|
|
250
|
+
### `promClientNotInstalledError`
|
|
251
|
+
- **Code**: `8`
|
|
252
|
+
- **Payload**: `Error`
|
|
253
|
+
- **Description**: This error occurs when the `prom-client` package is not installed. The payload contains the error object.
|
|
254
|
+
|
|
246
255
|
# Debugging
|
|
247
256
|
If for some reason you want to debug the package you can either use the `getConfigParts` or the `getResolvedOptions` functions described in the API or use the more powerful debug logger.
|
|
248
257
|
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAMxE,OAAO,EAAe,aAAa,EAAE,cAAc,EAAU,MAAM,SAAS,CAAC;AAe7E;;;;;;GAMG;AACH,wBAAsB,MAAM,CAAC,CAAC,SAAS;IAAE,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAC3E,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAwG/C"}
|
package/dist/config.js
CHANGED
|
@@ -17,6 +17,7 @@ const validator_1 = require("./validator");
|
|
|
17
17
|
const debug_1 = require("./utils/debug");
|
|
18
18
|
const constants_1 = require("./constants");
|
|
19
19
|
const errors_1 = require("./errors");
|
|
20
|
+
const metrics_1 = require("./metrics");
|
|
20
21
|
const debug = (0, debug_1.createDebug)('config');
|
|
21
22
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
22
23
|
const arrayMerge = (destinationArray, sourceArray) => sourceArray;
|
|
@@ -30,9 +31,10 @@ const arrayMerge = (destinationArray, sourceArray) => sourceArray;
|
|
|
30
31
|
async function config(options) {
|
|
31
32
|
// handle package options
|
|
32
33
|
debug('config called with options: %j', { ...options, schema: options.schema.$id });
|
|
33
|
-
const { schema: baseSchema, ...unvalidatedOptions } = options;
|
|
34
|
+
const { schema: baseSchema, metricsRegistry, ...unvalidatedOptions } = options;
|
|
34
35
|
const { configName, offlineMode, version, ignoreServerIsOlderVersionError } = (0, options_1.initializeOptions)(unvalidatedOptions);
|
|
35
36
|
let remoteConfig = {};
|
|
37
|
+
let serverConfigResponse = undefined;
|
|
36
38
|
// handle remote config
|
|
37
39
|
if (offlineMode !== true) {
|
|
38
40
|
debug('handling fetching remote data');
|
|
@@ -46,7 +48,7 @@ async function config(options) {
|
|
|
46
48
|
});
|
|
47
49
|
}
|
|
48
50
|
// get the remote config
|
|
49
|
-
|
|
51
|
+
serverConfigResponse = await (0, httpClient_1.getRemoteConfig)(configName, version);
|
|
50
52
|
if (serverConfigResponse.schemaId !== baseSchema.$id) {
|
|
51
53
|
debug('schema version mismatch. local: %s, remote: %s', baseSchema.$id, serverConfigResponse.schemaId);
|
|
52
54
|
throw (0, errors_1.createConfigError)('schemaVersionMismatchError', 'The schema version of the remote config does not match the schema version of the local config', {
|
|
@@ -96,7 +98,10 @@ async function config(options) {
|
|
|
96
98
|
debug('getResolvedOptions called');
|
|
97
99
|
return (0, options_1.getOptions)();
|
|
98
100
|
}
|
|
99
|
-
|
|
101
|
+
function initializeMetrics(registry) {
|
|
102
|
+
(0, metrics_1.initializeMetrics)(registry, baseSchema.$id, serverConfigResponse?.version);
|
|
103
|
+
}
|
|
104
|
+
return { get, getAll, getConfigParts, getResolvedOptions, initializeMetrics };
|
|
100
105
|
}
|
|
101
106
|
exports.config = config;
|
|
102
107
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAClC,uEAAwE;AACxE,oDAA+B;AAC/B,oDAA4B;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,QAAA,MAAM,YAAY;;;;;;;;;;;;kBAG+F,MAAM;;;;;;;;;;wBAExD,MAAM;;;;;;kCACmB,MAAM;iCAAuB,MAAM;;;;;;iCAC5C,MAAM;gCAAsB,MAAM;;;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,QAAA,MAAM,YAAY;;;;;;;;;;;;kBAG+F,MAAM;;;;;;;;;;wBAExD,MAAM;;;;;;kCACmB,MAAM;iCAAuB,MAAM;;;;;;iCAC5C,MAAM;gCAAsB,MAAM;;;;;;qBAC7C,MAAM;;;CAEP,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC;AAE/C;;;;;GAKG;AACH,qBAAa,WAAW,CAAC,SAAS,SAAS,MAAM,YAAY,EAAE,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAE,SAAQ,KAAK;aAUnD,OAAO,EAAE,OAAO,GAAG,SAAS;IATjG,SAAgB,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IAEtD;;;;;;OAMG;gBACgB,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAkB,OAAO,EAAE,OAAO,GAAG,SAAS;CAKlG;AAED,wBAAgB,iBAAiB,CAAC,SAAS,SAAS,MAAM,YAAY,EAAE,OAAO,SAAS,YAAY,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EACxH,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACf,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAEjC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,SAAS,MAAM,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,KAAK,IAAI,WAAW,CAAC,SAAS,CAAC,CAMzI"}
|
package/dist/errors.js
CHANGED
|
@@ -9,6 +9,7 @@ const configErrors = {
|
|
|
9
9
|
schemaNotFoundError: { code: 5, payload: {} },
|
|
10
10
|
schemasPackageVersionMismatchError: { code: 6, payload: {} },
|
|
11
11
|
schemaVersionMismatchError: { code: 7, payload: {} },
|
|
12
|
+
promClientNotInstalledError: { code: 8, payload: {} },
|
|
12
13
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
14
|
};
|
|
14
15
|
/**
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAGA,MAAM,YAAY,GAAG;IACnB,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAuB,EAAE;IACpE,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAuB,EAAE;IACpE,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAgF,EAAE;IACzH,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAW,EAAE;IACnD,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAA4B,EAAE;IACvE,kCAAkC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAmE,EAAE;IAC7H,0BAA0B,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAiE,EAAE;IACnH,8DAA8D;CACG,CAAC;AAOpE;;;;;GAKG;AACH,MAAa,WAAgG,SAAQ,KAAK;IAUnD;IATrD,IAAI,CAAkC;IAEtD;;;;;;OAMG;IACH,YAAmB,IAAe,EAAE,OAAe,EAAkB,OAA4B;QAC/F,KAAK,CAAC,OAAO,CAAC,CAAC;QADoD,YAAO,GAAP,OAAO,CAAqB;QAE/F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IACtC,CAAC;CACF;AAfD,kCAeC;AAED,SAAgB,iBAAiB,CAC/B,IAAe,EACf,OAAe,EACf,OAAgB;IAEhB,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAND,8CAMC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAuC,KAAc,EAAE,SAAoB;IACtG,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;AACjF,CAAC;AAND,sCAMC"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAGA,MAAM,YAAY,GAAG;IACnB,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAuB,EAAE;IACpE,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAuB,EAAE;IACpE,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAgF,EAAE;IACzH,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAW,EAAE;IACnD,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAA4B,EAAE;IACvE,kCAAkC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAmE,EAAE;IAC7H,0BAA0B,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAiE,EAAE;IACnH,2BAA2B,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAyB,EAAE;IAC5E,8DAA8D;CACG,CAAC;AAOpE;;;;;GAKG;AACH,MAAa,WAAgG,SAAQ,KAAK;IAUnD;IATrD,IAAI,CAAkC;IAEtD;;;;;;OAMG;IACH,YAAmB,IAAe,EAAE,OAAe,EAAkB,OAA4B;QAC/F,KAAK,CAAC,OAAO,CAAC,CAAC;QADoD,YAAO,GAAP,OAAO,CAAqB;QAE/F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IACtC,CAAC;CACF;AAfD,kCAeC;AAED,SAAgB,iBAAiB,CAC/B,IAAe,EACf,OAAe,EACf,OAAgB;IAEhB,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAND,8CAMC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAuC,KAAc,EAAE,SAAoB;IACtG,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;AACjF,CAAC;AAND,sCAMC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA0B5C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAgC/G"}
|
package/dist/metrics.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initializeMetrics = void 0;
|
|
4
|
+
const options_1 = require("./options");
|
|
5
|
+
const version_1 = require("./version");
|
|
6
|
+
const constants_1 = require("./constants");
|
|
7
|
+
const debug_1 = require("./utils/debug");
|
|
8
|
+
const errors_1 = require("./errors");
|
|
9
|
+
const debug = (0, debug_1.createDebug)('metrics');
|
|
10
|
+
const MILLISECONDS_PER_SECOND = 1000;
|
|
11
|
+
let promClient;
|
|
12
|
+
function loadPromClient() {
|
|
13
|
+
if (promClient !== undefined) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
debug('loading prom-client');
|
|
17
|
+
try {
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
19
|
+
promClient = require('prom-client');
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
throw (0, errors_1.createConfigError)('promClientNotInstalledError', 'prom-client is not installed and metrics was initialized', error);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function initializeMetrics(registry, schemaId, actualVersion) {
|
|
26
|
+
debug('initializing metrics');
|
|
27
|
+
loadPromClient();
|
|
28
|
+
if (promClient === undefined) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const { offlineMode, configName, version } = (0, options_1.getOptions)();
|
|
32
|
+
const gauge = new promClient.Gauge({
|
|
33
|
+
name: 'config_time_of_last_fetch_unix_timestamp',
|
|
34
|
+
help: 'The time of the last fetch of the configuration in unix timestamp',
|
|
35
|
+
labelNames: ['name', 'request_version', 'actual_version', 'offline_mode', 'schemas_package_version', 'package_version', 'schema_id'],
|
|
36
|
+
});
|
|
37
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
38
|
+
gauge.set({
|
|
39
|
+
name: configName,
|
|
40
|
+
request_version: version,
|
|
41
|
+
actual_version: actualVersion,
|
|
42
|
+
offline_mode: String(offlineMode ?? false),
|
|
43
|
+
schemas_package_version: constants_1.LOCAL_SCHEMAS_PACKAGE_VERSION,
|
|
44
|
+
package_version: version_1.PACKAGE_VERSION,
|
|
45
|
+
schema_id: schemaId,
|
|
46
|
+
}, Math.round(Date.now() / MILLISECONDS_PER_SECOND));
|
|
47
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
48
|
+
registry.registerMetric(gauge);
|
|
49
|
+
}
|
|
50
|
+
exports.initializeMetrics = initializeMetrics;
|
|
51
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":";;;AACA,uCAAuC;AACvC,uCAA4C;AAC5C,2CAA4D;AAC5D,yCAA4C;AAC5C,qCAA6C;AAE7C,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,SAAS,CAAC,CAAC;AACrC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC,IAAI,UAAoD,CAAC;AAEzD,SAAS,cAAc;IACrB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC7B,IAAI,CAAC;QACH,mEAAmE;QACnE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,0BAAiB,EAAC,6BAA6B,EAAE,0DAA0D,EAAE,KAAc,CAAC,CAAC;IACrI,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAAC,QAAkB,EAAE,QAAgB,EAAE,aAAiC;IACvG,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC9B,cAAc,EAAE,CAAC;IAEjB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAA,oBAAU,GAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC;QACjC,IAAI,EAAE,0CAA0C;QAChD,IAAI,EAAE,mEAAmE;QACzE,UAAU,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,WAAW,CAAC;KACrI,CAAC,CAAC;IAEH,yDAAyD;IACzD,KAAK,CAAC,GAAG,CACP;QACE,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,OAAO;QACxB,cAAc,EAAE,aAAa;QAC7B,YAAY,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC;QAC1C,uBAAuB,EAAE,yCAA6B;QACtD,eAAe,EAAE,yBAAe;QAChC,SAAS,EAAE,QAAQ;KACpB,EAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,uBAAuB,CAAC,CACjD,CAAC;IAEF,wDAAwD;IACxD,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAhCD,8CAgCC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="lodash" />
|
|
2
2
|
import { typeSymbol } from '@map-colonies/schemas/build/schemas/symbol';
|
|
3
3
|
import { JSONSchemaType } from 'ajv';
|
|
4
|
+
import type { Registry } from 'prom-client';
|
|
4
5
|
type Prettify<T> = {
|
|
5
6
|
[K in keyof T]: T[K];
|
|
6
7
|
} & {};
|
|
@@ -67,6 +68,11 @@ export type ConfigOptions<T extends SchemaWithType> = Prettify<Partial<BaseOptio
|
|
|
67
68
|
* The schema of the configuration object.
|
|
68
69
|
*/
|
|
69
70
|
schema: T;
|
|
71
|
+
/**
|
|
72
|
+
* The registry for the metrics. If not provided, the metrics will not be registered.
|
|
73
|
+
* Depends on the prom-client package being installed.
|
|
74
|
+
*/
|
|
75
|
+
metricsRegistry?: Registry;
|
|
70
76
|
}>;
|
|
71
77
|
export declare const optionsSchema: JSONSchemaType<BaseOptions>;
|
|
72
78
|
/**
|
|
@@ -100,6 +106,11 @@ export interface ConfigInstance<T> {
|
|
|
100
106
|
* @returns The resolved options.
|
|
101
107
|
*/
|
|
102
108
|
getResolvedOptions: () => BaseOptions;
|
|
109
|
+
/**
|
|
110
|
+
* Initializes the metrics for the configuration object.
|
|
111
|
+
* @param registry - The registry for the metrics.
|
|
112
|
+
*/
|
|
113
|
+
initializeMetrics: (registry: Registry) => void;
|
|
103
114
|
}
|
|
104
115
|
export {};
|
|
105
116
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,QAAQ,CAAC,CAAC,IAAI;KAChB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAErB,GAAG,EAAE,CAAC;AAEP,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEhD,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,cAAc,IAAI,QAAQ,CAC5D,OAAO,CAAC,WAAW,CAAC,GAAG;IACrB;;OAEG;IACH,MAAM,EAAE,CAAC,CAAC;IACV;;;OAGG;IACH,eAAe,CAAC,EAAE,QAAQ,CAAC;CAC5B,CACF,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC,WAAW,CAiBrD,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B;;;;;OAKG;IACH,GAAG,EAAE,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAErE;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhB;;;OAGG;IACH,cAAc,EAAE,MAAM;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;;OAGG;IACH,kBAAkB,EAAE,MAAM,WAAW,CAAC;IAEtC;;;OAGG;IACH,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;CACjD"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA,uEAAwE;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA,uEAAwE;AAwF3D,QAAA,aAAa,GAAgC;IACxD,QAAQ,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,SAAS,CAAC;IACtD,oBAAoB,EAAE,KAAK;IAC3B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACnC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;aAChC;SACF;QACD,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACnC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChD,+BAA+B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpE,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;KACzE;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,UAAU,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,qBAAqB;AACrB,mBAAmB;AACN,QAAA,eAAe,GAAG,OAAO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@map-colonies/config",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Config package for MapColonies with support for central config management",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -16,12 +16,14 @@
|
|
|
16
16
|
"prelint": "npm run format",
|
|
17
17
|
"lint": "eslint .",
|
|
18
18
|
"lint:fix": "eslint --fix .",
|
|
19
|
+
"pretest": "npm run generate:version",
|
|
19
20
|
"test": "cross-env SUPPRESS_NO_CONFIG_WARNING=true NODE_CONFIG_STRICT_MODE=false jest --config=./tests/configurations/jest.config.js",
|
|
20
|
-
"prebuild": "npm run clean",
|
|
21
|
+
"prebuild": "npm run clean && npm run generate:version",
|
|
21
22
|
"build": "tsc --project tsconfig.build.json",
|
|
22
23
|
"start": "npm run build && cd dist && node ./index.js",
|
|
23
24
|
"clean": "rimraf dist",
|
|
24
|
-
"prepublish": "npm run build"
|
|
25
|
+
"prepublish": "npm run build",
|
|
26
|
+
"generate:version": "node scripts/generateVersionFile.mjs"
|
|
25
27
|
},
|
|
26
28
|
"repository": {
|
|
27
29
|
"type": "git",
|
|
@@ -61,7 +63,13 @@
|
|
|
61
63
|
"undici": "^6.18.2"
|
|
62
64
|
},
|
|
63
65
|
"peerDependencies": {
|
|
64
|
-
"@map-colonies/schemas": "^1.0.0"
|
|
66
|
+
"@map-colonies/schemas": "^1.0.0",
|
|
67
|
+
"prom-client": "^15.0.0"
|
|
68
|
+
},
|
|
69
|
+
"peerDependenciesMeta": {
|
|
70
|
+
"prom-client": {
|
|
71
|
+
"optional": true
|
|
72
|
+
}
|
|
65
73
|
},
|
|
66
74
|
"devDependencies": {
|
|
67
75
|
"@commitlint/cli": "^11.0.0",
|
|
@@ -80,6 +88,7 @@
|
|
|
80
88
|
"prettier": "^2.2.1",
|
|
81
89
|
"pretty-quick": "^3.1.0",
|
|
82
90
|
"ts-jest": "^29.1.5",
|
|
83
|
-
"typescript": "^5.4.5"
|
|
91
|
+
"typescript": "^5.4.5",
|
|
92
|
+
"prom-client": "^15.0.0"
|
|
84
93
|
}
|
|
85
94
|
}
|