@venizia/ignis 0.0.9-17 → 0.0.9-18
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.
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { PgIntegerBuilderInitial, PgTextBuilderInitial } from 'drizzle-orm/pg-core';
|
|
2
2
|
import { TColumnDefinitions } from '../common/types';
|
|
3
3
|
import { HasDefault, NotNull } from 'drizzle-orm';
|
|
4
|
-
export type TPrincipalEnricherOptions<Discriminator extends string = string, IdType extends 'number' | 'string' = 'number' | 'string'> = {
|
|
4
|
+
export type TPrincipalEnricherOptions<Discriminator extends string = string, IdType extends 'number' | 'string' = 'number' | 'string', Nullable extends boolean = false> = {
|
|
5
5
|
discriminator?: Discriminator;
|
|
6
6
|
defaultPolymorphic?: string;
|
|
7
7
|
polymorphicIdType: IdType;
|
|
8
|
+
isNullableId?: Nullable;
|
|
8
9
|
};
|
|
9
|
-
type TPrincipalColumnDef<Discriminator extends string, IdType extends 'number' | 'string'> = (IdType extends 'number' ? {
|
|
10
|
-
[K in `${Discriminator}Id`]: NotNull<PgIntegerBuilderInitial<string>>;
|
|
10
|
+
type TPrincipalColumnDef<Discriminator extends string, IdType extends 'number' | 'string', Nullable extends boolean = false> = (IdType extends 'number' ? {
|
|
11
|
+
[K in `${Discriminator}Id`]: Nullable extends true ? PgIntegerBuilderInitial<string> : NotNull<PgIntegerBuilderInitial<string>>;
|
|
11
12
|
} : {
|
|
12
|
-
[K in `${Discriminator}Id`]: NotNull<PgTextBuilderInitial<string, [string, ...string[]]>>;
|
|
13
|
+
[K in `${Discriminator}Id`]: Nullable extends true ? PgTextBuilderInitial<string, [string, ...string[]]> : NotNull<PgTextBuilderInitial<string, [string, ...string[]]>>;
|
|
13
14
|
}) & {
|
|
14
15
|
[K in `${Discriminator}Type`]: HasDefault<PgTextBuilderInitial<string, [string, ...string[]]>>;
|
|
15
16
|
};
|
|
16
|
-
export declare const generatePrincipalColumnDefs: <Discriminator extends string = "principal", IdType extends "number" | "string" = "number">(opts: TPrincipalEnricherOptions<Discriminator, IdType>) => TPrincipalColumnDef<Discriminator, IdType>;
|
|
17
|
+
export declare const generatePrincipalColumnDefs: <Discriminator extends string = "principal", IdType extends "number" | "string" = "number", Nullable extends boolean = false>(opts: TPrincipalEnricherOptions<Discriminator, IdType, Nullable>) => TPrincipalColumnDef<Discriminator, IdType, Nullable>;
|
|
17
18
|
export declare const enrichPrincipal: <ColumnDefinitions extends TColumnDefinitions = TColumnDefinitions>(baseSchema: ColumnDefinitions, opts: TPrincipalEnricherOptions) => (ColumnDefinitions & {
|
|
18
19
|
[x: `${string}Id`]: NotNull<PgTextBuilderInitial<string, [string, ...string[]]>>;
|
|
19
20
|
} & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principal.enricher.d.ts","sourceRoot":"","sources":["../../../../src/base/models/enrichers/principal.enricher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,uBAAuB,EAAE,oBAAoB,EAAQ,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,MAAM,yBAAyB,CACnC,aAAa,SAAS,MAAM,GAAG,MAAM,EACrC,MAAM,SAAS,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"principal.enricher.d.ts","sourceRoot":"","sources":["../../../../src/base/models/enrichers/principal.enricher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,uBAAuB,EAAE,oBAAoB,EAAQ,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,MAAM,yBAAyB,CACnC,aAAa,SAAS,MAAM,GAAG,MAAM,EACrC,MAAM,SAAS,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EACxD,QAAQ,SAAS,OAAO,GAAG,KAAK,IAC9B;IACF,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,QAAQ,CAAC;CACzB,CAAC;AAEF,KAAK,mBAAmB,CACtB,aAAa,SAAS,MAAM,EAC5B,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,QAAQ,SAAS,OAAO,GAAG,KAAK,IAC9B,CAAC,MAAM,SAAS,QAAQ,GACxB;KACG,CAAC,IAAI,GAAG,aAAa,IAAI,GAAG,QAAQ,SAAS,IAAI,GAC9C,uBAAuB,CAAC,MAAM,CAAC,GAC/B,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;CAC7C,GACD;KACG,CAAC,IAAI,GAAG,aAAa,IAAI,GAAG,QAAQ,SAAS,IAAI,GAC9C,oBAAoB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,GACnD,OAAO,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;CACjE,CAAC,GAAG;KACN,CAAC,IAAI,GAAG,aAAa,MAAM,GAAG,UAAU,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;CAC/F,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,aAAa,SAAS,MAAM,GAAG,WAAW,EAC1C,MAAM,SAAS,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EAC7C,QAAQ,SAAS,OAAO,GAAG,KAAK,EAEhC,MAAM,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,KAC/D,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAwCrD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,iBAAiB,SAAS,kBAAkB,GAAG,kBAAkB,EAC/F,YAAY,iBAAiB,EAC7B,MAAM,yBAAyB;;;;;;;;EAIhC,CAAC"}
|
|
@@ -3,25 +3,30 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.enrichPrincipal = exports.generatePrincipalColumnDefs = void 0;
|
|
4
4
|
const pg_core_1 = require("drizzle-orm/pg-core");
|
|
5
5
|
const generatePrincipalColumnDefs = (opts) => {
|
|
6
|
-
const { discriminator = 'principal', defaultPolymorphic = '', polymorphicIdType } = opts;
|
|
6
|
+
const { discriminator = 'principal', defaultPolymorphic = '', polymorphicIdType, isNullableId = false, } = opts;
|
|
7
7
|
const polymorphic = {
|
|
8
8
|
typeField: `${discriminator}Type`,
|
|
9
9
|
typeColumnName: `${discriminator}_type`,
|
|
10
10
|
idField: `${discriminator}Id`,
|
|
11
11
|
idType: polymorphicIdType,
|
|
12
12
|
idColumnName: `${discriminator}_id`,
|
|
13
|
+
isNullableId,
|
|
13
14
|
};
|
|
14
15
|
switch (polymorphic.idType) {
|
|
15
16
|
case 'number': {
|
|
16
17
|
return {
|
|
17
18
|
[polymorphic.typeField]: (0, pg_core_1.text)(polymorphic.typeColumnName).default(defaultPolymorphic),
|
|
18
|
-
[polymorphic.idField]:
|
|
19
|
+
[polymorphic.idField]: polymorphic.isNullableId
|
|
20
|
+
? (0, pg_core_1.integer)(polymorphic.idColumnName)
|
|
21
|
+
: (0, pg_core_1.integer)(polymorphic.idColumnName).notNull(),
|
|
19
22
|
};
|
|
20
23
|
}
|
|
21
24
|
case 'string': {
|
|
22
25
|
return {
|
|
23
26
|
[polymorphic.typeField]: (0, pg_core_1.text)(polymorphic.typeColumnName).default(defaultPolymorphic),
|
|
24
|
-
[polymorphic.idField]:
|
|
27
|
+
[polymorphic.idField]: polymorphic.isNullableId
|
|
28
|
+
? (0, pg_core_1.text)(polymorphic.idColumnName)
|
|
29
|
+
: (0, pg_core_1.text)(polymorphic.idColumnName).notNull(),
|
|
25
30
|
};
|
|
26
31
|
}
|
|
27
32
|
default: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principal.enricher.js","sourceRoot":"","sources":["../../../../src/base/models/enrichers/principal.enricher.ts"],"names":[],"mappings":";;;AAAA,iDAAmG;
|
|
1
|
+
{"version":3,"file":"principal.enricher.js","sourceRoot":"","sources":["../../../../src/base/models/enrichers/principal.enricher.ts"],"names":[],"mappings":";;;AAAA,iDAAmG;AAiC5F,MAAM,2BAA2B,GAAG,CAKzC,IAAgE,EACV,EAAE;IACxD,MAAM,EACJ,aAAa,GAAG,WAAW,EAC3B,kBAAkB,GAAG,EAAE,EACvB,iBAAiB,EACjB,YAAY,GAAG,KAAK,GACrB,GAAG,IAAI,CAAC;IAET,MAAM,WAAW,GAAG;QAClB,SAAS,EAAE,GAAG,aAAa,MAAM;QACjC,cAAc,EAAE,GAAG,aAAa,OAAO;QACvC,OAAO,EAAE,GAAG,aAAa,IAAI;QAC7B,MAAM,EAAE,iBAAiB;QACzB,YAAY,EAAE,GAAG,aAAa,KAAK;QACnC,YAAY;KACb,CAAC;IAEF,QAAQ,WAAW,CAAC,MAAM,EAAE,CAAC;QAC3B,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO;gBACL,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,IAAA,cAAI,EAAC,WAAW,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBACrF,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,YAAY;oBAC7C,CAAC,CAAC,IAAA,iBAAO,EAAC,WAAW,CAAC,YAAY,CAAC;oBACnC,CAAC,CAAC,IAAA,iBAAO,EAAC,WAAW,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;aACQ,CAAC;QAC5D,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO;gBACL,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,IAAA,cAAI,EAAC,WAAW,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBACrF,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,YAAY;oBAC7C,CAAC,CAAC,IAAA,cAAI,EAAC,WAAW,CAAC,YAAY,CAAC;oBAChC,CAAC,CAAC,IAAA,cAAI,EAAC,WAAW,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;aACW,CAAC;QAC5D,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAI,KAAK,CACb,oEAAoE,WAAW,CAAC,MAAM,gCAAgC,CACvH,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AA9CW,QAAA,2BAA2B,+BA8CtC;AAEK,MAAM,eAAe,GAAG,CAC7B,UAA6B,EAC7B,IAA+B,EAC/B,EAAE;IACF,MAAM,IAAI,GAAG,IAAA,mCAA2B,EAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC;AACpC,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis",
|
|
3
|
-
"version": "0.0.9-
|
|
3
|
+
"version": "0.0.9-18",
|
|
4
4
|
"description": "High-performance TypeScript server infrastructure combining LoopBack 4 enterprise architecture (decorator-based DI, repository pattern, component system) with Hono speed (~140k req/s). Features auto-generated OpenAPI docs, Drizzle ORM type-safe SQL, JWT/Basic authentication, Casbin authorization, convention-based bootstrapping, and pluggable components for health checks, Swagger UI, mail, Socket.IO, and static assets. Built for Bun and Node.js.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"access-control",
|