@zerotal/orm 1.7.4 → 1.7.5
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/api-surface.md +0 -56
- package/package.json +3 -3
- package/src/config.ts +4 -1
package/api-surface.md
CHANGED
|
@@ -277,13 +277,6 @@ class ForeignKeyBuilder = {
|
|
|
277
277
|
toConstraintSQL: () => string
|
|
278
278
|
}
|
|
279
279
|
|
|
280
|
-
class HookRegistry = {
|
|
281
|
-
new (): HookRegistry
|
|
282
|
-
static onAfterRun: ((ModelClass: ClassRef, hook: HookName, model: unknown) => void) | undefined
|
|
283
|
-
static register: <T>(ModelClass: ClassRef, hook: HookName, fn: HookFn<T>) => void
|
|
284
|
-
static run: <T>(ModelClass: ClassRef, hook: HookName, model: T) => Promise<void>
|
|
285
|
-
}
|
|
286
|
-
|
|
287
280
|
class JsonCast = {
|
|
288
281
|
new <T = unknown>(mapper?: CastMapper<T> | undefined): JsonCast<T>
|
|
289
282
|
fields: () => CastField[]
|
|
@@ -801,14 +794,10 @@ class UnsupportedDialectError = {
|
|
|
801
794
|
readonly status: number
|
|
802
795
|
}
|
|
803
796
|
|
|
804
|
-
const columnRegistry = Map<ClassRef, Map<string, ColumnOptions>>
|
|
805
|
-
|
|
806
797
|
const DB = { table(tableName: string): QueryBuilder; raw<T = Record<string, unknown>>(sql: TemplateStringsArray | string, ...rest: unknown[]): Promise<T[]>; transaction<T>(callback: (tx?: SQLInstance) => Promise<T>, attempts?: number): Promise<T>; beginTransaction(): Promise<ManualTransaction>; onPrimary(): { table(name: string): QueryBuilder; }; currentTx(): unknown | undefined; advisoryLock<T>(key: number, callback: () => Promise<T>): Promise<T>; preventNPlusOne(options?: NPlusOneOptions): void; allowNPlusOne(pattern: string, options?: { once?: boolean; }): void;}
|
|
807
798
|
|
|
808
799
|
const ModelInspector = { load(pattern: string, cwd?: string): Promise<void>; all(): ModelSchema[]; fromClass(ctor: ClassRef): ModelSchema | null;}
|
|
809
800
|
|
|
810
|
-
const modelsByName = Map<string, ClassRef>
|
|
811
|
-
|
|
812
801
|
const relationRegistry = Map<ClassRef, Map<string, RelationMetadata>>
|
|
813
802
|
|
|
814
803
|
const Schema = { create(table: string, callback: (bp: Blueprint) => void): Promise<void>; createIfNotExists(table: string, callback: (bp: Blueprint) => void): Promise<void>; table(name: string, callback: (bp: Blueprint) => void): Promise<void>; alter(name: string, callback: (bp: Blueprint) => void): Promise<void>; drop(table: string): Promise<void>; dropIfExists(table: string): Promise<void>; rename(from: string, to: string): Promise<void>; hasTable(table: string): Promise<boolean>; hasColumn(table: string, column: string): Promise<boolean>;}
|
|
@@ -819,32 +808,14 @@ const SchemaInspector = { tables(): Promise<string[]>; columns(table: stri
|
|
|
819
808
|
|
|
820
809
|
const TransactionContext = AsyncLocalStorage<SQLInstance>
|
|
821
810
|
|
|
822
|
-
function _clearModelConnections = () => void
|
|
823
|
-
|
|
824
|
-
function _clearTransitionCallbacks = () => void
|
|
825
|
-
|
|
826
811
|
function _getConnection = () => SQLInstance
|
|
827
812
|
|
|
828
813
|
function _getDbConnectionOverride = () => SQLInstance | null
|
|
829
814
|
|
|
830
|
-
function _getDialect = () => 'sqlite' | 'postgres' | 'mysql'
|
|
831
|
-
|
|
832
|
-
function _getModelConnection = () => SQLInstance
|
|
833
|
-
|
|
834
815
|
function _globalScopeRegistry = () => Map<ClassRef, Map<string, GlobalScopeCallback>>
|
|
835
816
|
|
|
836
|
-
function _normaliseSqliteUrl = (raw: string) => string
|
|
837
|
-
|
|
838
|
-
function _resolveConn = (ModelClass?: typeof BaseModel) => SQLInstance
|
|
839
|
-
|
|
840
|
-
function _setBaseModelConnection = (conn: SQLInstance | null) => void
|
|
841
|
-
|
|
842
|
-
function _setBaseModelDialect = (dialect: 'sqlite' | 'postgres' | 'mysql') => void
|
|
843
|
-
|
|
844
817
|
function _setDbConnection = (conn: SQLInstance | null) => void
|
|
845
818
|
|
|
846
|
-
function _setQueryBuilderDialect = (d: Dialect) => void
|
|
847
|
-
|
|
848
819
|
function _setReadReplicas = (primary: SQLInstance, replicas: SQLInstance[]) => void
|
|
849
820
|
|
|
850
821
|
function _suppressHooks = <T>(fn: () => Promise<T>) => Promise<T>
|
|
@@ -857,8 +828,6 @@ function belongsTo = (related: () => unknown, options: BelongsToOptions) => (_va
|
|
|
857
828
|
|
|
858
829
|
function column = { (): ColumnDecorator; (type: ColumnShorthand): ColumnDecorator; (options: ColumnOptions): ColumnDecorator; (type: ColumnShorthand, options: Omit<ColumnOptions, 'type'>): ColumnDecorator;}
|
|
859
830
|
|
|
860
|
-
function columnsFor = (ctor: ClassRef) => Map<string, ColumnOptions> | null
|
|
861
|
-
|
|
862
831
|
function createReadWriteRouter = (primary: SQLInstance, replicas: SQLInstance[]) => SQLInstance
|
|
863
832
|
|
|
864
833
|
function currentOrmContext = () => OrmContext
|
|
@@ -885,10 +854,6 @@ function json = <T = unknown>(mapper?: CastMapper<T>) => JsonCast<T>
|
|
|
885
854
|
|
|
886
855
|
function manyToMany = (related: () => unknown, options: ManyToManyOptions) => (_value: unknown, context: ClassFieldDecoratorContext) => void
|
|
887
856
|
|
|
888
|
-
function modelByName = (name: string) => ClassRef | undefined
|
|
889
|
-
|
|
890
|
-
function modelForParam = (paramName: string) => ImplicitModel | undefined
|
|
891
|
-
|
|
892
857
|
function morphedByMany = (related: () => unknown, options: MorphedByManyOptions) => (_value: unknown, context: ClassFieldDecoratorContext) => void
|
|
893
858
|
|
|
894
859
|
function morphMany = (related: () => unknown, options: MorphManyOptions) => (_value: unknown, context: ClassFieldDecoratorContext) => void
|
|
@@ -903,14 +868,10 @@ function objectOf = <T = unknown>(mapper?: CastMapper<T>) => JsonCast<T>
|
|
|
903
868
|
|
|
904
869
|
function preventNPlusOne = (options?: NPlusOneOptions) => void
|
|
905
870
|
|
|
906
|
-
function registerColumn = (ctor: ClassRef, name: string, options: ColumnOptions) => void
|
|
907
|
-
|
|
908
871
|
function registerConnectionResolver = (fn: ContextConnectionResolver | null) => void
|
|
909
872
|
|
|
910
873
|
function registerImplicitBinding = () => void
|
|
911
874
|
|
|
912
|
-
function registerModel = (ctor: ClassRef) => void
|
|
913
|
-
|
|
914
875
|
function registerModelConnection = (name: string, conn: SQLInstance, dialect?: Dialect) => void
|
|
915
876
|
|
|
916
877
|
function resetOrmContext = () => void
|
|
@@ -1206,21 +1167,6 @@ interface PaginateResult = {
|
|
|
1206
1167
|
url: (page: number, baseUrl?: string, query?: Record<string, string>) => string
|
|
1207
1168
|
}
|
|
1208
1169
|
|
|
1209
|
-
interface QueryState = {
|
|
1210
|
-
distinct: boolean
|
|
1211
|
-
groupBys: string[]
|
|
1212
|
-
havings: HavingClause[]
|
|
1213
|
-
joins: JoinClause[]
|
|
1214
|
-
limit: number | undefined
|
|
1215
|
-
lock: string | undefined
|
|
1216
|
-
offset: number | undefined
|
|
1217
|
-
orders: OrderClause[]
|
|
1218
|
-
selects: string[]
|
|
1219
|
-
table: string
|
|
1220
|
-
unions: UnionClause[]
|
|
1221
|
-
wheres: WhereClause[]
|
|
1222
|
-
}
|
|
1223
|
-
|
|
1224
1170
|
interface RelationMetadata = {
|
|
1225
1171
|
firstKey?: string
|
|
1226
1172
|
foreignKey: string
|
|
@@ -1315,8 +1261,6 @@ interface TransitionContext = {
|
|
|
1315
1261
|
|
|
1316
1262
|
type CastMapper = ((raw: unknown) => T) | (new (...args: never[]) => T)
|
|
1317
1263
|
|
|
1318
|
-
type ClassRef = abstract new (...args: never[]) => unknown
|
|
1319
|
-
|
|
1320
1264
|
type Columns = { [K in keyof T & string]: K extends `_${string}` ? never : T[K] extends (...args: any[]) => any ? never : K; }[keyof T & string]
|
|
1321
1265
|
|
|
1322
1266
|
type ColumnShorthand = 'string' | 'text' | 'integer' | 'number' | 'float' | 'boolean' | 'datetime' | 'date' | 'json' | 'array' | 'encrypted' | 'encrypted:json'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zerotal/orm",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"maturity": "stable",
|
|
6
6
|
"private": false,
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"typecheck": "tsc --noEmit"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@zerotal/core": "1.7.
|
|
35
|
-
"@zerotal/validator": "1.7.
|
|
34
|
+
"@zerotal/core": "1.7.5",
|
|
35
|
+
"@zerotal/validator": "1.7.5"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"typescript": "^5.8.0"
|
package/src/config.ts
CHANGED
|
@@ -19,11 +19,14 @@ export interface DatabaseConfigShape {
|
|
|
19
19
|
* mutating queries (INSERT, UPDATE, DELETE, DDL) plus transactions to the
|
|
20
20
|
* primary. No code changes are required in controllers or models.
|
|
21
21
|
*
|
|
22
|
+
* `env()` with no fallback is `string | undefined`, so an unset replica has to
|
|
23
|
+
* drop out rather than widen the array — this field is `string[]`.
|
|
24
|
+
*
|
|
22
25
|
* @example
|
|
23
26
|
* replicas: [
|
|
24
27
|
* env('REPLICA_1_URL'),
|
|
25
28
|
* env('REPLICA_2_URL'),
|
|
26
|
-
* ]
|
|
29
|
+
* ].filter((url) => url !== undefined)
|
|
27
30
|
*/
|
|
28
31
|
replicas?: string[];
|
|
29
32
|
/**
|