@venizia/ignis-inversion 0.1.1-3 → 0.1.1-4
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/dist/cjs/common/types.d.ts +1 -4
- package/dist/cjs/common/types.d.ts.map +1 -1
- package/dist/cjs/common/types.js +1 -4
- package/dist/cjs/common/types.js.map +1 -1
- package/dist/cjs/modules/container/abstract.d.ts +2 -5
- package/dist/cjs/modules/container/abstract.d.ts.map +1 -1
- package/dist/cjs/modules/container/abstract.js +1 -4
- package/dist/cjs/modules/container/abstract.js.map +1 -1
- package/dist/cjs/modules/container/base.d.ts +2 -5
- package/dist/cjs/modules/container/base.d.ts.map +1 -1
- package/dist/cjs/modules/container/base.js +6 -11
- package/dist/cjs/modules/container/base.js.map +1 -1
- package/dist/cjs/modules/error/app-error.d.ts +2 -1
- package/dist/cjs/modules/error/app-error.d.ts.map +1 -1
- package/dist/cjs/modules/error/app-error.js +4 -3
- package/dist/cjs/modules/error/app-error.js.map +1 -1
- package/dist/cjs/modules/error/message-code.d.ts +2 -8
- package/dist/cjs/modules/error/message-code.d.ts.map +1 -1
- package/dist/cjs/modules/error/message-code.js +2 -8
- package/dist/cjs/modules/error/message-code.js.map +1 -1
- package/dist/cjs/modules/error/types.d.ts +11 -38
- package/dist/cjs/modules/error/types.d.ts.map +1 -1
- package/dist/esm/common/types.d.ts +1 -4
- package/dist/esm/common/types.d.ts.map +1 -1
- package/dist/esm/common/types.js +1 -4
- package/dist/esm/common/types.js.map +1 -1
- package/dist/esm/modules/container/abstract.d.ts +2 -5
- package/dist/esm/modules/container/abstract.d.ts.map +1 -1
- package/dist/esm/modules/container/abstract.js +1 -4
- package/dist/esm/modules/container/abstract.js.map +1 -1
- package/dist/esm/modules/container/base.d.ts +2 -5
- package/dist/esm/modules/container/base.d.ts.map +1 -1
- package/dist/esm/modules/container/base.js +6 -11
- package/dist/esm/modules/container/base.js.map +1 -1
- package/dist/esm/modules/error/app-error.d.ts +2 -1
- package/dist/esm/modules/error/app-error.d.ts.map +1 -1
- package/dist/esm/modules/error/app-error.js +4 -3
- package/dist/esm/modules/error/app-error.js.map +1 -1
- package/dist/esm/modules/error/message-code.d.ts +2 -8
- package/dist/esm/modules/error/message-code.d.ts.map +1 -1
- package/dist/esm/modules/error/message-code.js +2 -8
- package/dist/esm/modules/error/message-code.js.map +1 -1
- package/dist/esm/modules/error/types.d.ts +11 -38
- package/dist/esm/modules/error/types.d.ts.map +1 -1
- package/package.json +10 -10
|
@@ -9,10 +9,7 @@ export type TClass<T> = TConstructor<T> & {
|
|
|
9
9
|
};
|
|
10
10
|
export type TConstValue<T extends TClass<any>> = Extract<ValueOf<T>, string | number>;
|
|
11
11
|
export type TBindingKey = string | symbol;
|
|
12
|
-
/**
|
|
13
|
-
* Tells a CONSTRUCTOR from a RESOLVER via source text - `prototype !== undefined` is true of every
|
|
14
|
-
* non-arrow function. Sound only on ES2020+ output (classes emit as `class`); ES5 bundling breaks it.
|
|
15
|
-
*/
|
|
12
|
+
/** Tells a CONSTRUCTOR from a RESOLVER via source text - `prototype !== undefined` is true of every non-arrow function. Sound only on ES2020+ output (classes emit as `class`); ES5 bundling breaks it. */
|
|
16
13
|
export declare const isClass: <T>(target: any) => target is TClass<T>;
|
|
17
14
|
export interface IBindingTag {
|
|
18
15
|
[name: string]: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAEhD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEpC,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC;AAE1B,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACxD,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACzE,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAEtE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEtF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAEhD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEpC,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC;AAE1B,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACxD,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACzE,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAEtE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEtF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,2MAA2M;AAC3M,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,GAAG,KAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAM1D,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACrB"}
|
package/dist/cjs/common/types.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isClass = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Tells a CONSTRUCTOR from a RESOLVER via source text - `prototype !== undefined` is true of every
|
|
6
|
-
* non-arrow function. Sound only on ES2020+ output (classes emit as `class`); ES5 bundling breaks it.
|
|
7
|
-
*/
|
|
4
|
+
/** Tells a CONSTRUCTOR from a RESOLVER via source text - `prototype !== undefined` is true of every non-arrow function. Sound only on ES2020+ output (classes emit as `class`); ES5 bundling breaks it. */
|
|
8
5
|
const isClass = (target) => {
|
|
9
6
|
if (typeof target !== 'function' || target.prototype === undefined) {
|
|
10
7
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":";;;AAeA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":";;;AAeA,2MAA2M;AACpM,MAAM,OAAO,GAAG,CAAI,MAAW,EAAuB,EAAE;IAC7D,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC;AANW,QAAA,OAAO,WAMlB"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import type { IBinding } from '../binding/common/types';
|
|
2
1
|
import { BaseHelper } from '../../common/base-helper';
|
|
3
2
|
import type { TBindingKey, TClass, TNullable } from '../../common/types';
|
|
3
|
+
import type { IBinding } from '../binding/common/types';
|
|
4
4
|
import type { MetadataRegistry } from '../registry/registry';
|
|
5
5
|
import type { IContainer } from './common/types';
|
|
6
|
-
/**
|
|
7
|
-
* Container CONTRACT as a class, typed against `IBinding`. Implementations sharing no storage
|
|
8
|
-
* start here; ones that only vary resolution start at `BaseContainer`.
|
|
9
|
-
*/
|
|
6
|
+
/** Container CONTRACT as a class, typed against `IBinding` - implementations sharing no storage start here; ones that only vary resolution start at `BaseContainer`. */
|
|
10
7
|
export declare abstract class AbstractContainer extends BaseHelper implements IContainer {
|
|
11
8
|
constructor(opts?: {
|
|
12
9
|
scope: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../src/modules/container/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../src/modules/container/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AbstractContainer = void 0;
|
|
4
4
|
const base_helper_1 = require("../../common/base-helper");
|
|
5
|
-
/**
|
|
6
|
-
* Container CONTRACT as a class, typed against `IBinding`. Implementations sharing no storage
|
|
7
|
-
* start here; ones that only vary resolution start at `BaseContainer`.
|
|
8
|
-
*/
|
|
5
|
+
/** Container CONTRACT as a class, typed against `IBinding` - implementations sharing no storage start here; ones that only vary resolution start at `BaseContainer`. */
|
|
9
6
|
class AbstractContainer extends base_helper_1.BaseHelper {
|
|
10
7
|
constructor(opts) {
|
|
11
8
|
super({ scope: opts?.scope ?? AbstractContainer.name });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../src/modules/container/abstract.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../src/modules/container/abstract.ts"],"names":[],"mappings":";;;AAAA,sDAAkD;AAMlD,wKAAwK;AACxK,MAAsB,iBAAkB,SAAQ,wBAAU;IACxD,YAAY,IAAwB;QAClC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;CAsCF;AAzCD,8CAyCC"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import { Binding } from '../binding/binding';
|
|
2
1
|
import { TBindingKey, TClass, TNullable } from '../../common/types';
|
|
2
|
+
import { Binding } from '../binding/binding';
|
|
3
3
|
import { AbstractContainer } from './abstract';
|
|
4
|
-
/**
|
|
5
|
-
* Storage half of the container, keyed by normalized binding-key strings. Resolution
|
|
6
|
-
* (`instantiate`) stays abstract - it is the part an implementation swaps.
|
|
7
|
-
*/
|
|
4
|
+
/** Storage half of the container, keyed by normalized binding-key strings - resolution (`instantiate`) stays abstract, it is the part an implementation swaps. */
|
|
8
5
|
export declare abstract class BaseContainer extends AbstractContainer {
|
|
9
6
|
protected bindings: Map<string, Binding<any>>;
|
|
10
7
|
constructor(opts?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/modules/container/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/modules/container/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,kKAAkK;AAClK,8BAAsB,aAAc,SAAQ,iBAAiB;IAC3D,SAAS,CAAC,QAAQ,4BAA8B;gBAEpC,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;IAI3B,mBAAmB;IAInB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ/C,OAAO,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO;IAM5C,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE;QAC3B,GAAG,EAAE,WAAW,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;KACvD,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IA2BhB,MAAM,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO;IAK3C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG,IAAI;IAK3C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QACpB,GAAG,EAAE,WAAW,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,UAAU,CAAC,EAAE,KAAK,CAAC;KACpB,GAAG,CAAC;IACI,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QACpB,GAAG,EAAE,WAAW,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,GAAG,CAAC,GAAG,SAAS;IAqBR,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE;QACvC,QAAQ,EAAE;aACP,CAAC,IAAI,MAAM,CAAC,GAAG;gBACd,GAAG,EAAE,WAAW,GAAG;oBAAE,SAAS,EAAE,MAAM,CAAC;oBAAC,GAAG,EAAE,MAAM,CAAA;iBAAE,CAAC;gBACtD,UAAU,CAAC,EAAE,OAAO,CAAC;aACtB;SACF,CAAC;KACH,GAAG;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;KAAE;IAM/B,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IAI7B,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE;QAChC,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;KACvC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE;IAyBP,KAAK,IAAI,IAAI;IAOb,KAAK,IAAI,IAAI;CAGvB"}
|
|
@@ -6,10 +6,7 @@ const constants_1 = require("../binding/common/constants");
|
|
|
6
6
|
const error_1 = require("../error");
|
|
7
7
|
const registry_1 = require("../registry/registry");
|
|
8
8
|
const abstract_1 = require("./abstract");
|
|
9
|
-
/**
|
|
10
|
-
* Storage half of the container, keyed by normalized binding-key strings. Resolution
|
|
11
|
-
* (`instantiate`) stays abstract - it is the part an implementation swaps.
|
|
12
|
-
*/
|
|
9
|
+
/** Storage half of the container, keyed by normalized binding-key strings - resolution (`instantiate`) stays abstract, it is the part an implementation swaps. */
|
|
13
10
|
class BaseContainer extends abstract_1.AbstractContainer {
|
|
14
11
|
constructor(opts) {
|
|
15
12
|
super({ scope: opts?.scope ?? BaseContainer.name });
|
|
@@ -89,13 +86,11 @@ class BaseContainer extends abstract_1.AbstractContainer {
|
|
|
89
86
|
if (!binding.hasTag(tag)) {
|
|
90
87
|
continue;
|
|
91
88
|
}
|
|
92
|
-
if (exclude) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
continue;
|
|
98
|
-
}
|
|
89
|
+
if (exclude instanceof Array && exclude.length > 0 && exclude.includes(binding.key)) {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
if (exclude instanceof Set && exclude.size > 0 && exclude.has(binding.key)) {
|
|
93
|
+
continue;
|
|
99
94
|
}
|
|
100
95
|
rs.push(binding);
|
|
101
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/modules/container/base.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/modules/container/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { TError, TErrorNormalized, TResponsedError } from './types';
|
|
1
|
+
import type { TError, TErrorLogLevel, TErrorNormalized, TResponsedError } from './types';
|
|
2
2
|
export declare class ApplicationError extends Error {
|
|
3
3
|
statusCode: number;
|
|
4
4
|
normalized: TErrorNormalized;
|
|
5
5
|
extra?: Record<string, unknown>;
|
|
6
|
+
readonly logLevel?: TErrorLogLevel;
|
|
6
7
|
constructor(opts: TError);
|
|
7
8
|
static getError(opts: TError): ApplicationError;
|
|
8
9
|
static fromError(opts: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-error.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"app-error.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAgBzF,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;gBAEvB,IAAI,EAAE,MAAM;IA2CxB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAI5B,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,eAAe,CAAA;KAAE,GAAG,gBAAgB;CAcrE;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,gBAAmD,CAAC;AAE5F,eAAO,MAAM,SAAS,GAAI,MAAM;IAAE,KAAK,EAAE,eAAe,CAAA;CAAE,KAAG,gBAC3B,CAAC;AAEnC,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,gBAE5D,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC"}
|
|
@@ -16,22 +16,23 @@ const KNOWN_KEYS = [
|
|
|
16
16
|
'cause',
|
|
17
17
|
'extra',
|
|
18
18
|
'transform',
|
|
19
|
+
'logLevel',
|
|
19
20
|
'name',
|
|
20
21
|
];
|
|
21
22
|
class ApplicationError extends Error {
|
|
22
23
|
constructor(opts) {
|
|
23
|
-
const { statusCode, messageArgs, cause, extra, transform } = opts;
|
|
24
|
+
const { statusCode, messageArgs, cause, extra, transform, logLevel } = opts;
|
|
24
25
|
// Index signature defeats `in` narrowing - read the discriminant and cast.
|
|
25
26
|
const definition = 'error' in opts ? opts.error : undefined;
|
|
26
27
|
const input = opts.message;
|
|
27
28
|
const override = typeof input === 'string' ? { text: input } : input;
|
|
28
|
-
// `?.message?.`
|
|
29
|
-
// call site as anything at all, and a bare `definition?.message.text` throws on a malformed one.
|
|
29
|
+
// `?.message?.` has to guard BOTH: `error` reaches here from an untyped call site as anything at all, and a bare `definition?.message.text` throws on a malformed one.
|
|
30
30
|
const message = override?.text ?? definition?.message?.text ?? '';
|
|
31
31
|
const messageCode = message_code_1.MessageCode.resolve(override?.code ?? definition?.message?.code ?? opts.messageCode);
|
|
32
32
|
const args = override?.args ?? messageArgs ?? definition?.message?.args;
|
|
33
33
|
super(message, cause === undefined ? undefined : { cause });
|
|
34
34
|
this.statusCode = statusCode ?? definition?.statusCode ?? 400;
|
|
35
|
+
this.logLevel = logLevel;
|
|
35
36
|
// Explicit `extra` wins over swept keys.
|
|
36
37
|
const merged = {
|
|
37
38
|
...(0, omit_1.default)(opts, KNOWN_KEYS),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":";;;;;;AACA,uDAA+B;AAC/B,iDAA6C;AAG7C,yDAAyD;AACzD,MAAM,UAAU,GAAG;IACjB,OAAO;IACP,SAAS;IACT,aAAa;IACb,YAAY;IACZ,aAAa;IACb,OAAO;IACP,OAAO;IACP,WAAW;IACX,MAAM;CACP,CAAC;AAEF,MAAa,gBAAiB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,17 +4,11 @@ export declare class MessageCode {
|
|
|
4
4
|
static readonly SEGMENT_PATTERN: RegExp;
|
|
5
5
|
static readonly MIN_SEGMENTS = 2;
|
|
6
6
|
static readonly DEFAULT = "core.system_error";
|
|
7
|
-
/**
|
|
8
|
-
* Builds a code from its segments. Throws on a malformed one - codes are declared at module scope,
|
|
9
|
-
* so a bad code fails the process at import instead of shipping dead into production.
|
|
10
|
-
*/
|
|
7
|
+
/** Builds a code from its segments, throwing on a malformed one - codes are declared at module scope, so a bad code fails the process at import instead of shipping dead into production. */
|
|
11
8
|
static build(opts: {
|
|
12
9
|
parts: Array<string>;
|
|
13
10
|
}): string;
|
|
14
|
-
/**
|
|
15
|
-
* True when `code` is well-formed. A guard for a code arriving from outside, so it takes
|
|
16
|
-
* `unknown`: one that throws on the very input it exists to screen is not a guard.
|
|
17
|
-
*/
|
|
11
|
+
/** True when `code` is well-formed. Takes `unknown` because it guards codes arriving from outside - a guard that throws on the very input it exists to screen is not a guard. */
|
|
18
12
|
static isValid(code: unknown): boolean;
|
|
19
13
|
/** Normalizes an absent, empty or non-string code to {@link DEFAULT}. */
|
|
20
14
|
static resolve(code?: TNullable<string>): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-code.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/message-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,SAAS,OAAO;IAChC,MAAM,CAAC,QAAQ,CAAC,eAAe,SAA8B;IAC7D,MAAM,CAAC,QAAQ,CAAC,YAAY,KAAK;IACjC,MAAM,CAAC,QAAQ,CAAC,OAAO,uBAAuB;IAE9C
|
|
1
|
+
{"version":3,"file":"message-code.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/message-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,SAAS,OAAO;IAChC,MAAM,CAAC,QAAQ,CAAC,eAAe,SAA8B;IAC7D,MAAM,CAAC,QAAQ,CAAC,YAAY,KAAK;IACjC,MAAM,CAAC,QAAQ,CAAC,OAAO,uBAAuB;IAE9C,6LAA6L;IAC7L,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,MAAM;IAsBpD,iLAAiL;IACjL,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;IAatC,yEAAyE;IACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM;CAKjD"}
|
|
@@ -7,10 +7,7 @@ class MessageCode {
|
|
|
7
7
|
static { this.SEGMENT_PATTERN = /^[a-z0-9]+(_[a-z0-9]+)*$/; }
|
|
8
8
|
static { this.MIN_SEGMENTS = 2; }
|
|
9
9
|
static { this.DEFAULT = 'core.system_error'; }
|
|
10
|
-
/**
|
|
11
|
-
* Builds a code from its segments. Throws on a malformed one - codes are declared at module scope,
|
|
12
|
-
* so a bad code fails the process at import instead of shipping dead into production.
|
|
13
|
-
*/
|
|
10
|
+
/** Builds a code from its segments, throwing on a malformed one - codes are declared at module scope, so a bad code fails the process at import instead of shipping dead into production. */
|
|
14
11
|
static build(opts) {
|
|
15
12
|
const { parts } = opts;
|
|
16
13
|
if (parts.length < this.MIN_SEGMENTS) {
|
|
@@ -29,10 +26,7 @@ class MessageCode {
|
|
|
29
26
|
}
|
|
30
27
|
return parts.join(this.SEPARATOR).toLowerCase();
|
|
31
28
|
}
|
|
32
|
-
/**
|
|
33
|
-
* True when `code` is well-formed. A guard for a code arriving from outside, so it takes
|
|
34
|
-
* `unknown`: one that throws on the very input it exists to screen is not a guard.
|
|
35
|
-
*/
|
|
29
|
+
/** True when `code` is well-formed. Takes `unknown` because it guards codes arriving from outside - a guard that throws on the very input it exists to screen is not a guard. */
|
|
36
30
|
static isValid(code) {
|
|
37
31
|
if (typeof code !== 'string') {
|
|
38
32
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-code.js","sourceRoot":"","sources":["../../../../src/modules/error/message-code.ts"],"names":[],"mappings":";;;AACA,2CAAuC;AAEvC,MAAa,WAAW;aACN,cAAS,GAAG,GAAG,CAAC;aAChB,oBAAe,GAAG,0BAA0B,CAAC;aAC7C,iBAAY,GAAG,CAAC,CAAC;aACjB,YAAO,GAAG,mBAAmB,CAAC;IAE9C
|
|
1
|
+
{"version":3,"file":"message-code.js","sourceRoot":"","sources":["../../../../src/modules/error/message-code.ts"],"names":[],"mappings":";;;AACA,2CAAuC;AAEvC,MAAa,WAAW;aACN,cAAS,GAAG,GAAG,CAAC;aAChB,oBAAe,GAAG,0BAA0B,CAAC;aAC7C,iBAAY,GAAG,CAAC,CAAC;aACjB,YAAO,GAAG,mBAAmB,CAAC;IAE9C,6LAA6L;IAC7L,MAAM,CAAC,KAAK,CAAC,IAA8B;QACzC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAEvB,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,MAAM,IAAA,oBAAQ,EAAC;gBACb,WAAW,EAAE,yCAAyC;gBACtD,OAAO,EAAE,8CAA8C,IAAI,CAAC,YAAY,yCAAyC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;aACzI,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAA,oBAAQ,EAAC;oBACb,WAAW,EAAE,0CAA0C;oBACvD,OAAO,EAAE,yCAAyC,OAAO,yDAAyD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;iBAC1I,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,CAAC;IAED,iLAAiL;IACjL,MAAM,CAAC,OAAO,CAAC,IAAa;QAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE5C,OAAO,CACL,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY;YACpC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAC9D,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,MAAM,CAAC,OAAO,CAAC,IAAwB;QACrC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM;YAC5C,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;YACpB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;;AAhDH,kCAiDC"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import type { TErrorScope } from './definition';
|
|
2
|
+
/** Declared here, not imported from helpers' `TLogLevel` (browser-safe); a helpers guard pins them equal. */
|
|
3
|
+
export type TErrorLogLevel = 'error' | 'emerg' | 'warn' | 'info' | 'debug';
|
|
2
4
|
/** Resolved message a client renders. All fields always present - no null-checks downstream. */
|
|
3
5
|
export type TErrorNormalized = {
|
|
4
6
|
text: string;
|
|
5
7
|
code: string;
|
|
6
8
|
args: Record<string, unknown>;
|
|
7
9
|
};
|
|
8
|
-
/**
|
|
9
|
-
* The error payload `AppErrorMiddleware` puts on the wire, as a CLIENT receives it - the input to
|
|
10
|
-
* {@link ApplicationError.fromError}. Every field is optional on purpose: a client parses what a
|
|
11
|
-
* gateway, a proxy or an older server actually sent, not what it should have.
|
|
12
|
-
*/
|
|
10
|
+
/** Wire payload as a CLIENT receives it - the input to {@link ApplicationError.fromError}. Every field is optional on purpose: a client parses what a gateway, a proxy or an older server actually sent. */
|
|
13
11
|
export type TResponsedError = {
|
|
14
12
|
message?: string;
|
|
15
13
|
statusCode?: number;
|
|
@@ -18,19 +16,13 @@ export type TResponsedError = {
|
|
|
18
16
|
requestId?: string;
|
|
19
17
|
details?: Record<string, unknown>;
|
|
20
18
|
};
|
|
21
|
-
/**
|
|
22
|
-
* The message a CALLER supplies. Only `text` is required; the rest is what {@link TErrorNormalized}
|
|
23
|
-
* resolves. Every other message shape below is derived from this one.
|
|
24
|
-
*/
|
|
19
|
+
/** The message a CALLER supplies - only `text` is required, the rest is what {@link TErrorNormalized} resolves; every other message shape is derived from this one. */
|
|
25
20
|
export type TErrorMessageInput = {
|
|
26
21
|
text: string;
|
|
27
22
|
code?: TErrorKey | (string & Record<never, never>);
|
|
28
23
|
args?: Record<string, unknown>;
|
|
29
24
|
};
|
|
30
|
-
/**
|
|
31
|
-
* Catalogued message - `code` required. Typed `string`, not {@link TErrorKey}: catalogs DECLARE
|
|
32
|
-
* the registry keys, so typing against the registry would be self-referential.
|
|
33
|
-
*/
|
|
25
|
+
/** Catalogued message - `code` required, typed `string` and not {@link TErrorKey}: catalogs DECLARE the registry keys, so typing against the registry would be self-referential. */
|
|
34
26
|
export type TErrorDefinitionMessage = Omit<TErrorMessageInput, 'code'> & {
|
|
35
27
|
code: string;
|
|
36
28
|
};
|
|
@@ -54,50 +46,31 @@ export type TErrorNormalizeTransformFn = (opts: {
|
|
|
54
46
|
statusCode: number;
|
|
55
47
|
extra?: Record<string, unknown>;
|
|
56
48
|
}) => TErrorNormalized;
|
|
57
|
-
/**
|
|
58
|
-
* Shared by both input forms. Unknown keys ride the index signature into `extra`, so a throw site
|
|
59
|
-
* can attach context the framework does not model - and so does a mistyped one.
|
|
60
|
-
*/
|
|
49
|
+
/** Shared by both input forms - unknown keys ride the index signature into `extra`, so a throw site can attach context the framework does not model, and so does a mistyped key. */
|
|
61
50
|
type TErrorCommon = {
|
|
62
51
|
statusCode?: number;
|
|
63
52
|
messageArgs?: Record<string, unknown>;
|
|
64
53
|
cause?: unknown;
|
|
65
54
|
extra?: Record<string, unknown>;
|
|
66
55
|
transform?: TErrorNormalizeTransformFn;
|
|
56
|
+
logLevel?: TErrorLogLevel;
|
|
67
57
|
};
|
|
68
|
-
/**
|
|
69
|
-
* Catalogued form. `message` and `statusCode` override the definition's defaults; the object form is
|
|
70
|
-
* partial, so `{ message: { args } }` amends the args and keeps the definition's text and code.
|
|
71
|
-
*/
|
|
58
|
+
/** Catalogued form - `message` and `statusCode` override the definition's defaults; the object form is partial, so `{ message: { args } }` amends the args and keeps the definition's text and code. */
|
|
72
59
|
export type TErrorByDefinition = TErrorCommon & {
|
|
73
60
|
error: TErrorDefinition;
|
|
74
61
|
message?: TErrorMessageOverride;
|
|
75
62
|
[key: string]: unknown;
|
|
76
63
|
};
|
|
77
|
-
/**
|
|
78
|
-
* Free-form: an invariant, a misconfiguration, a failure carrying no i18n code. `message` is the
|
|
79
|
-
* only required field - most throw sites legitimately fall back to `MessageCode.DEFAULT`.
|
|
80
|
-
*/
|
|
64
|
+
/** Free-form: an invariant, a misconfiguration, a failure carrying no i18n code. `message` is the only required field - most throw sites legitimately fall back to `MessageCode.DEFAULT`. */
|
|
81
65
|
export type TErrorByField = TErrorCommon & {
|
|
82
66
|
message: TErrorMessage;
|
|
83
67
|
messageCode?: TErrorKey | (string & Record<never, never>);
|
|
84
|
-
/**
|
|
85
|
-
* Never valid here - `error` is the catalogued form's discriminant and a CONSUMED key; a wrapped
|
|
86
|
-
* failure passed as `error` would vanish. Use `cause`.
|
|
87
|
-
*/
|
|
68
|
+
/** Never valid here - `error` is the catalogued form's discriminant and a CONSUMED key, so a wrapped failure passed as `error` would vanish; use `cause`. */
|
|
88
69
|
error?: never;
|
|
89
70
|
[key: string]: unknown;
|
|
90
71
|
};
|
|
91
72
|
export type TError = TErrorByDefinition | TErrorByField;
|
|
92
|
-
/**
|
|
93
|
-
* Registers a catalog's keys with {@link IErrorKeyRegistry}:
|
|
94
|
-
*
|
|
95
|
-
* ```ts
|
|
96
|
-
* declare module '@venizia/ignis-helpers' {
|
|
97
|
-
* interface IErrorKeyRegistry extends TRegisterErrors<typeof CategoryErrors> {}
|
|
98
|
-
* }
|
|
99
|
-
* ```
|
|
100
|
-
*/
|
|
73
|
+
/** Registers a catalog's keys with {@link IErrorKeyRegistry}, via `declare module '@venizia/ignis-helpers' { interface IErrorKeyRegistry extends TRegisterErrors<typeof CategoryErrors> {} }`. */
|
|
101
74
|
export type TRegisterErrors<T extends Record<string, TErrorDefinition>> = Record<T[keyof T]['message']['code'], true>;
|
|
102
75
|
export {};
|
|
103
76
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,gGAAgG;AAChG,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,6GAA6G;AAC7G,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3E,gGAAgG;AAChG,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF,4MAA4M;AAC5M,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,uKAAuK;AACvK,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AAEF,oLAAoL;AACpL,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1F,kEAAkE;AAClE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,kBAAkB,CAAC;AAExD,qGAAqG;AACrG,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEzE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,uBAAuB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,yFAAyF;AACzF,MAAM,WAAW,iBAAiB;CAAG;AAErC,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,GAC7D,MAAM,GACN,OAAO,CAAC,MAAM,iBAAiB,EAAE,MAAM,CAAC,CAAC;AAE7C,qGAAqG;AACrG,MAAM,MAAM,0BAA0B,GAAG,CAAC,IAAI,EAAE;IAC9C,OAAO,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,KAAK,gBAAgB,CAAC;AAEvB,oLAAoL;AACpL,KAAK,YAAY,GAAG;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,wMAAwM;AACxM,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG;IAC9C,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,6LAA6L;AAC7L,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,CAAC,EAAE,SAAS,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,6JAA6J;IAC7J,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAExD,kMAAkM;AAClM,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,MAAM,CAC9E,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAC7B,IAAI,CACL,CAAC"}
|
|
@@ -9,10 +9,7 @@ export type TClass<T> = TConstructor<T> & {
|
|
|
9
9
|
};
|
|
10
10
|
export type TConstValue<T extends TClass<any>> = Extract<ValueOf<T>, string | number>;
|
|
11
11
|
export type TBindingKey = string | symbol;
|
|
12
|
-
/**
|
|
13
|
-
* Tells a CONSTRUCTOR from a RESOLVER via source text - `prototype !== undefined` is true of every
|
|
14
|
-
* non-arrow function. Sound only on ES2020+ output (classes emit as `class`); ES5 bundling breaks it.
|
|
15
|
-
*/
|
|
12
|
+
/** Tells a CONSTRUCTOR from a RESOLVER via source text - `prototype !== undefined` is true of every non-arrow function. Sound only on ES2020+ output (classes emit as `class`); ES5 bundling breaks it. */
|
|
16
13
|
export declare const isClass: <T>(target: any) => target is TClass<T>;
|
|
17
14
|
export interface IBindingTag {
|
|
18
15
|
[name: string]: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAEhD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEpC,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC;AAE1B,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACxD,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACzE,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAEtE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEtF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAEhD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEpC,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC;AAE1B,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACxD,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACzE,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAEtE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEtF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,2MAA2M;AAC3M,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,GAAG,KAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAM1D,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACrB"}
|
package/dist/esm/common/types.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tells a CONSTRUCTOR from a RESOLVER via source text - `prototype !== undefined` is true of every
|
|
3
|
-
* non-arrow function. Sound only on ES2020+ output (classes emit as `class`); ES5 bundling breaks it.
|
|
4
|
-
*/
|
|
1
|
+
/** Tells a CONSTRUCTOR from a RESOLVER via source text - `prototype !== undefined` is true of every non-arrow function. Sound only on ES2020+ output (classes emit as `class`); ES5 bundling breaks it. */
|
|
5
2
|
export const isClass = (target) => {
|
|
6
3
|
if (typeof target !== 'function' || target.prototype === undefined) {
|
|
7
4
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAeA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAeA,2MAA2M;AAC3M,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,MAAW,EAAuB,EAAE;IAC7D,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import type { IBinding } from '../binding/common/types';
|
|
2
1
|
import { BaseHelper } from '../../common/base-helper';
|
|
3
2
|
import type { TBindingKey, TClass, TNullable } from '../../common/types';
|
|
3
|
+
import type { IBinding } from '../binding/common/types';
|
|
4
4
|
import type { MetadataRegistry } from '../registry/registry';
|
|
5
5
|
import type { IContainer } from './common/types';
|
|
6
|
-
/**
|
|
7
|
-
* Container CONTRACT as a class, typed against `IBinding`. Implementations sharing no storage
|
|
8
|
-
* start here; ones that only vary resolution start at `BaseContainer`.
|
|
9
|
-
*/
|
|
6
|
+
/** Container CONTRACT as a class, typed against `IBinding` - implementations sharing no storage start here; ones that only vary resolution start at `BaseContainer`. */
|
|
10
7
|
export declare abstract class AbstractContainer extends BaseHelper implements IContainer {
|
|
11
8
|
constructor(opts?: {
|
|
12
9
|
scope: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../src/modules/container/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../src/modules/container/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { BaseHelper } from '../../common/base-helper';
|
|
2
|
-
/**
|
|
3
|
-
* Container CONTRACT as a class, typed against `IBinding`. Implementations sharing no storage
|
|
4
|
-
* start here; ones that only vary resolution start at `BaseContainer`.
|
|
5
|
-
*/
|
|
2
|
+
/** Container CONTRACT as a class, typed against `IBinding` - implementations sharing no storage start here; ones that only vary resolution start at `BaseContainer`. */
|
|
6
3
|
export class AbstractContainer extends BaseHelper {
|
|
7
4
|
constructor(opts) {
|
|
8
5
|
super({ scope: opts?.scope ?? AbstractContainer.name });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../src/modules/container/abstract.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../src/modules/container/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMlD,wKAAwK;AACxK,MAAM,OAAgB,iBAAkB,SAAQ,UAAU;IACxD,YAAY,IAAwB;QAClC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;CAsCF"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import { Binding } from '../binding/binding';
|
|
2
1
|
import { TBindingKey, TClass, TNullable } from '../../common/types';
|
|
2
|
+
import { Binding } from '../binding/binding';
|
|
3
3
|
import { AbstractContainer } from './abstract';
|
|
4
|
-
/**
|
|
5
|
-
* Storage half of the container, keyed by normalized binding-key strings. Resolution
|
|
6
|
-
* (`instantiate`) stays abstract - it is the part an implementation swaps.
|
|
7
|
-
*/
|
|
4
|
+
/** Storage half of the container, keyed by normalized binding-key strings - resolution (`instantiate`) stays abstract, it is the part an implementation swaps. */
|
|
8
5
|
export declare abstract class BaseContainer extends AbstractContainer {
|
|
9
6
|
protected bindings: Map<string, Binding<any>>;
|
|
10
7
|
constructor(opts?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/modules/container/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/modules/container/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,kKAAkK;AAClK,8BAAsB,aAAc,SAAQ,iBAAiB;IAC3D,SAAS,CAAC,QAAQ,4BAA8B;gBAEpC,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;IAI3B,mBAAmB;IAInB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ/C,OAAO,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO;IAM5C,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE;QAC3B,GAAG,EAAE,WAAW,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;KACvD,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IA2BhB,MAAM,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO;IAK3C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG,IAAI;IAK3C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QACpB,GAAG,EAAE,WAAW,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,UAAU,CAAC,EAAE,KAAK,CAAC;KACpB,GAAG,CAAC;IACI,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QACpB,GAAG,EAAE,WAAW,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,GAAG,CAAC,GAAG,SAAS;IAqBR,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE;QACvC,QAAQ,EAAE;aACP,CAAC,IAAI,MAAM,CAAC,GAAG;gBACd,GAAG,EAAE,WAAW,GAAG;oBAAE,SAAS,EAAE,MAAM,CAAC;oBAAC,GAAG,EAAE,MAAM,CAAA;iBAAE,CAAC;gBACtD,UAAU,CAAC,EAAE,OAAO,CAAC;aACtB;SACF,CAAC;KACH,GAAG;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;KAAE;IAM/B,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IAI7B,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE;QAChC,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;KACvC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE;IAyBP,KAAK,IAAI,IAAI;IAOb,KAAK,IAAI,IAAI;CAGvB"}
|
|
@@ -3,10 +3,7 @@ import { BindingKeys } from '../binding/common/constants';
|
|
|
3
3
|
import { getError } from '../error';
|
|
4
4
|
import { metadataRegistry } from '../registry/registry';
|
|
5
5
|
import { AbstractContainer } from './abstract';
|
|
6
|
-
/**
|
|
7
|
-
* Storage half of the container, keyed by normalized binding-key strings. Resolution
|
|
8
|
-
* (`instantiate`) stays abstract - it is the part an implementation swaps.
|
|
9
|
-
*/
|
|
6
|
+
/** Storage half of the container, keyed by normalized binding-key strings - resolution (`instantiate`) stays abstract, it is the part an implementation swaps. */
|
|
10
7
|
export class BaseContainer extends AbstractContainer {
|
|
11
8
|
constructor(opts) {
|
|
12
9
|
super({ scope: opts?.scope ?? BaseContainer.name });
|
|
@@ -86,13 +83,11 @@ export class BaseContainer extends AbstractContainer {
|
|
|
86
83
|
if (!binding.hasTag(tag)) {
|
|
87
84
|
continue;
|
|
88
85
|
}
|
|
89
|
-
if (exclude) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
continue;
|
|
95
|
-
}
|
|
86
|
+
if (exclude instanceof Array && exclude.length > 0 && exclude.includes(binding.key)) {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
if (exclude instanceof Set && exclude.size > 0 && exclude.has(binding.key)) {
|
|
90
|
+
continue;
|
|
96
91
|
}
|
|
97
92
|
rs.push(binding);
|
|
98
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/modules/container/base.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/modules/container/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { TError, TErrorNormalized, TResponsedError } from './types';
|
|
1
|
+
import type { TError, TErrorLogLevel, TErrorNormalized, TResponsedError } from './types';
|
|
2
2
|
export declare class ApplicationError extends Error {
|
|
3
3
|
statusCode: number;
|
|
4
4
|
normalized: TErrorNormalized;
|
|
5
5
|
extra?: Record<string, unknown>;
|
|
6
|
+
readonly logLevel?: TErrorLogLevel;
|
|
6
7
|
constructor(opts: TError);
|
|
7
8
|
static getError(opts: TError): ApplicationError;
|
|
8
9
|
static fromError(opts: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-error.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"app-error.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAgBzF,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;gBAEvB,IAAI,EAAE,MAAM;IA2CxB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAI5B,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,eAAe,CAAA;KAAE,GAAG,gBAAgB;CAcrE;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,gBAAmD,CAAC;AAE5F,eAAO,MAAM,SAAS,GAAI,MAAM;IAAE,KAAK,EAAE,eAAe,CAAA;CAAE,KAAG,gBAC3B,CAAC;AAEnC,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,gBAE5D,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC"}
|
|
@@ -10,22 +10,23 @@ const KNOWN_KEYS = [
|
|
|
10
10
|
'cause',
|
|
11
11
|
'extra',
|
|
12
12
|
'transform',
|
|
13
|
+
'logLevel',
|
|
13
14
|
'name',
|
|
14
15
|
];
|
|
15
16
|
export class ApplicationError extends Error {
|
|
16
17
|
constructor(opts) {
|
|
17
|
-
const { statusCode, messageArgs, cause, extra, transform } = opts;
|
|
18
|
+
const { statusCode, messageArgs, cause, extra, transform, logLevel } = opts;
|
|
18
19
|
// Index signature defeats `in` narrowing - read the discriminant and cast.
|
|
19
20
|
const definition = 'error' in opts ? opts.error : undefined;
|
|
20
21
|
const input = opts.message;
|
|
21
22
|
const override = typeof input === 'string' ? { text: input } : input;
|
|
22
|
-
// `?.message?.`
|
|
23
|
-
// call site as anything at all, and a bare `definition?.message.text` throws on a malformed one.
|
|
23
|
+
// `?.message?.` has to guard BOTH: `error` reaches here from an untyped call site as anything at all, and a bare `definition?.message.text` throws on a malformed one.
|
|
24
24
|
const message = override?.text ?? definition?.message?.text ?? '';
|
|
25
25
|
const messageCode = MessageCode.resolve(override?.code ?? definition?.message?.code ?? opts.messageCode);
|
|
26
26
|
const args = override?.args ?? messageArgs ?? definition?.message?.args;
|
|
27
27
|
super(message, cause === undefined ? undefined : { cause });
|
|
28
28
|
this.statusCode = statusCode ?? definition?.statusCode ?? 400;
|
|
29
|
+
this.logLevel = logLevel;
|
|
29
30
|
// Explicit `extra` wins over swept keys.
|
|
30
31
|
const merged = {
|
|
31
32
|
...omit(opts, KNOWN_KEYS),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,yDAAyD;AACzD,MAAM,UAAU,GAAG;IACjB,OAAO;IACP,SAAS;IACT,aAAa;IACb,YAAY;IACZ,aAAa;IACb,OAAO;IACP,OAAO;IACP,WAAW;IACX,MAAM;CACP,CAAC;AAEF,MAAM,OAAO,gBAAiB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,17 +4,11 @@ export declare class MessageCode {
|
|
|
4
4
|
static readonly SEGMENT_PATTERN: RegExp;
|
|
5
5
|
static readonly MIN_SEGMENTS = 2;
|
|
6
6
|
static readonly DEFAULT = "core.system_error";
|
|
7
|
-
/**
|
|
8
|
-
* Builds a code from its segments. Throws on a malformed one - codes are declared at module scope,
|
|
9
|
-
* so a bad code fails the process at import instead of shipping dead into production.
|
|
10
|
-
*/
|
|
7
|
+
/** Builds a code from its segments, throwing on a malformed one - codes are declared at module scope, so a bad code fails the process at import instead of shipping dead into production. */
|
|
11
8
|
static build(opts: {
|
|
12
9
|
parts: Array<string>;
|
|
13
10
|
}): string;
|
|
14
|
-
/**
|
|
15
|
-
* True when `code` is well-formed. A guard for a code arriving from outside, so it takes
|
|
16
|
-
* `unknown`: one that throws on the very input it exists to screen is not a guard.
|
|
17
|
-
*/
|
|
11
|
+
/** True when `code` is well-formed. Takes `unknown` because it guards codes arriving from outside - a guard that throws on the very input it exists to screen is not a guard. */
|
|
18
12
|
static isValid(code: unknown): boolean;
|
|
19
13
|
/** Normalizes an absent, empty or non-string code to {@link DEFAULT}. */
|
|
20
14
|
static resolve(code?: TNullable<string>): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-code.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/message-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,SAAS,OAAO;IAChC,MAAM,CAAC,QAAQ,CAAC,eAAe,SAA8B;IAC7D,MAAM,CAAC,QAAQ,CAAC,YAAY,KAAK;IACjC,MAAM,CAAC,QAAQ,CAAC,OAAO,uBAAuB;IAE9C
|
|
1
|
+
{"version":3,"file":"message-code.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/message-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,SAAS,OAAO;IAChC,MAAM,CAAC,QAAQ,CAAC,eAAe,SAA8B;IAC7D,MAAM,CAAC,QAAQ,CAAC,YAAY,KAAK;IACjC,MAAM,CAAC,QAAQ,CAAC,OAAO,uBAAuB;IAE9C,6LAA6L;IAC7L,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,MAAM;IAsBpD,iLAAiL;IACjL,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;IAatC,yEAAyE;IACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM;CAKjD"}
|
|
@@ -4,10 +4,7 @@ export class MessageCode {
|
|
|
4
4
|
static { this.SEGMENT_PATTERN = /^[a-z0-9]+(_[a-z0-9]+)*$/; }
|
|
5
5
|
static { this.MIN_SEGMENTS = 2; }
|
|
6
6
|
static { this.DEFAULT = 'core.system_error'; }
|
|
7
|
-
/**
|
|
8
|
-
* Builds a code from its segments. Throws on a malformed one - codes are declared at module scope,
|
|
9
|
-
* so a bad code fails the process at import instead of shipping dead into production.
|
|
10
|
-
*/
|
|
7
|
+
/** Builds a code from its segments, throwing on a malformed one - codes are declared at module scope, so a bad code fails the process at import instead of shipping dead into production. */
|
|
11
8
|
static build(opts) {
|
|
12
9
|
const { parts } = opts;
|
|
13
10
|
if (parts.length < this.MIN_SEGMENTS) {
|
|
@@ -26,10 +23,7 @@ export class MessageCode {
|
|
|
26
23
|
}
|
|
27
24
|
return parts.join(this.SEPARATOR).toLowerCase();
|
|
28
25
|
}
|
|
29
|
-
/**
|
|
30
|
-
* True when `code` is well-formed. A guard for a code arriving from outside, so it takes
|
|
31
|
-
* `unknown`: one that throws on the very input it exists to screen is not a guard.
|
|
32
|
-
*/
|
|
26
|
+
/** True when `code` is well-formed. Takes `unknown` because it guards codes arriving from outside - a guard that throws on the very input it exists to screen is not a guard. */
|
|
33
27
|
static isValid(code) {
|
|
34
28
|
if (typeof code !== 'string') {
|
|
35
29
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-code.js","sourceRoot":"","sources":["../../../../src/modules/error/message-code.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,WAAW;aACN,cAAS,GAAG,GAAG,CAAC;aAChB,oBAAe,GAAG,0BAA0B,CAAC;aAC7C,iBAAY,GAAG,CAAC,CAAC;aACjB,YAAO,GAAG,mBAAmB,CAAC;IAE9C
|
|
1
|
+
{"version":3,"file":"message-code.js","sourceRoot":"","sources":["../../../../src/modules/error/message-code.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,WAAW;aACN,cAAS,GAAG,GAAG,CAAC;aAChB,oBAAe,GAAG,0BAA0B,CAAC;aAC7C,iBAAY,GAAG,CAAC,CAAC;aACjB,YAAO,GAAG,mBAAmB,CAAC;IAE9C,6LAA6L;IAC7L,MAAM,CAAC,KAAK,CAAC,IAA8B;QACzC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAEvB,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,MAAM,QAAQ,CAAC;gBACb,WAAW,EAAE,yCAAyC;gBACtD,OAAO,EAAE,8CAA8C,IAAI,CAAC,YAAY,yCAAyC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;aACzI,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxC,MAAM,QAAQ,CAAC;oBACb,WAAW,EAAE,0CAA0C;oBACvD,OAAO,EAAE,yCAAyC,OAAO,yDAAyD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;iBAC1I,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,CAAC;IAED,iLAAiL;IACjL,MAAM,CAAC,OAAO,CAAC,IAAa;QAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE5C,OAAO,CACL,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY;YACpC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAC9D,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,MAAM,CAAC,OAAO,CAAC,IAAwB;QACrC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM;YAC5C,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;YACpB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import type { TErrorScope } from './definition';
|
|
2
|
+
/** Declared here, not imported from helpers' `TLogLevel` (browser-safe); a helpers guard pins them equal. */
|
|
3
|
+
export type TErrorLogLevel = 'error' | 'emerg' | 'warn' | 'info' | 'debug';
|
|
2
4
|
/** Resolved message a client renders. All fields always present - no null-checks downstream. */
|
|
3
5
|
export type TErrorNormalized = {
|
|
4
6
|
text: string;
|
|
5
7
|
code: string;
|
|
6
8
|
args: Record<string, unknown>;
|
|
7
9
|
};
|
|
8
|
-
/**
|
|
9
|
-
* The error payload `AppErrorMiddleware` puts on the wire, as a CLIENT receives it - the input to
|
|
10
|
-
* {@link ApplicationError.fromError}. Every field is optional on purpose: a client parses what a
|
|
11
|
-
* gateway, a proxy or an older server actually sent, not what it should have.
|
|
12
|
-
*/
|
|
10
|
+
/** Wire payload as a CLIENT receives it - the input to {@link ApplicationError.fromError}. Every field is optional on purpose: a client parses what a gateway, a proxy or an older server actually sent. */
|
|
13
11
|
export type TResponsedError = {
|
|
14
12
|
message?: string;
|
|
15
13
|
statusCode?: number;
|
|
@@ -18,19 +16,13 @@ export type TResponsedError = {
|
|
|
18
16
|
requestId?: string;
|
|
19
17
|
details?: Record<string, unknown>;
|
|
20
18
|
};
|
|
21
|
-
/**
|
|
22
|
-
* The message a CALLER supplies. Only `text` is required; the rest is what {@link TErrorNormalized}
|
|
23
|
-
* resolves. Every other message shape below is derived from this one.
|
|
24
|
-
*/
|
|
19
|
+
/** The message a CALLER supplies - only `text` is required, the rest is what {@link TErrorNormalized} resolves; every other message shape is derived from this one. */
|
|
25
20
|
export type TErrorMessageInput = {
|
|
26
21
|
text: string;
|
|
27
22
|
code?: TErrorKey | (string & Record<never, never>);
|
|
28
23
|
args?: Record<string, unknown>;
|
|
29
24
|
};
|
|
30
|
-
/**
|
|
31
|
-
* Catalogued message - `code` required. Typed `string`, not {@link TErrorKey}: catalogs DECLARE
|
|
32
|
-
* the registry keys, so typing against the registry would be self-referential.
|
|
33
|
-
*/
|
|
25
|
+
/** Catalogued message - `code` required, typed `string` and not {@link TErrorKey}: catalogs DECLARE the registry keys, so typing against the registry would be self-referential. */
|
|
34
26
|
export type TErrorDefinitionMessage = Omit<TErrorMessageInput, 'code'> & {
|
|
35
27
|
code: string;
|
|
36
28
|
};
|
|
@@ -54,50 +46,31 @@ export type TErrorNormalizeTransformFn = (opts: {
|
|
|
54
46
|
statusCode: number;
|
|
55
47
|
extra?: Record<string, unknown>;
|
|
56
48
|
}) => TErrorNormalized;
|
|
57
|
-
/**
|
|
58
|
-
* Shared by both input forms. Unknown keys ride the index signature into `extra`, so a throw site
|
|
59
|
-
* can attach context the framework does not model - and so does a mistyped one.
|
|
60
|
-
*/
|
|
49
|
+
/** Shared by both input forms - unknown keys ride the index signature into `extra`, so a throw site can attach context the framework does not model, and so does a mistyped key. */
|
|
61
50
|
type TErrorCommon = {
|
|
62
51
|
statusCode?: number;
|
|
63
52
|
messageArgs?: Record<string, unknown>;
|
|
64
53
|
cause?: unknown;
|
|
65
54
|
extra?: Record<string, unknown>;
|
|
66
55
|
transform?: TErrorNormalizeTransformFn;
|
|
56
|
+
logLevel?: TErrorLogLevel;
|
|
67
57
|
};
|
|
68
|
-
/**
|
|
69
|
-
* Catalogued form. `message` and `statusCode` override the definition's defaults; the object form is
|
|
70
|
-
* partial, so `{ message: { args } }` amends the args and keeps the definition's text and code.
|
|
71
|
-
*/
|
|
58
|
+
/** Catalogued form - `message` and `statusCode` override the definition's defaults; the object form is partial, so `{ message: { args } }` amends the args and keeps the definition's text and code. */
|
|
72
59
|
export type TErrorByDefinition = TErrorCommon & {
|
|
73
60
|
error: TErrorDefinition;
|
|
74
61
|
message?: TErrorMessageOverride;
|
|
75
62
|
[key: string]: unknown;
|
|
76
63
|
};
|
|
77
|
-
/**
|
|
78
|
-
* Free-form: an invariant, a misconfiguration, a failure carrying no i18n code. `message` is the
|
|
79
|
-
* only required field - most throw sites legitimately fall back to `MessageCode.DEFAULT`.
|
|
80
|
-
*/
|
|
64
|
+
/** Free-form: an invariant, a misconfiguration, a failure carrying no i18n code. `message` is the only required field - most throw sites legitimately fall back to `MessageCode.DEFAULT`. */
|
|
81
65
|
export type TErrorByField = TErrorCommon & {
|
|
82
66
|
message: TErrorMessage;
|
|
83
67
|
messageCode?: TErrorKey | (string & Record<never, never>);
|
|
84
|
-
/**
|
|
85
|
-
* Never valid here - `error` is the catalogued form's discriminant and a CONSUMED key; a wrapped
|
|
86
|
-
* failure passed as `error` would vanish. Use `cause`.
|
|
87
|
-
*/
|
|
68
|
+
/** Never valid here - `error` is the catalogued form's discriminant and a CONSUMED key, so a wrapped failure passed as `error` would vanish; use `cause`. */
|
|
88
69
|
error?: never;
|
|
89
70
|
[key: string]: unknown;
|
|
90
71
|
};
|
|
91
72
|
export type TError = TErrorByDefinition | TErrorByField;
|
|
92
|
-
/**
|
|
93
|
-
* Registers a catalog's keys with {@link IErrorKeyRegistry}:
|
|
94
|
-
*
|
|
95
|
-
* ```ts
|
|
96
|
-
* declare module '@venizia/ignis-helpers' {
|
|
97
|
-
* interface IErrorKeyRegistry extends TRegisterErrors<typeof CategoryErrors> {}
|
|
98
|
-
* }
|
|
99
|
-
* ```
|
|
100
|
-
*/
|
|
73
|
+
/** Registers a catalog's keys with {@link IErrorKeyRegistry}, via `declare module '@venizia/ignis-helpers' { interface IErrorKeyRegistry extends TRegisterErrors<typeof CategoryErrors> {} }`. */
|
|
101
74
|
export type TRegisterErrors<T extends Record<string, TErrorDefinition>> = Record<T[keyof T]['message']['code'], true>;
|
|
102
75
|
export {};
|
|
103
76
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,gGAAgG;AAChG,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,6GAA6G;AAC7G,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3E,gGAAgG;AAChG,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF,4MAA4M;AAC5M,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,uKAAuK;AACvK,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AAEF,oLAAoL;AACpL,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1F,kEAAkE;AAClE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,kBAAkB,CAAC;AAExD,qGAAqG;AACrG,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEzE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,uBAAuB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,yFAAyF;AACzF,MAAM,WAAW,iBAAiB;CAAG;AAErC,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,GAC7D,MAAM,GACN,OAAO,CAAC,MAAM,iBAAiB,EAAE,MAAM,CAAC,CAAC;AAE7C,qGAAqG;AACrG,MAAM,MAAM,0BAA0B,GAAG,CAAC,IAAI,EAAE;IAC9C,OAAO,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,KAAK,gBAAgB,CAAC;AAEvB,oLAAoL;AACpL,KAAK,YAAY,GAAG;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,wMAAwM;AACxM,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG;IAC9C,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,6LAA6L;AAC7L,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,CAAC,EAAE,SAAS,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,6JAA6J;IAC7J,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAExD,kMAAkM;AAClM,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,MAAM,CAC9E,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAC7B,IAAI,CACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis-inversion",
|
|
3
|
-
"version": "0.1.1-
|
|
3
|
+
"version": "0.1.1-4",
|
|
4
4
|
"description": "Lightweight, high-performance Dependency Injection and Inversion of Control container for TypeScript (~350 lines). Features decorator-based constructor and property injection, fluent Binding API, singleton/transient scoping, namespace auto-tagging, Provider pattern, tag-based discovery, and reflect-metadata integration. Inspired by LoopBack 4 and InversifyJS but simpler. Zero framework lock-in — works standalone or with Ignis.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"architecture",
|
|
@@ -103,17 +103,17 @@
|
|
|
103
103
|
"prepublishOnly": "bun run rebuild"
|
|
104
104
|
},
|
|
105
105
|
"dependencies": {
|
|
106
|
-
"lodash": "
|
|
107
|
-
"reflect-metadata": "
|
|
108
|
-
"zod": "
|
|
106
|
+
"lodash": "catalog:",
|
|
107
|
+
"reflect-metadata": "catalog:",
|
|
108
|
+
"zod": "catalog:"
|
|
109
109
|
},
|
|
110
110
|
"devDependencies": {
|
|
111
|
-
"@types/bun": "
|
|
112
|
-
"@types/lodash": "
|
|
111
|
+
"@types/bun": "catalog:",
|
|
112
|
+
"@types/lodash": "catalog:",
|
|
113
113
|
"@venizia/dev-configs": "^0.1.0",
|
|
114
|
-
"eslint": "
|
|
115
|
-
"prettier": "
|
|
116
|
-
"tsc-alias": "
|
|
117
|
-
"typescript": "
|
|
114
|
+
"eslint": "catalog:",
|
|
115
|
+
"prettier": "catalog:",
|
|
116
|
+
"tsc-alias": "catalog:",
|
|
117
|
+
"typescript": "catalog:"
|
|
118
118
|
}
|
|
119
119
|
}
|