imodel 0.20.1 → 0.20.2
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/index.d.mts +121 -87
- package/index.mjs +187 -74
- package/migrate.d.mts +1 -1
- package/migrate.mjs +1 -1
- package/package.json +1 -1
package/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* imodel v0.20.
|
|
2
|
+
* imodel v0.20.2
|
|
3
3
|
* (c) 2019-2026 猛火Fierflame
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -272,6 +272,27 @@ interface Environment<T extends object> extends BaseEnvironment {
|
|
|
272
272
|
readonly transaction: T | null;
|
|
273
273
|
}
|
|
274
274
|
|
|
275
|
+
declare const Destroy: unique symbol;
|
|
276
|
+
interface Destroy {
|
|
277
|
+
[Destroy](connection: Connection, run: (data: any) => Promise<object | null>, table: TableDefine<Fields<MainFieldType>>): PromiseLike<this | null>;
|
|
278
|
+
}
|
|
279
|
+
declare const PseudoDestroy: unique symbol;
|
|
280
|
+
interface PseudoDestroy {
|
|
281
|
+
[PseudoDestroy](connection: Connection, update: Record<string, SetValue>, run: (data: any) => Promise<object | null>, table: TableDefine<Fields<MainFieldType>>): PromiseLike<this | null>;
|
|
282
|
+
}
|
|
283
|
+
declare const Save: unique symbol;
|
|
284
|
+
interface Save {
|
|
285
|
+
[Save](connection: Connection, run: (data: any, newData?: any) => Promise<object | null>, newData: Record<string, any> | null, table: TableDefine): PromiseLike<this | null>;
|
|
286
|
+
}
|
|
287
|
+
declare const Create: unique symbol;
|
|
288
|
+
interface Create<T = unknown> {
|
|
289
|
+
[Create](connection: Connection, data: object, run: (data: any, that: any) => Promise<object>, table: TableDefine): PromiseLike<T>;
|
|
290
|
+
}
|
|
291
|
+
declare const Build: unique symbol;
|
|
292
|
+
interface Build<T = unknown> {
|
|
293
|
+
[Build](data: object, others: object | boolean): T;
|
|
294
|
+
}
|
|
295
|
+
|
|
275
296
|
type TableType = '' | 'table' | 'view';
|
|
276
297
|
interface FindArg {
|
|
277
298
|
/** 排序配置,true 表示逆序 */
|
|
@@ -341,6 +362,15 @@ interface Savepoint {
|
|
|
341
362
|
[Symbol.asyncDispose](): Promise<void>;
|
|
342
363
|
}
|
|
343
364
|
interface ConnectionInterface {
|
|
365
|
+
build<T extends Fields>(build: Build<T>, data: object, saved?: boolean): T;
|
|
366
|
+
build<T extends Fields>(table: TableDefine<T>, data: object, saved?: boolean): FieldValue<T>;
|
|
367
|
+
build(p: Build | TableDefine, data: object, saved?: boolean): any;
|
|
368
|
+
build<T extends Fields>(build: Build<T>, data: object, unsaved?: object): T;
|
|
369
|
+
build<T extends Fields>(table: TableDefine<T>, data: object, unsaved?: object): FieldValue<T>;
|
|
370
|
+
build(p: Build | TableDefine, data: object, unsaved?: object): any;
|
|
371
|
+
build<T extends Fields>(build: Build<T>, data: object, saved?: object | boolean): T;
|
|
372
|
+
build<T extends Fields>(table: TableDefine<T>, data: object, saved?: object | boolean): FieldValue<T>;
|
|
373
|
+
build(p: Build | TableDefine, data: object, saved?: object | boolean): any;
|
|
344
374
|
dbType(): Promise<string>;
|
|
345
375
|
dbVersion(): Promise<string>;
|
|
346
376
|
query(...values: any[]): Promise<any[]>;
|
|
@@ -1655,27 +1685,6 @@ declare class Where {
|
|
|
1655
1685
|
#private;
|
|
1656
1686
|
}
|
|
1657
1687
|
|
|
1658
|
-
declare const Destroy: unique symbol;
|
|
1659
|
-
interface Destroy {
|
|
1660
|
-
[Destroy](connection: Connection, run: (data: any) => Promise<object | null>, table: TableDefine<Fields<MainFieldType>>): PromiseLike<this | null>;
|
|
1661
|
-
}
|
|
1662
|
-
declare const PseudoDestroy: unique symbol;
|
|
1663
|
-
interface PseudoDestroy {
|
|
1664
|
-
[PseudoDestroy](connection: Connection, update: Record<string, SetValue>, run: (data: any) => Promise<object | null>, table: TableDefine<Fields<MainFieldType>>): PromiseLike<this | null>;
|
|
1665
|
-
}
|
|
1666
|
-
declare const Save: unique symbol;
|
|
1667
|
-
interface Save {
|
|
1668
|
-
[Save](connection: Connection, run: (data: any, newData?: any) => Promise<object | null>, newData: Record<string, any> | null, table: TableDefine): PromiseLike<this | null>;
|
|
1669
|
-
}
|
|
1670
|
-
declare const Create: unique symbol;
|
|
1671
|
-
interface Create<T = unknown> {
|
|
1672
|
-
[Create](connection: Connection, data: object, run: (data: any, that: any) => Promise<object>, table: TableDefine): PromiseLike<T>;
|
|
1673
|
-
}
|
|
1674
|
-
declare const Build: unique symbol;
|
|
1675
|
-
interface Build<T = unknown> {
|
|
1676
|
-
[Build](data: object, others: object | boolean): T;
|
|
1677
|
-
}
|
|
1678
|
-
|
|
1679
1688
|
declare class Connection<E extends object = object> {
|
|
1680
1689
|
#private;
|
|
1681
1690
|
constructor(connection: PromiseLike<IConnection<E>> | IConnection<E>, transaction?: E | null);
|
|
@@ -1840,10 +1849,11 @@ type QueryOptions<T extends Fields, TB extends unknown = any> = {
|
|
|
1840
1849
|
*/
|
|
1841
1850
|
/**
|
|
1842
1851
|
* @template {Fields} T
|
|
1843
|
-
* @template {object} [TB=object]
|
|
1852
|
+
* @template {object | never} [TB=object]
|
|
1844
1853
|
* @implements {Queryable<T>}
|
|
1854
|
+
* @implements {Action<any[]>}
|
|
1845
1855
|
*/
|
|
1846
|
-
declare class Query<T extends Fields, TB extends unknown = any> extends Subquery implements Queryable {
|
|
1856
|
+
declare class Query<T extends Fields, TB extends unknown = any> extends Subquery implements Queryable, Action {
|
|
1847
1857
|
/**
|
|
1848
1858
|
* @template {Fields} F
|
|
1849
1859
|
* @template {new (o: QueryOptions<F>) => Query<F>} T
|
|
@@ -2027,6 +2037,18 @@ declare class Query<T extends Fields, TB extends unknown = any> extends Subquery
|
|
|
2027
2037
|
* @param {LockType?} [lock]
|
|
2028
2038
|
*/
|
|
2029
2039
|
lock(lock?: LockType | null): this;
|
|
2040
|
+
invoke(connect: any): Promise<any>;
|
|
2041
|
+
/**
|
|
2042
|
+
* @param {string[]} fields
|
|
2043
|
+
* @param {Skip} [skip]
|
|
2044
|
+
* @returns {Action<FieldValue<T>[]>}
|
|
2045
|
+
*/
|
|
2046
|
+
search(fields: string[], skip?: Skip): Action<FieldValue<T>[]>;
|
|
2047
|
+
/**
|
|
2048
|
+
* @param {Skip} [skip]
|
|
2049
|
+
* @returns {Action<(FieldValue<T> | TB)[]>}
|
|
2050
|
+
*/
|
|
2051
|
+
find(skip?: Skip): Action<(FieldValue<T> | TB)[]>;
|
|
2030
2052
|
/**
|
|
2031
2053
|
*
|
|
2032
2054
|
* @param {object} a
|
|
@@ -2068,88 +2090,100 @@ declare function mergeHooks(...hooks: (Readonly<Partial<Hooks>> | Readonly<Parti
|
|
|
2068
2090
|
*/
|
|
2069
2091
|
declare function bindHooks(hooks: Readonly<Partial<Hooks>>, that: any): Readonly<Partial<Hooks>>;
|
|
2070
2092
|
|
|
2071
|
-
declare function export_default$
|
|
2093
|
+
declare function export_default$j<T>(tableDef: TableDefine, data: T): Action<(T extends Destroy ? T : object) | null>;
|
|
2072
2094
|
|
|
2073
|
-
declare function export_default$
|
|
2095
|
+
declare function export_default$i(queryable: Queryable): Action<number>;
|
|
2074
2096
|
|
|
2075
|
-
declare function export_default$
|
|
2076
|
-
declare function export_default$
|
|
2077
|
-
declare function export_default$
|
|
2097
|
+
declare function export_default$h<T extends TableDefine>(model: T, list: object[], skip?: Skip): Action<TableValue<T>[]>;
|
|
2098
|
+
declare function export_default$h<T extends TableDefine>(model: T, value: object, skip?: Skip): Action<T extends Build<infer R> ? R : TableValue<T>>;
|
|
2099
|
+
declare function export_default$h<T extends TableDefine>(model: T, p: object | object[], skip?: Skip): Action<TableValue<T>[] | (T extends Build<infer R> ? R : TableValue<T>)>;
|
|
2078
2100
|
|
|
2079
|
-
declare function export_default$
|
|
2101
|
+
declare function export_default$g({ table, connect, fields }: TableDefine, where?: Wheres | null): Action<number>;
|
|
2080
2102
|
|
|
2081
|
-
declare function export_default$
|
|
2103
|
+
declare function export_default$f({ table, connect, fields }: TableDefine, returning?: string[] | null, where?: Wheres | null): Action<any[]>;
|
|
2082
2104
|
|
|
2083
|
-
declare function export_default$
|
|
2105
|
+
declare function export_default$e(queryable: Queryable, update?: Record<string, SetValue> | boolean): Action<number>;
|
|
2084
2106
|
|
|
2085
|
-
declare function export_default$
|
|
2086
|
-
declare function export_default$
|
|
2087
|
-
declare function export_default$
|
|
2107
|
+
declare function export_default$d<T extends Destroy & PseudoDestroy>(tableDef: TableDefine, data: T, update?: Record<string, any> | boolean): Action<T | null>;
|
|
2108
|
+
declare function export_default$d<T extends Destroy & PseudoDestroy>(tableDef: TableDefine, data: any, update?: Record<string, any> | boolean): Action<T | object | null>;
|
|
2109
|
+
declare function export_default$d(tableDef: TableDefine, data: any, update?: Record<string, any> | boolean): Action<object | null>;
|
|
2088
2110
|
|
|
2089
|
-
|
|
2111
|
+
/** @deprecated */
|
|
2112
|
+
declare function export_default$c<T extends TableDefine>(sql: T, skip?: Skip): Action<T extends Build<infer R> ? R[] : T extends TableDefine<infer F> ? FieldValue<F>[] : never>;
|
|
2090
2113
|
|
|
2091
|
-
declare function export_default$
|
|
2114
|
+
declare function export_default$b<T extends TableDefine>(sql: T, skip?: Skip): Action<T extends Build<infer R> ? R : T extends TableDefine<infer F> ? FieldValue<F> : never>;
|
|
2092
2115
|
|
|
2093
|
-
declare function export_default$
|
|
2094
|
-
declare function export_default$
|
|
2095
|
-
declare function export_default$
|
|
2096
|
-
declare function export_default$
|
|
2097
|
-
declare function export_default$
|
|
2098
|
-
declare function export_default$
|
|
2099
|
-
declare function export_default$
|
|
2100
|
-
declare function export_default$
|
|
2101
|
-
declare function export_default$
|
|
2116
|
+
declare function export_default$a<T extends object>(tableDefine: TableDefine, data: T[], ignoreConflict?: boolean): Action<T[]>;
|
|
2117
|
+
declare function export_default$a<T extends object>(tableDefine: TableDefine, data: T, ignoreConflict?: boolean): Action<T>;
|
|
2118
|
+
declare function export_default$a<T extends object>(tableDefine: TableDefine, data: T | T[], ignoreConflict?: boolean): Action<T | T[]>;
|
|
2119
|
+
declare function export_default$a<T extends object>(tableDefine: TableDefine, data: T[], keys?: string[], ignoreConflict?: boolean): Action<T[]>;
|
|
2120
|
+
declare function export_default$a<T extends object>(tableDefine: TableDefine, data: T, keys?: string[], ignoreConflict?: boolean): Action<T>;
|
|
2121
|
+
declare function export_default$a<T extends object>(tableDefine: TableDefine, data: T | T[], keys?: string[], ignoreConflict?: boolean): Action<T | T[]>;
|
|
2122
|
+
declare function export_default$a<T extends object>(tableDefine: TableDefine, data: T[], keys?: string[] | boolean, ignoreConflict?: boolean): Action<T[]>;
|
|
2123
|
+
declare function export_default$a<T extends object>(tableDefine: TableDefine, data: T, keys?: string[] | boolean, ignoreConflict?: boolean): Action<T>;
|
|
2124
|
+
declare function export_default$a<T extends object>(tableDefine: TableDefine, data: T | T[], keys?: string[] | boolean, ignoreConflict?: boolean): Action<T | T[]>;
|
|
2102
2125
|
|
|
2103
|
-
declare function export_default$
|
|
2126
|
+
declare function export_default$9<T>(tableDef: TableDefine, data: T, value: Record<string, SetValue>): Action<(T extends PseudoDestroy ? T : object) | null>;
|
|
2104
2127
|
|
|
2105
|
-
declare function export_default$
|
|
2128
|
+
declare function export_default$8<T>(model: TableDefine, data: T, newData?: Record<string, any> | null, skip?: Skip): Action<(T extends Save ? T : object) | null>;
|
|
2106
2129
|
|
|
2107
|
-
|
|
2130
|
+
/** @deprecated */
|
|
2131
|
+
declare function export_default$7<T extends TableDefine>(sql: T, fields: string[], skip?: Skip): Action<T extends TableDefine<infer F> ? FieldValue<F>[] : never>;
|
|
2108
2132
|
|
|
2109
|
-
|
|
2133
|
+
/** @deprecated */
|
|
2134
|
+
declare function export_default$6(queryable: Queryable): Action<any[]>;
|
|
2110
2135
|
|
|
2111
|
-
declare function export_default$
|
|
2136
|
+
declare function export_default$5({ table, connect, fields }: TableDefine, pKeys: string[], setKeys: string[], list: Record<string, any>[], skip?: Skip | boolean): Action<number>;
|
|
2112
2137
|
|
|
2113
|
-
declare function export_default$
|
|
2138
|
+
declare function export_default$4({ table, connect, fields }: TableDefine, pKeys: string[], setKeys: string[], list: Record<string, any>[], returning?: string[] | null, skip?: Skip | boolean): Action<any[]>;
|
|
2114
2139
|
|
|
2115
|
-
declare function export_default$
|
|
2140
|
+
declare function export_default$3({ table, connect, fields }: TableDefine, update: Record<string, any>, where?: Wheres | null, skip?: Skip | boolean): Action<number>;
|
|
2116
2141
|
|
|
2117
|
-
declare function export_default$
|
|
2142
|
+
declare function export_default$2<T extends Fields<MainFieldType>>({ table, connect, fields }: TableDefine<T>, update: Record<string, any>, returning?: string[] | null, where?: Wheres | null, skip?: Skip | boolean): Action<any[]>;
|
|
2118
2143
|
|
|
2119
|
-
declare function export_default<T extends object>(tableDefine: TableDefine, data: T[], conflictSet?: Record<string, SetValue>): Action<T[]>;
|
|
2120
|
-
declare function export_default<T extends object>(tableDefine: TableDefine, data: T, conflictSet?: Record<string, SetValue>): Action<T>;
|
|
2121
|
-
declare function export_default<T extends object>(tableDefine: TableDefine, data: T | T[], conflictSet?: Record<string, SetValue>): Action<T | T[]>;
|
|
2122
|
-
declare function export_default<T extends object>(tableDefine: TableDefine, data: T[], keys?: null | string[], conflictSet?: Record<string, SetValue>): Action<T[]>;
|
|
2123
|
-
declare function export_default<T extends object>(tableDefine: TableDefine, data: T, keys?: null | string[], conflictSet?: Record<string, SetValue>): Action<T>;
|
|
2124
|
-
declare function export_default<T extends object>(tableDefine: TableDefine, data: T | T[], keys?: null | string[], conflictSet?: Record<string, SetValue>): Action<T | T[]>;
|
|
2125
|
-
declare function export_default<T extends object>(tableDefine: TableDefine, data: T[], keys?: null | string[], conflictKeys?: string[] | boolean, conflictSet?: Record<string, SetValue>): Action<T[]>;
|
|
2126
|
-
declare function export_default<T extends object>(tableDefine: TableDefine, data: T, keys?: null | string[], conflictKeys?: string[] | boolean, conflictSet?: Record<string, SetValue>): Action<T>;
|
|
2127
|
-
declare function export_default<T extends object>(tableDefine: TableDefine, data: T | T[], keys?: null | string[], conflictKeys?: string[] | boolean, conflictSet?: Record<string, SetValue>): Action<T | T[]>;
|
|
2128
|
-
declare function export_default<T extends object>(tableDefine: TableDefine, data: T[], keys?: null | string[] | boolean | Record<string, SetValue>, conflictKeys?: string[] | boolean | Record<string, SetValue>, conflictSet?: Record<string, SetValue>): Action<T[]>;
|
|
2129
|
-
declare function export_default<T extends object>(tableDefine: TableDefine, data: T, keys?: null | string[] | boolean | Record<string, SetValue>, conflictKeys?: string[] | boolean | Record<string, SetValue>, conflictSet?: Record<string, SetValue>): Action<T>;
|
|
2130
|
-
declare function export_default<T extends object>(tableDefine: TableDefine, data: T | T[], keys?: null | string[] | boolean | Record<string, SetValue>, conflictKeys?: string[] | boolean | Record<string, SetValue>, conflictSet?: Record<string, SetValue>): Action<T | T[]>;
|
|
2144
|
+
declare function export_default$1<T extends object>(tableDefine: TableDefine, data: T[], conflictSet?: Record<string, SetValue>): Action<T[]>;
|
|
2145
|
+
declare function export_default$1<T extends object>(tableDefine: TableDefine, data: T, conflictSet?: Record<string, SetValue>): Action<T>;
|
|
2146
|
+
declare function export_default$1<T extends object>(tableDefine: TableDefine, data: T | T[], conflictSet?: Record<string, SetValue>): Action<T | T[]>;
|
|
2147
|
+
declare function export_default$1<T extends object>(tableDefine: TableDefine, data: T[], keys?: null | string[], conflictSet?: Record<string, SetValue>): Action<T[]>;
|
|
2148
|
+
declare function export_default$1<T extends object>(tableDefine: TableDefine, data: T, keys?: null | string[], conflictSet?: Record<string, SetValue>): Action<T>;
|
|
2149
|
+
declare function export_default$1<T extends object>(tableDefine: TableDefine, data: T | T[], keys?: null | string[], conflictSet?: Record<string, SetValue>): Action<T | T[]>;
|
|
2150
|
+
declare function export_default$1<T extends object>(tableDefine: TableDefine, data: T[], keys?: null | string[], conflictKeys?: string[] | boolean, conflictSet?: Record<string, SetValue>): Action<T[]>;
|
|
2151
|
+
declare function export_default$1<T extends object>(tableDefine: TableDefine, data: T, keys?: null | string[], conflictKeys?: string[] | boolean, conflictSet?: Record<string, SetValue>): Action<T>;
|
|
2152
|
+
declare function export_default$1<T extends object>(tableDefine: TableDefine, data: T | T[], keys?: null | string[], conflictKeys?: string[] | boolean, conflictSet?: Record<string, SetValue>): Action<T | T[]>;
|
|
2153
|
+
declare function export_default$1<T extends object>(tableDefine: TableDefine, data: T[], keys?: null | string[] | boolean | Record<string, SetValue>, conflictKeys?: string[] | boolean | Record<string, SetValue>, conflictSet?: Record<string, SetValue>): Action<T[]>;
|
|
2154
|
+
declare function export_default$1<T extends object>(tableDefine: TableDefine, data: T, keys?: null | string[] | boolean | Record<string, SetValue>, conflictKeys?: string[] | boolean | Record<string, SetValue>, conflictSet?: Record<string, SetValue>): Action<T>;
|
|
2155
|
+
declare function export_default$1<T extends object>(tableDefine: TableDefine, data: T | T[], keys?: null | string[] | boolean | Record<string, SetValue>, conflictKeys?: string[] | boolean | Record<string, SetValue>, conflictSet?: Record<string, SetValue>): Action<T | T[]>;
|
|
2156
|
+
|
|
2157
|
+
/** @import Connection from './index.mts' */
|
|
2158
|
+
/** @import { TableDefine, Skip, SelectItem, ConnectionInterface } from '../types' */
|
|
2159
|
+
declare function export_default<T extends TableDefine>(model: T, primary: any, options?: {
|
|
2160
|
+
skipWhere?: boolean;
|
|
2161
|
+
lock?: 'S' | 'X' | null;
|
|
2162
|
+
range?: FindRange;
|
|
2163
|
+
}): Action<(T extends Build<infer R> ? R : T extends TableDefine<infer F> ? FieldValue<F> : never) | null>;
|
|
2131
2164
|
|
|
2132
2165
|
declare namespace index_d {
|
|
2133
2166
|
export {
|
|
2134
|
-
export_default$
|
|
2135
|
-
export_default$
|
|
2136
|
-
export_default$
|
|
2137
|
-
export_default$
|
|
2138
|
-
export_default$
|
|
2139
|
-
export_default$
|
|
2140
|
-
export_default$
|
|
2141
|
-
export_default$
|
|
2142
|
-
export_default$
|
|
2143
|
-
export_default
|
|
2144
|
-
export_default$
|
|
2145
|
-
export_default$
|
|
2146
|
-
export_default$
|
|
2147
|
-
export_default$
|
|
2148
|
-
export_default$
|
|
2149
|
-
export_default$
|
|
2150
|
-
export_default$
|
|
2151
|
-
export_default$
|
|
2152
|
-
export_default as
|
|
2167
|
+
export_default$j as completelyDestroy,
|
|
2168
|
+
export_default$i as count,
|
|
2169
|
+
export_default$h as create,
|
|
2170
|
+
export_default$g as delete,
|
|
2171
|
+
export_default$f as deleteReturn,
|
|
2172
|
+
export_default$d as destroy,
|
|
2173
|
+
export_default$e as destroyMany,
|
|
2174
|
+
export_default$c as find,
|
|
2175
|
+
export_default$b as first,
|
|
2176
|
+
export_default as get,
|
|
2177
|
+
export_default$a as insert,
|
|
2178
|
+
export_default$9 as pseudoDestroy,
|
|
2179
|
+
export_default$8 as save,
|
|
2180
|
+
export_default$7 as search,
|
|
2181
|
+
export_default$6 as select,
|
|
2182
|
+
export_default$3 as update,
|
|
2183
|
+
export_default$5 as updateList,
|
|
2184
|
+
export_default$4 as updateListReturn,
|
|
2185
|
+
export_default$2 as updateReturn,
|
|
2186
|
+
export_default$1 as upsert,
|
|
2153
2187
|
};
|
|
2154
2188
|
}
|
|
2155
2189
|
|
|
@@ -2567,5 +2601,5 @@ declare function toBool(v: any): boolean;
|
|
|
2567
2601
|
declare function setDevelopment(d?: boolean): void;
|
|
2568
2602
|
declare let isDevelopment: boolean;
|
|
2569
2603
|
|
|
2570
|
-
export { Build, CheckViolationError, Connection, ConnectionError, Create, Destroy, ForeignKeyViolationError, InvalidInputSyntaxError, Model, NotNullViolationError, OperatorMismatchError, PseudoDestroy, Query, Save, Scene, Select, SetValue, Submodel, UniqueViolationError, Where, index_d as actions, afterCreate, afterCreateMany, afterDelete, afterUpdate, beforeCreate, beforeCreateMany, beforeDelete, beforeUpdate, bindHooks, coefficient, column, export_default$
|
|
2571
|
-
export type {
|
|
2604
|
+
export { index_d as Action, Build, CheckViolationError, Connection, ConnectionError, Create, Destroy, ForeignKeyViolationError, InvalidInputSyntaxError, Model, NotNullViolationError, OperatorMismatchError, PseudoDestroy, Query, Save, Scene, Select, SetValue, Submodel, Subquery, UniqueViolationError, Where, index_d as actions, afterCreate, afterCreateMany, afterDelete, afterUpdate, beforeCreate, beforeCreateMany, beforeDelete, beforeUpdate, bindHooks, coefficient, column, export_default$j as completelyDestroy, export_default$i as count, export_default$h as create, creating, decrement, defaultValue, field as define, export_default$g as delete, export_default$f as deleteReturn, deleted, deleting, export_default$d as destroy, export_default$e as destroyMany, divide, field$1 as field, export_default$c as find, export_default$b as first, export_default as get, getPrimaryFields, getPrimaryKeys, hooks, immutable, increment, index, export_default$a as insert, isDevelopment, isPseudo, mergeHooks, model, multiply, now, primary, prop, pseudo, export_default$9 as pseudoDestroy, export_default$8 as save, export_default$7 as search, export_default$6 as select, setDevelopment, sort, model as submodel, toBool, toNot, toPrimaries, toPrimary, uncreatable, undeleted, export_default$3 as update, export_default$5 as updateList, export_default$4 as updateListReturn, export_default$2 as updateReturn, updating, export_default$1 as upsert, uuid, values, where, withDeleted };
|
|
2605
|
+
export type { BaseEnvironment, ClassDecorator, Column, ColumnOptions, ConnectionInterface, Constraint, DBColumn, DBIndex, DBTable, Environment, FieldDecorator, FieldDefine, FieldDefineOption, FieldDefineType, FieldSpecific, FieldSpecificValue, FieldType, FieldTypeDefine, FieldValue, Fields, FindArg, FindRange, GetName, Hook, Hooks, IConnection, IDBTable, Index, IndexInfo, IndexOptions, JOIN, Join, JoinType, LockType, MainFieldType, MaybePromise, MethodDecorator, Options, QueryOptions, Queryable, Savepoint, SelectItem, Skip, Support, TableConnect, TableConnection, TableDefine, TableType, TableValue, ToFieldType, ToType, TransactionFn, TransactionHandler, TransactionHandlerArray, WhereExists, WhereItem, WhereLike, WhereOr, WhereRaw, WhereValue, Wheres };
|
package/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* imodel v0.20.
|
|
2
|
+
* imodel v0.20.2
|
|
3
3
|
* (c) 2019-2026 猛火Fierflame
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -244,12 +244,6 @@ function setDefaultOptions(v) {
|
|
|
244
244
|
return v;
|
|
245
245
|
}
|
|
246
246
|
|
|
247
|
-
const Destroy = Symbol();
|
|
248
|
-
const PseudoDestroy = Symbol();
|
|
249
|
-
const Save = Symbol();
|
|
250
|
-
const Create = Symbol();
|
|
251
|
-
const Build = Symbol();
|
|
252
|
-
|
|
253
247
|
/** @import { TableDefine, FieldDefine } from '../types/table' */
|
|
254
248
|
/** @import { DBIndex, DBTable } from '../types/connection' */
|
|
255
249
|
/**
|
|
@@ -380,6 +374,12 @@ function table2db(tables) {
|
|
|
380
374
|
return allTables;
|
|
381
375
|
}
|
|
382
376
|
|
|
377
|
+
const Destroy = Symbol();
|
|
378
|
+
const PseudoDestroy = Symbol();
|
|
379
|
+
const Save = Symbol();
|
|
380
|
+
const Create = Symbol();
|
|
381
|
+
const Build = Symbol();
|
|
382
|
+
|
|
383
383
|
function signal2promise(signal) {
|
|
384
384
|
return new Promise((_, r) => {
|
|
385
385
|
if (signal.aborted) {
|
|
@@ -428,7 +428,26 @@ function createInterface (connPromise, baseTransaction) {
|
|
|
428
428
|
// TODO: 检测层数
|
|
429
429
|
}
|
|
430
430
|
}
|
|
431
|
+
function build(p, data, saved) {
|
|
432
|
+
if (typeof p[Build] === 'function') {
|
|
433
|
+
return p[Build](data, saved || false, {
|
|
434
|
+
isDevelopment,
|
|
435
|
+
values,
|
|
436
|
+
errors
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
if (typeof saved === 'boolean') {
|
|
440
|
+
return {
|
|
441
|
+
...data
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
return {
|
|
445
|
+
...data,
|
|
446
|
+
...saved
|
|
447
|
+
};
|
|
448
|
+
}
|
|
431
449
|
const ci = {
|
|
450
|
+
build,
|
|
432
451
|
async dbType() {
|
|
433
452
|
const conn = await connPromise;
|
|
434
453
|
return conn.dbType;
|
|
@@ -1019,41 +1038,43 @@ const withDeleted = Symbol();
|
|
|
1019
1038
|
/** @typedef {typeof withDeleted} withDeleted */
|
|
1020
1039
|
/** @typedef {deleted | undeleted | withDeleted} FindRange */
|
|
1021
1040
|
|
|
1022
|
-
|
|
1023
|
-
/**
|
|
1024
|
-
*
|
|
1025
|
-
* @param {Partial<Queryable>} queryable
|
|
1026
|
-
* @returns {Options}
|
|
1027
|
-
*/
|
|
1028
|
-
function getOptions({
|
|
1041
|
+
function getPseudoWhere({
|
|
1029
1042
|
fields,
|
|
1030
|
-
pseudo
|
|
1031
|
-
|
|
1032
|
-
}) {
|
|
1033
|
-
const options = {
|
|
1034
|
-
where: [],
|
|
1035
|
-
...modelOptions
|
|
1036
|
-
};
|
|
1043
|
+
pseudo
|
|
1044
|
+
}, range) {
|
|
1037
1045
|
if (!pseudo || !fields) {
|
|
1038
|
-
return
|
|
1046
|
+
return null;
|
|
1039
1047
|
}
|
|
1040
1048
|
if (!(pseudo in fields)) {
|
|
1041
|
-
return
|
|
1049
|
+
return null;
|
|
1042
1050
|
}
|
|
1043
|
-
if (
|
|
1044
|
-
|
|
1051
|
+
if (range === undeleted) {
|
|
1052
|
+
return {
|
|
1045
1053
|
field: pseudo,
|
|
1046
1054
|
operator: '<>',
|
|
1047
1055
|
value: 0
|
|
1048
|
-
}
|
|
1049
|
-
} else if (
|
|
1050
|
-
|
|
1056
|
+
};
|
|
1057
|
+
} else if (range !== withDeleted) {
|
|
1058
|
+
return {
|
|
1051
1059
|
field: pseudo,
|
|
1052
1060
|
operator: '=',
|
|
1053
1061
|
value: 0
|
|
1054
|
-
}
|
|
1062
|
+
};
|
|
1063
|
+
}
|
|
1064
|
+
return null;
|
|
1065
|
+
}
|
|
1066
|
+
function getOptions(queryable) {
|
|
1067
|
+
const pseudoWhere = getPseudoWhere(queryable, queryable.options?.range);
|
|
1068
|
+
if (!pseudoWhere) {
|
|
1069
|
+
return {
|
|
1070
|
+
where: [],
|
|
1071
|
+
...queryable.options
|
|
1072
|
+
};
|
|
1055
1073
|
}
|
|
1056
|
-
return
|
|
1074
|
+
return {
|
|
1075
|
+
...queryable.options,
|
|
1076
|
+
where: [...(queryable.options?.where || []), pseudoWhere]
|
|
1077
|
+
};
|
|
1057
1078
|
}
|
|
1058
1079
|
|
|
1059
1080
|
function count (queryable) {
|
|
@@ -2692,23 +2713,20 @@ async function search$1(conn, that, p, returnFields, skip) {
|
|
|
2692
2713
|
|
|
2693
2714
|
/* eslint-disable max-len */
|
|
2694
2715
|
|
|
2716
|
+
/** @deprecated */
|
|
2695
2717
|
function find (sql, skip) {
|
|
2696
2718
|
return {
|
|
2697
2719
|
connect: sql.connect,
|
|
2698
|
-
async invoke(connect, connection
|
|
2720
|
+
async invoke(connect, connection) {
|
|
2699
2721
|
const conn = await connect();
|
|
2700
2722
|
const result = await search$1(conn, connection, sql, true, skip);
|
|
2701
|
-
|
|
2702
|
-
return result;
|
|
2703
|
-
}
|
|
2704
|
-
const R = sql[Build].bind(sql);
|
|
2705
|
-
return result.map(it => R(it, true, env));
|
|
2723
|
+
return result.map(it => conn.build(sql, it, true));
|
|
2706
2724
|
}
|
|
2707
2725
|
};
|
|
2708
2726
|
}
|
|
2709
2727
|
|
|
2710
2728
|
/** @import Connection from './index.mts' */
|
|
2711
|
-
/** @import {
|
|
2729
|
+
/** @import { TableDefine, Skip, SelectItem, ConnectionInterface } from '../types' */
|
|
2712
2730
|
|
|
2713
2731
|
/**
|
|
2714
2732
|
*
|
|
@@ -2716,11 +2734,10 @@ function find (sql, skip) {
|
|
|
2716
2734
|
* @param {ConnectionInterface} conn
|
|
2717
2735
|
* @param {Connection} that
|
|
2718
2736
|
* @param {T} p
|
|
2719
|
-
* @param {BaseEnvironment} env
|
|
2720
2737
|
* @param {Skip} [skip]
|
|
2721
2738
|
* @returns {Promise<any>}
|
|
2722
2739
|
*/
|
|
2723
|
-
async function first$1(conn, that, p,
|
|
2740
|
+
async function first$1(conn, that, p, skip) {
|
|
2724
2741
|
const {
|
|
2725
2742
|
table,
|
|
2726
2743
|
fields
|
|
@@ -2755,18 +2772,15 @@ async function first$1(conn, that, p, env, skip) {
|
|
|
2755
2772
|
if (!item) {
|
|
2756
2773
|
return null;
|
|
2757
2774
|
}
|
|
2758
|
-
|
|
2759
|
-
return item;
|
|
2760
|
-
}
|
|
2761
|
-
return p[Build](item, true, env);
|
|
2775
|
+
return conn.build(p, item);
|
|
2762
2776
|
}
|
|
2763
2777
|
|
|
2764
2778
|
function first (sql, skip) {
|
|
2765
2779
|
return {
|
|
2766
2780
|
connect: sql.connect,
|
|
2767
|
-
async invoke(connect, connection
|
|
2781
|
+
async invoke(connect, connection) {
|
|
2768
2782
|
const conn = await connect();
|
|
2769
|
-
return first$1(conn, connection, sql,
|
|
2783
|
+
return first$1(conn, connection, sql, skip);
|
|
2770
2784
|
}
|
|
2771
2785
|
};
|
|
2772
2786
|
}
|
|
@@ -3363,6 +3377,7 @@ function save (model, data, newData, skip) {
|
|
|
3363
3377
|
};
|
|
3364
3378
|
}
|
|
3365
3379
|
|
|
3380
|
+
/** @deprecated */
|
|
3366
3381
|
function search (sql, fields, skip) {
|
|
3367
3382
|
return {
|
|
3368
3383
|
connect: sql.connect,
|
|
@@ -3416,6 +3431,7 @@ function toSelect(queryable, lockable) {
|
|
|
3416
3431
|
};
|
|
3417
3432
|
}
|
|
3418
3433
|
|
|
3434
|
+
/** @deprecated */
|
|
3419
3435
|
function select (queryable) {
|
|
3420
3436
|
return {
|
|
3421
3437
|
connect: queryable.connect,
|
|
@@ -3575,6 +3591,91 @@ function upsert ({
|
|
|
3575
3591
|
};
|
|
3576
3592
|
}
|
|
3577
3593
|
|
|
3594
|
+
const falseValues = new Set(['', '0', 'n', 'f', 'no', 'off', 'false', '否', '不', '假', '不是', '不行', '不可以']);
|
|
3595
|
+
|
|
3596
|
+
/**
|
|
3597
|
+
*
|
|
3598
|
+
* @param {any} v
|
|
3599
|
+
* @returns
|
|
3600
|
+
*/
|
|
3601
|
+
function toBool(v) {
|
|
3602
|
+
if (typeof v !== 'string') {
|
|
3603
|
+
return Boolean(v);
|
|
3604
|
+
}
|
|
3605
|
+
return !falseValues.has(v.toLowerCase());
|
|
3606
|
+
}
|
|
3607
|
+
|
|
3608
|
+
/** @import Connection from './index.mts' */
|
|
3609
|
+
/** @import { TableDefine, Skip, SelectItem, ConnectionInterface } from '../types' */
|
|
3610
|
+
|
|
3611
|
+
function get (model, primary, options) {
|
|
3612
|
+
return {
|
|
3613
|
+
connect: model.connect,
|
|
3614
|
+
async invoke(connect, connection) {
|
|
3615
|
+
const primaryFields = Object.entries(model.fields).filter(([, v]) => v.primary).sort(([, a], [, b]) => Number(a.primary) - Number(b.primary));
|
|
3616
|
+
if (!primaryFields.length) {
|
|
3617
|
+
throw new Error('no primary key');
|
|
3618
|
+
}
|
|
3619
|
+
const wheres = new Where();
|
|
3620
|
+
if (primaryFields.length === 1) {
|
|
3621
|
+
const [[field]] = primaryFields;
|
|
3622
|
+
wheres.and(field, primary);
|
|
3623
|
+
} else if (typeof primary === 'object') {
|
|
3624
|
+
for (const [p] of primaryFields) {
|
|
3625
|
+
wheres.and(p, primary[p]);
|
|
3626
|
+
}
|
|
3627
|
+
} else {
|
|
3628
|
+
const values = `${primary}`.split('$');
|
|
3629
|
+
if (values.length !== primaryFields.length) ;
|
|
3630
|
+
for (const [i, [p, {
|
|
3631
|
+
type
|
|
3632
|
+
}]] of primaryFields.entries()) {
|
|
3633
|
+
const value = values[i] ?? null;
|
|
3634
|
+
const val = type !== 'bool' || value === null ? value : toBool(value);
|
|
3635
|
+
wheres.and(p, val);
|
|
3636
|
+
}
|
|
3637
|
+
}
|
|
3638
|
+
const whereValues = Where.parseParams([wheres]) || [];
|
|
3639
|
+
const pseudoWhere = getPseudoWhere(model, options?.range);
|
|
3640
|
+
if (pseudoWhere) {
|
|
3641
|
+
whereValues.push(pseudoWhere);
|
|
3642
|
+
}
|
|
3643
|
+
const {
|
|
3644
|
+
table,
|
|
3645
|
+
fields
|
|
3646
|
+
} = model;
|
|
3647
|
+
const lock = options?.lock;
|
|
3648
|
+
const [columns, fieldColumns, tableFields] = toColumns(fields);
|
|
3649
|
+
const where = where2column(whereValues, fieldColumns);
|
|
3650
|
+
where.push(...getFixedValueWhere(columns));
|
|
3651
|
+
const whereHook = !options?.skipWhere && (await model.hooks?.where?.(connection, model));
|
|
3652
|
+
if (whereHook) {
|
|
3653
|
+
where.push(...where2column(Where.parse(whereHook), fieldColumns));
|
|
3654
|
+
}
|
|
3655
|
+
/** @type {SelectItem} */
|
|
3656
|
+
const selects = {
|
|
3657
|
+
table: typeof table === 'string' ? table : '',
|
|
3658
|
+
columns,
|
|
3659
|
+
where,
|
|
3660
|
+
limit: 1,
|
|
3661
|
+
sort: [],
|
|
3662
|
+
select: select2column(columns, fieldColumns),
|
|
3663
|
+
group: [],
|
|
3664
|
+
having: [],
|
|
3665
|
+
lock: options?.lock
|
|
3666
|
+
};
|
|
3667
|
+
const conn = await connect();
|
|
3668
|
+
const list = await conn.select(selects);
|
|
3669
|
+
const baseFieldSet = new Set(Object.keys(fieldColumns || columns));
|
|
3670
|
+
const [item] = await findSub(conn, list, tableFields, baseFieldSet, lock);
|
|
3671
|
+
if (!item) {
|
|
3672
|
+
return null;
|
|
3673
|
+
}
|
|
3674
|
+
return conn.build(model, item);
|
|
3675
|
+
}
|
|
3676
|
+
};
|
|
3677
|
+
}
|
|
3678
|
+
|
|
3578
3679
|
var index$1 = /*#__PURE__*/Object.freeze({
|
|
3579
3680
|
__proto__: null,
|
|
3580
3681
|
completelyDestroy: completelyDestroy,
|
|
@@ -3586,6 +3687,7 @@ var index$1 = /*#__PURE__*/Object.freeze({
|
|
|
3586
3687
|
destroyMany: destroyMany,
|
|
3587
3688
|
find: find,
|
|
3588
3689
|
first: first,
|
|
3690
|
+
get: get,
|
|
3589
3691
|
insert: insert,
|
|
3590
3692
|
pseudoDestroy: pseudoDestroy,
|
|
3591
3693
|
save: save,
|
|
@@ -3646,18 +3748,7 @@ class Connection {
|
|
|
3646
3748
|
return this.#interface.type(table);
|
|
3647
3749
|
}
|
|
3648
3750
|
build(p, data, saved) {
|
|
3649
|
-
|
|
3650
|
-
return p[Build](data, saved || false, this.#env);
|
|
3651
|
-
}
|
|
3652
|
-
if (typeof saved === 'boolean') {
|
|
3653
|
-
return {
|
|
3654
|
-
...data
|
|
3655
|
-
};
|
|
3656
|
-
}
|
|
3657
|
-
return {
|
|
3658
|
-
...data,
|
|
3659
|
-
...saved
|
|
3660
|
-
};
|
|
3751
|
+
return this.#interface.build(p, data, saved);
|
|
3661
3752
|
}
|
|
3662
3753
|
/** @deprecated */
|
|
3663
3754
|
|
|
@@ -5193,21 +5284,7 @@ function coefficient(...value) {
|
|
|
5193
5284
|
};
|
|
5194
5285
|
}
|
|
5195
5286
|
|
|
5196
|
-
|
|
5197
|
-
|
|
5198
|
-
/**
|
|
5199
|
-
*
|
|
5200
|
-
* @param {any} v
|
|
5201
|
-
* @returns
|
|
5202
|
-
*/
|
|
5203
|
-
function toBool(v) {
|
|
5204
|
-
if (typeof v !== 'string') {
|
|
5205
|
-
return Boolean(v);
|
|
5206
|
-
}
|
|
5207
|
-
return !falseValues.has(v.toLowerCase());
|
|
5208
|
-
}
|
|
5209
|
-
|
|
5210
|
-
/** @import { Action, FieldDefine, Fields, LockType, Options, Queryable, Select, Skip, TableConnect } from './types' */
|
|
5287
|
+
/** @import { Action, FieldDefine, Fields, FieldValue, LockType, Options, Queryable, Select, Skip, TableConnect } from './types' */
|
|
5211
5288
|
/** @import { WhereValue, Wheres } from './Where.mjs' */
|
|
5212
5289
|
/**
|
|
5213
5290
|
*
|
|
@@ -5272,8 +5349,9 @@ function selectFn(fn, select, newSelect) {
|
|
|
5272
5349
|
*/
|
|
5273
5350
|
/**
|
|
5274
5351
|
* @template {Fields} T
|
|
5275
|
-
* @template {object} [TB=object]
|
|
5352
|
+
* @template {object | never} [TB=object]
|
|
5276
5353
|
* @implements {Queryable<T>}
|
|
5354
|
+
* @implements {Action<any[]>}
|
|
5277
5355
|
*/
|
|
5278
5356
|
class Query extends Subquery {
|
|
5279
5357
|
/**
|
|
@@ -5751,6 +5829,41 @@ class Query extends Subquery {
|
|
|
5751
5829
|
this.#options.lock = type === 'S' || type === 'X' ? type : null;
|
|
5752
5830
|
return this;
|
|
5753
5831
|
}
|
|
5832
|
+
async invoke(connect) {
|
|
5833
|
+
const selects = toSelect(this, true);
|
|
5834
|
+
const conn = await connect();
|
|
5835
|
+
return conn.select(selects);
|
|
5836
|
+
}
|
|
5837
|
+
/**
|
|
5838
|
+
* @param {string[]} fields
|
|
5839
|
+
* @param {Skip} [skip]
|
|
5840
|
+
* @returns {Action<FieldValue<T>[]>}
|
|
5841
|
+
*/
|
|
5842
|
+
search(fields, skip) {
|
|
5843
|
+
return {
|
|
5844
|
+
connect: this.connect,
|
|
5845
|
+
invoke: async (connect, connection) => {
|
|
5846
|
+
const returnFields = Array.isArray(fields) ? fields : [];
|
|
5847
|
+
const conn = await connect();
|
|
5848
|
+
const result = search$1(conn, connection, this, returnFields, skip);
|
|
5849
|
+
return /** @type {any} */result;
|
|
5850
|
+
}
|
|
5851
|
+
};
|
|
5852
|
+
}
|
|
5853
|
+
/**
|
|
5854
|
+
* @param {Skip} [skip]
|
|
5855
|
+
* @returns {Action<(FieldValue<T> | TB)[]>}
|
|
5856
|
+
*/
|
|
5857
|
+
find(skip) {
|
|
5858
|
+
return {
|
|
5859
|
+
connect: this.connect,
|
|
5860
|
+
invoke: async (connect, connection) => {
|
|
5861
|
+
const conn = await connect();
|
|
5862
|
+
const result = await search$1(conn, connection, this, true, skip);
|
|
5863
|
+
return result.map(it => conn.build(this, it, true));
|
|
5864
|
+
}
|
|
5865
|
+
};
|
|
5866
|
+
}
|
|
5754
5867
|
}
|
|
5755
5868
|
|
|
5756
5869
|
/** @import { Fields, IndexInfo, FieldDefine } from './types' */
|
|
@@ -7107,4 +7220,4 @@ function field(type, {
|
|
|
7107
7220
|
};
|
|
7108
7221
|
}
|
|
7109
7222
|
|
|
7110
|
-
export { Build, CheckViolationError, Connection, ConnectionError, Create, Destroy, ForeignKeyViolationError, InvalidInputSyntaxError, Model, NotNullViolationError, OperatorMismatchError, PseudoDestroy, Query, Save, Scene, Submodel, UniqueViolationError, Where, index$1 as actions, afterCreate, afterCreateMany, afterDelete, afterUpdate, beforeCreate, beforeCreateMany, beforeDelete, beforeUpdate, bindHooks, coefficient, column, completelyDestroy, count, create, creating, decrement, defaultValue, field as define, _delete as delete, deleteReturn, deleted, deleting, destroy, destroyMany, divide, field$1 as field, find, first, getPrimaryFields, getPrimaryKeys, hooks, immutable, increment, index, insert, isDevelopment, isPseudo, mergeHooks, model, multiply, now, primary, prop, pseudo, pseudoDestroy, save, search, select, setDevelopment, sort, model as submodel, toBool, toNot, toPrimaries, toPrimary, uncreatable, undeleted, update, updateList, updateListReturn, updateReturn, updating, upsert, uuid, values, where, withDeleted };
|
|
7223
|
+
export { index$1 as Action, Build, CheckViolationError, Connection, ConnectionError, Create, Destroy, ForeignKeyViolationError, InvalidInputSyntaxError, Model, NotNullViolationError, OperatorMismatchError, PseudoDestroy, Query, Save, Scene, Submodel, Subquery, UniqueViolationError, Where, index$1 as actions, afterCreate, afterCreateMany, afterDelete, afterUpdate, beforeCreate, beforeCreateMany, beforeDelete, beforeUpdate, bindHooks, coefficient, column, completelyDestroy, count, create, creating, decrement, defaultValue, field as define, _delete as delete, deleteReturn, deleted, deleting, destroy, destroyMany, divide, field$1 as field, find, first, get, getPrimaryFields, getPrimaryKeys, hooks, immutable, increment, index, insert, isDevelopment, isPseudo, mergeHooks, model, multiply, now, primary, prop, pseudo, pseudoDestroy, save, search, select, setDevelopment, sort, model as submodel, toBool, toNot, toPrimaries, toPrimary, uncreatable, undeleted, update, updateList, updateListReturn, updateReturn, updating, upsert, uuid, values, where, withDeleted };
|
package/migrate.d.mts
CHANGED
package/migrate.mjs
CHANGED