@venizia/ignis-kernel 0.2.0-14 → 0.2.0-16
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/base/applications/artifact-index.d.ts +25 -0
- package/dist/cjs/base/applications/artifact-index.d.ts.map +1 -0
- package/dist/cjs/base/applications/artifact-index.js +91 -0
- package/dist/cjs/base/applications/artifact-index.js.map +1 -0
- package/dist/cjs/base/applications/boot-sequence.d.ts +1 -0
- package/dist/cjs/base/applications/boot-sequence.d.ts.map +1 -1
- package/dist/cjs/base/applications/boot-sequence.js +2 -0
- package/dist/cjs/base/applications/boot-sequence.js.map +1 -1
- package/dist/cjs/base/applications/common/types/application.d.ts +8 -0
- package/dist/cjs/base/applications/common/types/application.d.ts.map +1 -1
- package/dist/cjs/base/applications/rest.d.ts +7 -5
- package/dist/cjs/base/applications/rest.d.ts.map +1 -1
- package/dist/cjs/base/applications/rest.js +76 -60
- package/dist/cjs/base/applications/rest.js.map +1 -1
- package/dist/cjs/base/controllers/common/constants.d.ts +8 -0
- package/dist/cjs/base/controllers/common/constants.d.ts.map +1 -1
- package/dist/cjs/base/controllers/common/constants.js +11 -1
- package/dist/cjs/base/controllers/common/constants.js.map +1 -1
- package/dist/cjs/base/controllers/factory/controller.d.ts +17 -11
- package/dist/cjs/base/controllers/factory/controller.d.ts.map +1 -1
- package/dist/cjs/base/controllers/factory/crud/abstract.d.ts +2 -25
- package/dist/cjs/base/controllers/factory/crud/abstract.d.ts.map +1 -1
- package/dist/cjs/base/controllers/factory/crud/abstract.js +1 -21
- package/dist/cjs/base/controllers/factory/crud/abstract.js.map +1 -1
- package/dist/cjs/base/controllers/factory/crud/persistable.d.ts.map +1 -1
- package/dist/cjs/base/controllers/factory/crud/persistable.js +11 -10
- package/dist/cjs/base/controllers/factory/crud/persistable.js.map +1 -1
- package/dist/cjs/base/controllers/factory/crud/readable.d.ts.map +1 -1
- package/dist/cjs/base/controllers/factory/crud/readable.js +8 -8
- package/dist/cjs/base/controllers/factory/crud/readable.js.map +1 -1
- package/dist/cjs/base/controllers/rest/base.d.ts +34 -2
- package/dist/cjs/base/controllers/rest/base.d.ts.map +1 -1
- package/dist/cjs/base/controllers/rest/base.js +35 -0
- package/dist/cjs/base/controllers/rest/base.js.map +1 -1
- package/dist/cjs/base/metadata/injectable.d.ts.map +1 -1
- package/dist/cjs/base/metadata/injectable.js.map +1 -1
- package/dist/esm/base/applications/artifact-index.d.ts +25 -0
- package/dist/esm/base/applications/artifact-index.d.ts.map +1 -0
- package/dist/esm/base/applications/artifact-index.js +87 -0
- package/dist/esm/base/applications/artifact-index.js.map +1 -0
- package/dist/esm/base/applications/boot-sequence.d.ts +1 -0
- package/dist/esm/base/applications/boot-sequence.d.ts.map +1 -1
- package/dist/esm/base/applications/boot-sequence.js +2 -0
- package/dist/esm/base/applications/boot-sequence.js.map +1 -1
- package/dist/esm/base/applications/common/types/application.d.ts +8 -0
- package/dist/esm/base/applications/common/types/application.d.ts.map +1 -1
- package/dist/esm/base/applications/rest.d.ts +7 -5
- package/dist/esm/base/applications/rest.d.ts.map +1 -1
- package/dist/esm/base/applications/rest.js +76 -60
- package/dist/esm/base/applications/rest.js.map +1 -1
- package/dist/esm/base/controllers/common/constants.d.ts +8 -0
- package/dist/esm/base/controllers/common/constants.d.ts.map +1 -1
- package/dist/esm/base/controllers/common/constants.js +9 -0
- package/dist/esm/base/controllers/common/constants.js.map +1 -1
- package/dist/esm/base/controllers/factory/controller.d.ts +17 -11
- package/dist/esm/base/controllers/factory/controller.d.ts.map +1 -1
- package/dist/esm/base/controllers/factory/crud/abstract.d.ts +2 -25
- package/dist/esm/base/controllers/factory/crud/abstract.d.ts.map +1 -1
- package/dist/esm/base/controllers/factory/crud/abstract.js +1 -21
- package/dist/esm/base/controllers/factory/crud/abstract.js.map +1 -1
- package/dist/esm/base/controllers/factory/crud/persistable.d.ts.map +1 -1
- package/dist/esm/base/controllers/factory/crud/persistable.js +11 -10
- package/dist/esm/base/controllers/factory/crud/persistable.js.map +1 -1
- package/dist/esm/base/controllers/factory/crud/readable.d.ts.map +1 -1
- package/dist/esm/base/controllers/factory/crud/readable.js +8 -8
- package/dist/esm/base/controllers/factory/crud/readable.js.map +1 -1
- package/dist/esm/base/controllers/rest/base.d.ts +34 -2
- package/dist/esm/base/controllers/rest/base.d.ts.map +1 -1
- package/dist/esm/base/controllers/rest/base.js +36 -1
- package/dist/esm/base/controllers/rest/base.js.map +1 -1
- package/dist/esm/base/metadata/injectable.d.ts.map +1 -1
- package/dist/esm/base/metadata/injectable.js.map +1 -1
- package/package.json +4 -4
|
@@ -40,6 +40,15 @@ export declare class ControllerFactory extends BaseHelper {
|
|
|
40
40
|
context: import("../common").TRouteContext<RouteEnv>;
|
|
41
41
|
}): Promise<import("../common").TJsonResponse<unknown, 200>>;
|
|
42
42
|
repository: AbstractRepository<TDataObject, TPersistObject, import("../../repositories").IExtraOptions>;
|
|
43
|
+
bulkWhereError(opts: {
|
|
44
|
+
context: import("../common").TRouteContext<RouteEnv>;
|
|
45
|
+
where?: object;
|
|
46
|
+
}): import("../common").TJsonResponse<unknown, 400> | undefined;
|
|
47
|
+
measure<R>(opts: {
|
|
48
|
+
scope: string;
|
|
49
|
+
args: unknown;
|
|
50
|
+
task: () => Promise<R>;
|
|
51
|
+
}): Promise<any>;
|
|
43
52
|
normalizeCountData<ResponseSchema extends unknown, RequestContext extends import("../common").TRouteContext<RouteEnv> = import("../common").TRouteContext<RouteEnv>, ResponseData extends {
|
|
44
53
|
count: number;
|
|
45
54
|
data?: import("@venizia/ignis-helpers/common").TNullable<ResponseSchema>;
|
|
@@ -48,28 +57,25 @@ export declare class ControllerFactory extends BaseHelper {
|
|
|
48
57
|
data?: import("@venizia/ignis-helpers/common").TNullable<ResponseSchema>;
|
|
49
58
|
}>(opts: {
|
|
50
59
|
context: RequestContext;
|
|
51
|
-
|
|
60
|
+
payload: ResponseData;
|
|
52
61
|
}): ResponseData | import("@venizia/ignis-helpers/common").TNullable<ResponseSchema>;
|
|
53
62
|
respond<R>(opts: {
|
|
54
63
|
context: import("../common").TRouteContext<RouteEnv>;
|
|
55
|
-
format: "
|
|
56
|
-
|
|
64
|
+
format: import("../common").TResponseFormat;
|
|
65
|
+
payload: {
|
|
57
66
|
count: number;
|
|
58
67
|
data?: import("@venizia/ignis-helpers/common").TNullable<R>;
|
|
59
68
|
};
|
|
69
|
+
range?: import("../../repositories").TDataRange;
|
|
60
70
|
}): import("@venizia/ignis-helpers/common").TNullable<R> | {
|
|
61
71
|
count: number;
|
|
62
72
|
data?: import("@venizia/ignis-helpers/common").TNullable<R>;
|
|
63
73
|
};
|
|
64
|
-
|
|
74
|
+
setListHeaders(opts: {
|
|
65
75
|
context: import("../common").TRouteContext<RouteEnv>;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
scope: string;
|
|
70
|
-
args: unknown;
|
|
71
|
-
task: () => Promise<R>;
|
|
72
|
-
}): Promise<any>;
|
|
76
|
+
range: import("../../repositories").TDataRange;
|
|
77
|
+
count: number;
|
|
78
|
+
}): void;
|
|
73
79
|
toHonoHandler<ResponseType = unknown>(opts: {
|
|
74
80
|
handler: import("../common").TRouteHandler<ResponseType, RouteEnv>;
|
|
75
81
|
}): import("hono").Handler<RouteEnv, string, import("hono").Input, (Response | Promise<Response>) | (import("@hono/zod-openapi").RouteConfigToTypedResponse<import("@hono/zod-openapi").RouteConfig> | Promise<import("@hono/zod-openapi").RouteConfigToTypedResponse<import("@hono/zod-openapi").RouteConfig>>)>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../../src/base/controllers/factory/controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAY,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,WAAW,CAAC;AAInB,6EAA6E;AAC7E,qBAAa,iBAAkB,SAAQ,UAAU;;IAK/C,MAAM,CAAC,oBAAoB,CACzB,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,EACnF,MAAM,SAAS,mBAAmB,GAAG,mBAAmB,EACxD,QAAQ,SAAS,GAAG,GAAG,GAAG,EAC1B,WAAW,SAAS,MAAM,GAAG,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,GAAG,EAC7B,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,WAAW,SAAS,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,EACvD,cAAc,SAAS,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,EAC7D,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC;yBAuCtB,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC;YAUvE,iGAAiG;uBAC7E,cAAc,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../../src/base/controllers/factory/controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAY,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,WAAW,CAAC;AAInB,6EAA6E;AAC7E,qBAAa,iBAAkB,SAAQ,UAAU;;IAK/C,MAAM,CAAC,oBAAoB,CACzB,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,EACnF,MAAM,SAAS,mBAAmB,GAAG,mBAAmB,EACxD,QAAQ,SAAS,GAAG,GAAG,GAAG,EAC1B,WAAW,SAAS,MAAM,GAAG,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,GAAG,EAC7B,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,WAAW,SAAS,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,EACvD,cAAc,SAAS,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,EAC7D,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC;yBAuCtB,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC;YAUvE,iGAAiG;uBAC7E,cAAc,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAAxC,CAAH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { AbstractEntity } from '../../../models/base';
|
|
2
2
|
import type { AbstractRepository } from '../../../repositories';
|
|
3
3
|
import type { TAnyObjectSchema } from '../../../../utilities/schema.utility';
|
|
4
|
-
import type { AnyType
|
|
4
|
+
import type { AnyType } from '@venizia/ignis-helpers/common';
|
|
5
5
|
import type { Env, Schema } from 'hono';
|
|
6
6
|
import type { TEntityDataObject, TEntityPersistObject, TRouteContext } from '../../common';
|
|
7
7
|
import { BaseRestController } from '../../rest/base';
|
|
8
|
-
/** Base tier of a generated CRUD controller - repository handle
|
|
8
|
+
/** Base tier of a generated CRUD controller - the repository handle; the response helpers (`respond`, `setListHeaders`) live on BaseRestController so hand-written controllers share them. Read and write verbs are layered on by ReadableCrudController / PersistableCrudController. */
|
|
9
9
|
export declare abstract class AbstractCrudController<TEntity extends AbstractEntity<TAnyObjectSchema> = AbstractEntity<TAnyObjectSchema>, RouteEnv extends Env = Env, RouteSchema extends Schema = {}, BasePath extends string = '/', ConfigurableOptions extends object = {}, TDataObject extends object = TEntityDataObject<TEntity>, TPersistObject extends object = TEntityPersistObject<TEntity>> extends BaseRestController<RouteEnv, RouteSchema, BasePath, ConfigurableOptions> {
|
|
10
10
|
repository: AbstractRepository<TDataObject, TPersistObject>;
|
|
11
11
|
constructor(opts: {
|
|
@@ -15,29 +15,6 @@ export declare abstract class AbstractCrudController<TEntity extends AbstractEnt
|
|
|
15
15
|
repository: AbstractRepository<TDataObject, TPersistObject>;
|
|
16
16
|
definitions: AnyType;
|
|
17
17
|
});
|
|
18
|
-
/** Returns the full `{ count, data }` envelope or just `data`, per the x-request-count header. */
|
|
19
|
-
normalizeCountData<ResponseSchema extends AnyType, RequestContext extends TRouteContext<RouteEnv> = TRouteContext<RouteEnv>, ResponseData extends {
|
|
20
|
-
count: number;
|
|
21
|
-
data?: TNullable<ResponseSchema>;
|
|
22
|
-
} = {
|
|
23
|
-
count: number;
|
|
24
|
-
data?: TNullable<ResponseSchema>;
|
|
25
|
-
}>(opts: {
|
|
26
|
-
context: RequestContext;
|
|
27
|
-
responseData: ResponseData;
|
|
28
|
-
}): TNullable<ResponseSchema> | ResponseData;
|
|
29
|
-
/** Sets the response-format header, then normalizes count/data per the request-count header. */
|
|
30
|
-
respond<R>(opts: {
|
|
31
|
-
context: TRouteContext<RouteEnv>;
|
|
32
|
-
format: 'object' | 'array';
|
|
33
|
-
responseData: {
|
|
34
|
-
count: number;
|
|
35
|
-
data?: TNullable<R>;
|
|
36
|
-
};
|
|
37
|
-
}): TNullable<R> | {
|
|
38
|
-
count: number;
|
|
39
|
-
data?: TNullable<R>;
|
|
40
|
-
};
|
|
41
18
|
/** 400 when a bulk operation is missing its `where` filter; undefined when it is present. */
|
|
42
19
|
bulkWhereError(opts: {
|
|
43
20
|
context: TRouteContext<RouteEnv>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../../../src/base/controllers/factory/crud/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../../../src/base/controllers/factory/crud/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,yRAAyR;AACzR,8BAAsB,sBAAsB,CAC1C,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,EACnF,QAAQ,SAAS,GAAG,GAAG,GAAG,EAC1B,WAAW,SAAS,MAAM,GAAG,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,GAAG,EAC7B,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,WAAW,SAAS,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,EACvD,cAAc,SAAS,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAC7D,SAAQ,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,CAAC;IAChF,UAAU,EAAE,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAEhD,IAAI,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC5D,WAAW,EAAE,OAAO,CAAC;KACtB;IAMD,6FAA6F;IAC7F,cAAc,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;CAU1E"}
|
|
@@ -2,34 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AbstractCrudController = void 0;
|
|
4
4
|
const common_1 = require("@venizia/ignis-helpers/common");
|
|
5
|
-
const core_1 = require("@venizia/ignis-helpers/core");
|
|
6
5
|
const base_1 = require("../../rest/base");
|
|
7
|
-
/** Base tier of a generated CRUD controller - repository handle
|
|
6
|
+
/** Base tier of a generated CRUD controller - the repository handle; the response helpers (`respond`, `setListHeaders`) live on BaseRestController so hand-written controllers share them. Read and write verbs are layered on by ReadableCrudController / PersistableCrudController. */
|
|
8
7
|
class AbstractCrudController extends base_1.BaseRestController {
|
|
9
8
|
constructor(opts) {
|
|
10
9
|
super({ scope: opts.scope, path: opts.path, isStrict: opts.isStrict });
|
|
11
10
|
this.repository = opts.repository;
|
|
12
11
|
this.definitions = opts.definitions;
|
|
13
12
|
}
|
|
14
|
-
/** Returns the full `{ count, data }` envelope or just `data`, per the x-request-count header. */
|
|
15
|
-
normalizeCountData(opts) {
|
|
16
|
-
const { context, responseData } = opts;
|
|
17
|
-
const requestCountData = context.req.header(common_1.HTTP.Headers.REQUEST_COUNT_DATA) ?? 'true';
|
|
18
|
-
const useCountData = (0, core_1.toBoolean)(requestCountData);
|
|
19
|
-
context.header(common_1.HTTP.Headers.RESPONSE_COUNT_DATA, responseData.count.toString());
|
|
20
|
-
if (useCountData) {
|
|
21
|
-
return responseData;
|
|
22
|
-
}
|
|
23
|
-
return responseData.data;
|
|
24
|
-
}
|
|
25
|
-
/** Sets the response-format header, then normalizes count/data per the request-count header. */
|
|
26
|
-
respond(opts) {
|
|
27
|
-
opts.context.header(common_1.HTTP.Headers.RESPONSE_FORMAT, opts.format);
|
|
28
|
-
return this.normalizeCountData({
|
|
29
|
-
context: opts.context,
|
|
30
|
-
responseData: opts.responseData,
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
13
|
/** 400 when a bulk operation is missing its `where` filter; undefined when it is present. */
|
|
34
14
|
bulkWhereError(opts) {
|
|
35
15
|
const { context, where } = opts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../../src/base/controllers/factory/crud/abstract.ts"],"names":[],"mappings":";;;AAIA,0DAAqD;
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../../src/base/controllers/factory/crud/abstract.ts"],"names":[],"mappings":";;;AAIA,0DAAqD;AAGrD,0CAAqD;AAErD,yRAAyR;AACzR,MAAsB,sBAQpB,SAAQ,yBAAwE;IAGhF,YAAY,IAMX;QACC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACtC,CAAC;IAED,6FAA6F;IAC7F,cAAc,CAAC,IAA0D;QACvE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,OAAO,CAAC,IAAI,CACjB,EAAE,OAAO,EAAE,8CAA8C,EAAE,EAC3D,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CACjC,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAlCD,wDAkCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistable.d.ts","sourceRoot":"","sources":["../../../../../../src/base/controllers/factory/crud/persistable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"persistable.d.ts","sourceRoot":"","sources":["../../../../../../src/base/controllers/factory/crud/persistable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD,mGAAmG;AACnG,8BAAsB,yBAAyB,CAC7C,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,EACnF,QAAQ,SAAS,GAAG,GAAG,GAAG,EAC1B,WAAW,SAAS,MAAM,GAAG,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,GAAG,EAC7B,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,WAAW,SAAS,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,EACvD,cAAc,SAAS,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAC7D,SAAQ,sBAAsB,CAC9B,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,WAAW,EACX,cAAc,CACf;IACC,aAAa;IACP,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;KAAE;IAkBvD,iBAAiB;IACX,UAAU,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;KAAE;IAmB3D,cAAc;IACR,QAAQ,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;KAAE;IAyBzD,kBAAkB;IACZ,UAAU,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;KAAE;IAkB3D,eAAe;IACT,QAAQ,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;KAAE;CAsB1D"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PersistableCrudController = void 0;
|
|
4
4
|
const common_1 = require("@venizia/ignis-helpers/common");
|
|
5
5
|
const readable_1 = require("./readable");
|
|
6
|
+
const common_2 = require("../../common");
|
|
6
7
|
/** Write tier: create / updateById / updateBy / deleteById / deleteBy. Inherits the read verbs. */
|
|
7
8
|
class PersistableCrudController extends readable_1.ReadableCrudController {
|
|
8
9
|
/** POST / */
|
|
@@ -14,8 +15,8 @@ class PersistableCrudController extends readable_1.ReadableCrudController {
|
|
|
14
15
|
args: data,
|
|
15
16
|
task: async () => this.respond({
|
|
16
17
|
context,
|
|
17
|
-
format:
|
|
18
|
-
|
|
18
|
+
format: common_2.ResponseFormats.OBJECT,
|
|
19
|
+
payload: await this.repository.create({ data }),
|
|
19
20
|
}),
|
|
20
21
|
});
|
|
21
22
|
return context.json(rs, common_1.HTTP.ResultCodes.RS_2.Created);
|
|
@@ -30,8 +31,8 @@ class PersistableCrudController extends readable_1.ReadableCrudController {
|
|
|
30
31
|
args: { id, data },
|
|
31
32
|
task: async () => this.respond({
|
|
32
33
|
context,
|
|
33
|
-
format:
|
|
34
|
-
|
|
34
|
+
format: common_2.ResponseFormats.OBJECT,
|
|
35
|
+
payload: await this.repository.updateById({ id, data }),
|
|
35
36
|
}),
|
|
36
37
|
});
|
|
37
38
|
return context.json(rs, common_1.HTTP.ResultCodes.RS_2.Ok);
|
|
@@ -50,8 +51,8 @@ class PersistableCrudController extends readable_1.ReadableCrudController {
|
|
|
50
51
|
args: { where, data },
|
|
51
52
|
task: async () => this.respond({
|
|
52
53
|
context,
|
|
53
|
-
format:
|
|
54
|
-
|
|
54
|
+
format: common_2.ResponseFormats.ARRAY,
|
|
55
|
+
payload: await this.repository.updateBy({ where, data }),
|
|
55
56
|
}),
|
|
56
57
|
});
|
|
57
58
|
return context.json(rs, common_1.HTTP.ResultCodes.RS_2.Ok);
|
|
@@ -65,8 +66,8 @@ class PersistableCrudController extends readable_1.ReadableCrudController {
|
|
|
65
66
|
args: { id },
|
|
66
67
|
task: async () => this.respond({
|
|
67
68
|
context,
|
|
68
|
-
format:
|
|
69
|
-
|
|
69
|
+
format: common_2.ResponseFormats.OBJECT,
|
|
70
|
+
payload: await this.repository.deleteById({ id }),
|
|
70
71
|
}),
|
|
71
72
|
});
|
|
72
73
|
return context.json(rs, common_1.HTTP.ResultCodes.RS_2.Ok);
|
|
@@ -84,8 +85,8 @@ class PersistableCrudController extends readable_1.ReadableCrudController {
|
|
|
84
85
|
args: { where },
|
|
85
86
|
task: async () => this.respond({
|
|
86
87
|
context,
|
|
87
|
-
format:
|
|
88
|
-
|
|
88
|
+
format: common_2.ResponseFormats.ARRAY,
|
|
89
|
+
payload: await this.repository.deleteBy({ where }),
|
|
89
90
|
}),
|
|
90
91
|
});
|
|
91
92
|
return context.json(rs, common_1.HTTP.ResultCodes.RS_2.Ok);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistable.js","sourceRoot":"","sources":["../../../../../../src/base/controllers/factory/crud/persistable.ts"],"names":[],"mappings":";;;AAIA,0DAAqD;AAGrD,yCAAoD;
|
|
1
|
+
{"version":3,"file":"persistable.js","sourceRoot":"","sources":["../../../../../../src/base/controllers/factory/crud/persistable.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readable.d.ts","sourceRoot":"","sources":["../../../../../../src/base/controllers/factory/crud/readable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAU,MAAM,eAAe,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"readable.d.ts","sourceRoot":"","sources":["../../../../../../src/base/controllers/factory/crud/readable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAU,MAAM,eAAe,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD,oGAAoG;AACpG,8BAAsB,sBAAsB,CAC1C,OAAO,SAAS,cAAc,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,EACnF,QAAQ,SAAS,GAAG,GAAG,GAAG,EAC1B,WAAW,SAAS,MAAM,GAAG,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,GAAG,EAC7B,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,WAAW,SAAS,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,EACvD,cAAc,SAAS,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAC7D,SAAQ,sBAAsB,CAC9B,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,WAAW,EACX,cAAc,CACf;IACC,iBAAiB;IACX,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;KAAE;IAatD,0DAA0D;IACpD,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;KAAE;IAyBrD,eAAe;IACT,QAAQ,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;KAAE;IAqBzD,oBAAoB;IACd,OAAO,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;KAAE;CAmBzD"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ReadableCrudController = void 0;
|
|
4
4
|
const common_1 = require("@venizia/ignis-helpers/common");
|
|
5
5
|
const abstract_1 = require("./abstract");
|
|
6
|
+
const common_2 = require("../../common");
|
|
6
7
|
/** Read tier: count / find / findById / findOne. Read-only controllers can extend this directly. */
|
|
7
8
|
class ReadableCrudController extends abstract_1.AbstractCrudController {
|
|
8
9
|
/** GET /count */
|
|
@@ -28,12 +29,11 @@ class ReadableCrudController extends abstract_1.AbstractCrudController {
|
|
|
28
29
|
filter,
|
|
29
30
|
options: { shouldQueryRange: true },
|
|
30
31
|
});
|
|
31
|
-
const { start, end, total } = range;
|
|
32
|
-
context.header(common_1.HTTP.Headers.CONTENT_RANGE, data.length > 0 ? `records ${start}-${end}/${total}` : `records */${total}`);
|
|
33
32
|
return this.respond({
|
|
34
33
|
context,
|
|
35
|
-
format:
|
|
36
|
-
|
|
34
|
+
format: common_2.ResponseFormats.ARRAY,
|
|
35
|
+
payload: { count: data.length, data },
|
|
36
|
+
range,
|
|
37
37
|
});
|
|
38
38
|
},
|
|
39
39
|
});
|
|
@@ -51,8 +51,8 @@ class ReadableCrudController extends abstract_1.AbstractCrudController {
|
|
|
51
51
|
const record = await this.repository.findById({ id, filter });
|
|
52
52
|
return this.respond({
|
|
53
53
|
context,
|
|
54
|
-
format:
|
|
55
|
-
|
|
54
|
+
format: common_2.ResponseFormats.OBJECT,
|
|
55
|
+
payload: { count: record ? 1 : 0, data: record },
|
|
56
56
|
});
|
|
57
57
|
},
|
|
58
58
|
});
|
|
@@ -69,8 +69,8 @@ class ReadableCrudController extends abstract_1.AbstractCrudController {
|
|
|
69
69
|
const record = await this.repository.findOne({ filter });
|
|
70
70
|
return this.respond({
|
|
71
71
|
context,
|
|
72
|
-
format:
|
|
73
|
-
|
|
72
|
+
format: common_2.ResponseFormats.OBJECT,
|
|
73
|
+
payload: { count: record ? 1 : 0, data: record },
|
|
74
74
|
});
|
|
75
75
|
},
|
|
76
76
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readable.js","sourceRoot":"","sources":["../../../../../../src/base/controllers/factory/crud/readable.ts"],"names":[],"mappings":";;;AAGA,0DAAqD;AAGrD,yCAAoD;
|
|
1
|
+
{"version":3,"file":"readable.js","sourceRoot":"","sources":["../../../../../../src/base/controllers/factory/crud/readable.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { Hook, OpenAPIHono } from '@hono/zod-openapi';
|
|
2
|
-
import type {
|
|
2
|
+
import type { TDataRange } from '../../repositories/common/types';
|
|
3
|
+
import type { AnyType, TNullable, ValueOrPromise } from '@venizia/ignis-helpers/common';
|
|
3
4
|
import type { Env, Schema } from 'hono';
|
|
4
|
-
import type {
|
|
5
|
+
import type { TResponseFormat } from '../common/constants';
|
|
6
|
+
import type { IAuthRouteConfig, IBindRouteOptions, IDefineRouteOptions, TRouteContext, TRouteHandler } from '../common/types';
|
|
5
7
|
import { AbstractRestController } from './abstract';
|
|
6
8
|
/** Recommended base class for REST controllers with concrete bindRoute and defineRoute implementations. */
|
|
7
9
|
export declare abstract class BaseRestController<RouteEnv extends Env = Env, RouteSchema extends Schema = {}, BasePath extends string = '/', ConfigurableOptions extends object = {}, Definitions extends Record<string, IAuthRouteConfig> = Record<string, IAuthRouteConfig>> extends AbstractRestController<RouteEnv, RouteSchema, BasePath, ConfigurableOptions, Definitions> {
|
|
@@ -11,6 +13,36 @@ export declare abstract class BaseRestController<RouteEnv extends Env = Env, Rou
|
|
|
11
13
|
args: unknown;
|
|
12
14
|
task: () => Promise<R>;
|
|
13
15
|
}): Promise<any>;
|
|
16
|
+
/** Returns the full `{ count, data }` envelope, or just `data` when the client sent `x-request-count: false`; `X-Response-Count` is set either way. */
|
|
17
|
+
normalizeCountData<ResponseSchema extends AnyType, RequestContext extends TRouteContext<RouteEnv> = TRouteContext<RouteEnv>, ResponseData extends {
|
|
18
|
+
count: number;
|
|
19
|
+
data?: TNullable<ResponseSchema>;
|
|
20
|
+
} = {
|
|
21
|
+
count: number;
|
|
22
|
+
data?: TNullable<ResponseSchema>;
|
|
23
|
+
}>(opts: {
|
|
24
|
+
context: RequestContext;
|
|
25
|
+
payload: ResponseData;
|
|
26
|
+
}): TNullable<ResponseSchema> | ResponseData;
|
|
27
|
+
/** The one response call. Sets `X-Response-Format`, and with `range` (a list) also `Content-Range` - `payload.count` is the rows of THIS response, never the total - then normalizes count/data per the request-count header. */
|
|
28
|
+
respond<R>(opts: {
|
|
29
|
+
context: TRouteContext<RouteEnv>;
|
|
30
|
+
format: TResponseFormat;
|
|
31
|
+
payload: {
|
|
32
|
+
count: number;
|
|
33
|
+
data?: TNullable<R>;
|
|
34
|
+
};
|
|
35
|
+
range?: TDataRange;
|
|
36
|
+
}): TNullable<R> | {
|
|
37
|
+
count: number;
|
|
38
|
+
data?: TNullable<R>;
|
|
39
|
+
};
|
|
40
|
+
/** The list headers without the body, for a list whose body is not a `{ count, data }` envelope: `Content-Range`, `X-Response-Count` = rows in THIS response, `X-Response-Format: array`. */
|
|
41
|
+
setListHeaders(opts: {
|
|
42
|
+
context: TRouteContext<RouteEnv>;
|
|
43
|
+
range: TDataRange;
|
|
44
|
+
count: number;
|
|
45
|
+
}): void;
|
|
14
46
|
/** TRouteHandler's TRouteContext is a lightweight custom shape (different `json`/`req.valid` signatures) built on Hono's real Context, not a subtype of the RouteHandler `.openapi()` expects - genuinely different handler types bridged here. */
|
|
15
47
|
toHonoHandler<ResponseType = unknown>(opts: {
|
|
16
48
|
handler: TRouteHandler<ResponseType, RouteEnv>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/base/controllers/rest/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/base/controllers/rest/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGxF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAExC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AASpD,2GAA2G;AAC3G,8BAAsB,kBAAkB,CACtC,QAAQ,SAAS,GAAG,GAAG,GAAG,EAC1B,WAAW,SAAS,MAAM,GAAG,EAAE,EAC/B,QAAQ,SAAS,MAAM,GAAG,GAAG,EAC7B,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CACvF,SAAQ,sBAAsB,CAC9B,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,WAAW,CACZ;IACC,0FAA0F;IAC1F,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAA;KAAE;IAWzE,uJAAuJ;IACvJ,kBAAkB,CAChB,cAAc,SAAS,OAAO,EAC9B,cAAc,SAAS,aAAa,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,EACxE,YAAY,SAAS;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;KAClC,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,CAAA;KAAE,EACvD,IAAI,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,YAAY,CAAA;KAAE;IAc1D,iOAAiO;IACjO,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE;QACf,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,EAAE,eAAe,CAAC;QACxB,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;SAAE,CAAC;QAChD,KAAK,CAAC,EAAE,UAAU,CAAC;KACpB;eArBc,MAAM;;;IAgCrB,6LAA6L;IAC7L,cAAc,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QAAC,KAAK,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAQ3F,mPAAmP;IACnP,aAAa,CAAC,YAAY,GAAG,OAAO,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;KAAE,GACrE,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAGxE,uFAAuF;IACvF,SAAS,CAAC,WAAW,SAAS,gBAAgB,EAAE,IAAI,EAAE;QACpD,OAAO,EAAE,WAAW,CAAC;KACtB,GAAG,iBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;IAcnE,uEAAuE;IACvE,WAAW,CAAC,WAAW,SAAS,gBAAgB,EAAE,YAAY,GAAG,OAAO,EAAE,IAAI,EAAE;QAC9E,OAAO,EAAE,WAAW,CAAC;QACrB,OAAO,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;KACzD,GAAG,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;IAarE,sEAAsE;IACtE,cAAc,CAAC,WAAW,SAAS,gBAAgB,EAAE,YAAY,GAAG,OAAO,EAAE,IAAI,EAAE;QACjF,OAAO,EAAE,WAAW,CAAC;QACrB,OAAO,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;KACzD,GAAG,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;CAYtE"}
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseRestController = void 0;
|
|
4
|
+
const common_1 = require("@venizia/ignis-helpers/common");
|
|
4
5
|
const core_1 = require("@venizia/ignis-helpers/core");
|
|
6
|
+
const constants_1 = require("../common/constants");
|
|
5
7
|
const abstract_1 = require("./abstract");
|
|
8
|
+
/** `Content-Range` of a page: inclusive `end`, and `records * /<total>` (no space) when the page is empty. */
|
|
9
|
+
const toContentRange = (opts) => {
|
|
10
|
+
const { range, count } = opts;
|
|
11
|
+
const { start, end, total } = range;
|
|
12
|
+
return count > 0 ? `records ${start}-${end}/${total}` : `records */${total}`;
|
|
13
|
+
};
|
|
6
14
|
/** Recommended base class for REST controllers with concrete bindRoute and defineRoute implementations. */
|
|
7
15
|
class BaseRestController extends abstract_1.AbstractRestController {
|
|
8
16
|
/** Runs a handler task under performance measurement (fixed logger/level/description). */
|
|
@@ -16,6 +24,33 @@ class BaseRestController extends abstract_1.AbstractRestController {
|
|
|
16
24
|
task: opts.task,
|
|
17
25
|
});
|
|
18
26
|
}
|
|
27
|
+
/** Returns the full `{ count, data }` envelope, or just `data` when the client sent `x-request-count: false`; `X-Response-Count` is set either way. */
|
|
28
|
+
normalizeCountData(opts) {
|
|
29
|
+
const { context, payload } = opts;
|
|
30
|
+
const requestCountData = context.req.header(common_1.HTTP.Headers.REQUEST_COUNT_DATA) ?? 'true';
|
|
31
|
+
const useCountData = (0, core_1.toBoolean)(requestCountData);
|
|
32
|
+
context.header(common_1.HTTP.Headers.RESPONSE_COUNT_DATA, payload.count.toString());
|
|
33
|
+
if (useCountData) {
|
|
34
|
+
return payload;
|
|
35
|
+
}
|
|
36
|
+
return payload.data;
|
|
37
|
+
}
|
|
38
|
+
/** The one response call. Sets `X-Response-Format`, and with `range` (a list) also `Content-Range` - `payload.count` is the rows of THIS response, never the total - then normalizes count/data per the request-count header. */
|
|
39
|
+
respond(opts) {
|
|
40
|
+
const { context, format, payload, range } = opts;
|
|
41
|
+
if (range) {
|
|
42
|
+
context.header(common_1.HTTP.Headers.CONTENT_RANGE, toContentRange({ range, count: payload.count }));
|
|
43
|
+
}
|
|
44
|
+
context.header(common_1.HTTP.Headers.RESPONSE_FORMAT, format);
|
|
45
|
+
return this.normalizeCountData({ context, payload });
|
|
46
|
+
}
|
|
47
|
+
/** The list headers without the body, for a list whose body is not a `{ count, data }` envelope: `Content-Range`, `X-Response-Count` = rows in THIS response, `X-Response-Format: array`. */
|
|
48
|
+
setListHeaders(opts) {
|
|
49
|
+
const { context, range, count } = opts;
|
|
50
|
+
context.header(common_1.HTTP.Headers.CONTENT_RANGE, toContentRange({ range, count }));
|
|
51
|
+
context.header(common_1.HTTP.Headers.RESPONSE_COUNT_DATA, count.toString());
|
|
52
|
+
context.header(common_1.HTTP.Headers.RESPONSE_FORMAT, constants_1.ResponseFormats.ARRAY);
|
|
53
|
+
}
|
|
19
54
|
/** TRouteHandler's TRouteContext is a lightweight custom shape (different `json`/`req.valid` signatures) built on Hono's real Context, not a subtype of the RouteHandler `.openapi()` expects - genuinely different handler types bridged here. */
|
|
20
55
|
toHonoHandler(opts) {
|
|
21
56
|
return opts.handler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/base/controllers/rest/base.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/base/controllers/rest/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectable.d.ts","sourceRoot":"","sources":["../../../../src/base/metadata/injectable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,4BAA4B,EAC5B,aAAa,EACd,MAAM,qBAAqB,CAAC;AAI7B,oJAAoJ;AACpJ,eAAO,MAAM,UAAU,GAAI,eAAe,GAAG,OAAO,EAClD,MAAM,iBAAiB,CAAC,eAAe,CAAC,KACvC,cAUF,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,eAAe,GAAG,OAAO,EAC/C,OAAO,4BAA4B,CAAC,eAAe,CAAC,KACnD,cAEF,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,eAAe,GAAG,OAAO,EACjD,OAAO,4BAA4B,CAAC,eAAe,CAAC,KACnD,cAEF,CAAC;AAEF,yMAAyM;AACzM,eAAO,MAAM,OAAO,GAAI,MAAM;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,aAAa,CAAA;CAAE,KAAG,eAWtE,CAAC;AAEF,gIAAgI;AAChI,eAAO,MAAM,uBAAuB,GAAI,eAAe,GAAG,OAAO,EAAE,MAAM;IACvE,QAAQ,EAAE,4BAA4B,CAAC,eAAe,CAAC,CAAC;CACzD,KAAG,4BAA4B,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"injectable.d.ts","sourceRoot":"","sources":["../../../../src/base/metadata/injectable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,4BAA4B,EAC5B,aAAa,EACd,MAAM,qBAAqB,CAAC;AAI7B,oJAAoJ;AACpJ,eAAO,MAAM,UAAU,GAAI,eAAe,GAAG,OAAO,EAClD,MAAM,iBAAiB,CAAC,eAAe,CAAC,KACvC,cAUF,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,eAAe,GAAG,OAAO,EAC/C,OAAO,4BAA4B,CAAC,eAAe,CAAC,KACnD,cAEF,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,eAAe,GAAG,OAAO,EACjD,OAAO,4BAA4B,CAAC,eAAe,CAAC,KACnD,cAEF,CAAC;AAEF,yMAAyM;AACzM,eAAO,MAAM,OAAO,GAAI,MAAM;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,aAAa,CAAA;CAAE,KAAG,eAWtE,CAAC;AAEF,gIAAgI;AAChI,eAAO,MAAM,uBAAuB,GAAI,eAAe,GAAG,OAAO,EAAE,MAAM;IACvE,QAAQ,EAAE,4BAA4B,CAAC,eAAe,CAAC,CAAC;CACzD,KAAG,4BAA4B,CAAC,eAAe,CAyB/C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectable.js","sourceRoot":"","sources":["../../../../src/base/metadata/injectable.ts"],"names":[],"mappings":";;;AAKA,mDAAsE;AACtE,sDAAuD;AAEvD,oJAAoJ;AAC7I,MAAM,UAAU,GAAG,CACxB,IAAwC,EACxB,EAAE;IAClB,OAAO,MAAM,CAAC,EAAE;QACd,IAAI,CAAC,yBAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,IAAA,eAAQ,EAAC;gBACb,OAAO,EAAE,gBAAgB,MAAM,CAAC,IAAI,6BAA6B,IAAI,CAAC,IAAI,wBAAwB,CAAC,GAAG,yBAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAC7I,CAAC,CAAC;QACL,CAAC;QAED,4BAAgB,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,UAAU,cAYrB;AAEK,MAAM,OAAO,GAAG,CACrB,IAAoD,EACpC,EAAE;IAClB,OAAO,IAAA,kBAAU,EAAkB,EAAE,IAAI,EAAE,yBAAa,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAC;AAJW,QAAA,OAAO,WAIlB;AAEK,MAAM,SAAS,GAAG,CACvB,IAAoD,EACpC,EAAE;IAClB,OAAO,IAAA,kBAAU,EAAkB,EAAE,IAAI,EAAE,yBAAa,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AACjF,CAAC,CAAC;AAJW,QAAA,SAAS,aAIpB;AAEF,yMAAyM;AAClM,MAAM,OAAO,GAAG,CAAC,IAA4C,EAAmB,EAAE;IACvF,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,4BAAgB,CAAC,WAAW,EAAE,CAAC,kBAAkB,CAAC;YAChD,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,QAAQ,EAAE;gBACR,UAAU,EAAE,WAAW;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7C;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,OAAO,WAWlB;AAEF,gIAAgI;AACzH,MAAM,uBAAuB,GAAG,CAA4B,IAElE,EAAiD,EAAE;IAClD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;IACrE,MAAM,YAAY,GAAkD,EAAE,CAAC;IAEvE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC;IACjC,CAAC;
|
|
1
|
+
{"version":3,"file":"injectable.js","sourceRoot":"","sources":["../../../../src/base/metadata/injectable.ts"],"names":[],"mappings":";;;AAKA,mDAAsE;AACtE,sDAAuD;AAEvD,oJAAoJ;AAC7I,MAAM,UAAU,GAAG,CACxB,IAAwC,EACxB,EAAE;IAClB,OAAO,MAAM,CAAC,EAAE;QACd,IAAI,CAAC,yBAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,IAAA,eAAQ,EAAC;gBACb,OAAO,EAAE,gBAAgB,MAAM,CAAC,IAAI,6BAA6B,IAAI,CAAC,IAAI,wBAAwB,CAAC,GAAG,yBAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAC7I,CAAC,CAAC;QACL,CAAC;QAED,4BAAgB,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,UAAU,cAYrB;AAEK,MAAM,OAAO,GAAG,CACrB,IAAoD,EACpC,EAAE;IAClB,OAAO,IAAA,kBAAU,EAAkB,EAAE,IAAI,EAAE,yBAAa,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAC;AAJW,QAAA,OAAO,WAIlB;AAEK,MAAM,SAAS,GAAG,CACvB,IAAoD,EACpC,EAAE;IAClB,OAAO,IAAA,kBAAU,EAAkB,EAAE,IAAI,EAAE,yBAAa,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AACjF,CAAC,CAAC;AAJW,QAAA,SAAS,aAIpB;AAEF,yMAAyM;AAClM,MAAM,OAAO,GAAG,CAAC,IAA4C,EAAmB,EAAE;IACvF,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,4BAAgB,CAAC,WAAW,EAAE,CAAC,kBAAkB,CAAC;YAChD,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,QAAQ,EAAE;gBACR,UAAU,EAAE,WAAW;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7C;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,OAAO,WAWlB;AAEF,gIAAgI;AACzH,MAAM,uBAAuB,GAAG,CAA4B,IAElE,EAAiD,EAAE;IAClD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;IACrE,MAAM,YAAY,GAAkD,EAAE,CAAC;IAEvE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC;IACjC,CAAC;IAED,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,YAAY,CAAC,aAAa,GAAG,aAAa,CAAC;IAC7C,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AA3BW,QAAA,uBAAuB,2BA2BlC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BaseHelper } from '@venizia/ignis-helpers/core';
|
|
2
|
+
import type { IArtifactIndex, TArtifactIndexInput } from './common/index.js';
|
|
3
|
+
/** Turns a `configs.artifacts` input into the classes to register: flattens nested indexes, drops the classes whose `when` says no, orders the rest. It never touches the container - `registerArtifacts` does the binding. */
|
|
4
|
+
export declare class ArtifactIndexHelper extends BaseHelper {
|
|
5
|
+
static readonly SINGLETON_REALM_KEY = "artifact-index-helper";
|
|
6
|
+
private constructor();
|
|
7
|
+
static getInstance(): ArtifactIndexHelper;
|
|
8
|
+
/** Every kind of the input, each already filtered by `when` and sorted by `order`, keyed the way `IArtifactIndex` is. */
|
|
9
|
+
resolve(opts: {
|
|
10
|
+
input: TArtifactIndexInput;
|
|
11
|
+
application: unknown;
|
|
12
|
+
}): Promise<Required<IArtifactIndex>>;
|
|
13
|
+
/** One index, or arrays nested to any depth, as a flat list in input order. */
|
|
14
|
+
flatten(opts: {
|
|
15
|
+
input: TArtifactIndexInput;
|
|
16
|
+
}): IArtifactIndex[];
|
|
17
|
+
/** The classes of one kind across every index, minus those whose `when` says no, sorted by `order` (stable). The `when` conditions run concurrently: each reads config and environment, never another artifact. */
|
|
18
|
+
select<Field extends keyof IArtifactIndex>(opts: {
|
|
19
|
+
indexes: IArtifactIndex[];
|
|
20
|
+
field: Field;
|
|
21
|
+
application: unknown;
|
|
22
|
+
}): Promise<NonNullable<IArtifactIndex[Field]>[number][]>;
|
|
23
|
+
private isSelected;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=artifact-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-index.d.ts","sourceRoot":"","sources":["../../../../src/base/applications/artifact-index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGpE,+NAA+N;AAC/N,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,MAAM,CAAC,QAAQ,CAAC,mBAAmB,2BAA2B;IAE9D,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,mBAAmB;IAOzC,yHAAyH;IACnH,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,mBAAmB,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAiCrC,+EAA+E;IAC/E,OAAO,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,mBAAmB,CAAA;KAAE,GAAG,cAAc,EAAE;IAS/D,mNAAmN;IAC7M,MAAM,CAAC,KAAK,SAAS,MAAM,cAAc,EAAE,IAAI,EAAE;QACrD,OAAO,EAAE,cAAc,EAAE,CAAC;QAC1B,KAAK,EAAE,KAAK,CAAC;QACb,WAAW,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YA0B3C,UAAU;CAYzB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { MetadataRegistry } from '../../helpers/inversion/index.js';
|
|
2
|
+
import { SingletonRealm } from '../../helpers/singleton-realm.js';
|
|
3
|
+
import { BaseHelper } from '@venizia/ignis-helpers/core';
|
|
4
|
+
import { ArtifactIndexFields } from './common/index.js';
|
|
5
|
+
/** Turns a `configs.artifacts` input into the classes to register: flattens nested indexes, drops the classes whose `when` says no, orders the rest. It never touches the container - `registerArtifacts` does the binding. */
|
|
6
|
+
export class ArtifactIndexHelper extends BaseHelper {
|
|
7
|
+
static { this.SINGLETON_REALM_KEY = 'artifact-index-helper'; }
|
|
8
|
+
constructor() {
|
|
9
|
+
super({ scope: ArtifactIndexHelper.name });
|
|
10
|
+
}
|
|
11
|
+
static getInstance() {
|
|
12
|
+
return SingletonRealm.resolve({
|
|
13
|
+
key: ArtifactIndexHelper.SINGLETON_REALM_KEY,
|
|
14
|
+
create: () => new ArtifactIndexHelper(),
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
/** Every kind of the input, each already filtered by `when` and sorted by `order`, keyed the way `IArtifactIndex` is. */
|
|
18
|
+
async resolve(opts) {
|
|
19
|
+
const { input, application } = opts;
|
|
20
|
+
const indexes = this.flatten({ input });
|
|
21
|
+
const dataSources = await this.select({
|
|
22
|
+
indexes,
|
|
23
|
+
field: ArtifactIndexFields.DATA_SOURCES,
|
|
24
|
+
application,
|
|
25
|
+
});
|
|
26
|
+
const components = await this.select({
|
|
27
|
+
indexes,
|
|
28
|
+
field: ArtifactIndexFields.COMPONENTS,
|
|
29
|
+
application,
|
|
30
|
+
});
|
|
31
|
+
const repositories = await this.select({
|
|
32
|
+
indexes,
|
|
33
|
+
field: ArtifactIndexFields.REPOSITORIES,
|
|
34
|
+
application,
|
|
35
|
+
});
|
|
36
|
+
const services = await this.select({
|
|
37
|
+
indexes,
|
|
38
|
+
field: ArtifactIndexFields.SERVICES,
|
|
39
|
+
application,
|
|
40
|
+
});
|
|
41
|
+
const controllers = await this.select({
|
|
42
|
+
indexes,
|
|
43
|
+
field: ArtifactIndexFields.CONTROLLERS,
|
|
44
|
+
application,
|
|
45
|
+
});
|
|
46
|
+
return { dataSources, components, repositories, services, controllers };
|
|
47
|
+
}
|
|
48
|
+
/** One index, or arrays nested to any depth, as a flat list in input order. */
|
|
49
|
+
flatten(opts) {
|
|
50
|
+
const { input } = opts;
|
|
51
|
+
if (Array.isArray(input)) {
|
|
52
|
+
return input.flatMap(entry => this.flatten({ input: entry }));
|
|
53
|
+
}
|
|
54
|
+
return [input];
|
|
55
|
+
}
|
|
56
|
+
/** The classes of one kind across every index, minus those whose `when` says no, sorted by `order` (stable). The `when` conditions run concurrently: each reads config and environment, never another artifact. */
|
|
57
|
+
async select(opts) {
|
|
58
|
+
const { indexes, field, application } = opts;
|
|
59
|
+
const registry = MetadataRegistry.getInstance();
|
|
60
|
+
const listed = indexes.flatMap(index => [...(index[field] ?? [])]);
|
|
61
|
+
const decisions = await Promise.all(listed.map(ctor => this.isSelected({ ctor, application })));
|
|
62
|
+
const kept = listed.filter((ctor, position) => {
|
|
63
|
+
if (decisions[position]) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
this.logger.debug('Skipped by condition | kind: %s | class: %s', field, ctor.name);
|
|
67
|
+
return false;
|
|
68
|
+
});
|
|
69
|
+
return kept
|
|
70
|
+
.map((ctor, position) => ({
|
|
71
|
+
ctor,
|
|
72
|
+
position,
|
|
73
|
+
order: registry.getArtifactMetadata({ target: ctor })?.order ?? 0,
|
|
74
|
+
}))
|
|
75
|
+
.sort((a, b) => a.order - b.order || a.position - b.position)
|
|
76
|
+
.map(entry => entry.ctor);
|
|
77
|
+
}
|
|
78
|
+
async isSelected(opts) {
|
|
79
|
+
const { ctor, application } = opts;
|
|
80
|
+
const when = MetadataRegistry.getInstance().getArtifactMetadata({ target: ctor })?.when;
|
|
81
|
+
if (!when) {
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
return when({ application });
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=artifact-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-index.js","sourceRoot":"","sources":["../../../../src/base/applications/artifact-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export declare class BootSteps {
|
|
|
10
10
|
static readonly REGISTER_CONTRIBUTED_DATA_SOURCES = "registerContributedDataSources";
|
|
11
11
|
static readonly REGISTER_CONTROLLERS = "registerControllers";
|
|
12
12
|
static readonly POST_CONFIGURE = "postConfigure";
|
|
13
|
+
static readonly VERIFY_BINDINGS = "verifyBindings";
|
|
13
14
|
static readonly SCHEME_SET: Set<string>;
|
|
14
15
|
static isValid(value: string): boolean;
|
|
15
16
|
}
|