typhex 0.1.0-alpha.0 → 0.1.0-alpha.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/CHANGELOG.md +15 -0
- package/README.md +1 -1
- package/dist/arrow/aggregates.d.ts +5 -1
- package/dist/arrow/aggregates.d.ts.map +1 -1
- package/dist/arrow/aggregates.js +23 -1
- package/dist/arrow/aggregates.js.map +1 -1
- package/dist/arrow/index.d.ts +7 -3
- package/dist/arrow/index.d.ts.map +1 -1
- package/dist/arrow/index.js +24 -3
- package/dist/arrow/index.js.map +1 -1
- package/dist/dbs/base-migrator.d.ts +0 -1
- package/dist/dbs/base-migrator.d.ts.map +1 -1
- package/dist/dbs/base-migrator.js +5 -7
- package/dist/dbs/base-migrator.js.map +1 -1
- package/dist/dbs/postgres/driver.d.ts.map +1 -1
- package/dist/dbs/postgres/driver.js +3 -0
- package/dist/dbs/postgres/driver.js.map +1 -1
- package/dist/dbs/postgres/query-compiler.d.ts +6 -2
- package/dist/dbs/postgres/query-compiler.d.ts.map +1 -1
- package/dist/dbs/postgres/query-compiler.js +11 -11
- package/dist/dbs/postgres/query-compiler.js.map +1 -1
- package/dist/dbs/query-compiler.d.ts +13 -13
- package/dist/dbs/query-compiler.d.ts.map +1 -1
- package/dist/dbs/query-compiler.js +11 -37
- package/dist/dbs/query-compiler.js.map +1 -1
- package/dist/dbs/sqlite/index.d.ts +2 -2
- package/dist/dbs/sqlite/index.d.ts.map +1 -1
- package/dist/dbs/sqlite/index.js +1 -1
- package/dist/dbs/sqlite/index.js.map +1 -1
- package/dist/dbs/sqlite/query-compiler.d.ts +4 -1
- package/dist/dbs/sqlite/query-compiler.d.ts.map +1 -1
- package/dist/dbs/sqlite/query-compiler.js +11 -2
- package/dist/dbs/sqlite/query-compiler.js.map +1 -1
- package/dist/dbs/types.d.ts +5 -11
- package/dist/dbs/types.d.ts.map +1 -1
- package/dist/dbs/types.js +1 -1
- package/dist/dbs/types.js.map +1 -1
- package/dist/driver/compile-only.d.ts +8 -0
- package/dist/driver/compile-only.d.ts.map +1 -0
- package/dist/driver/compile-only.js +26 -0
- package/dist/driver/compile-only.js.map +1 -0
- package/dist/driver/sqlite.d.ts.map +1 -1
- package/dist/driver/sqlite.js +3 -0
- package/dist/driver/sqlite.js.map +1 -1
- package/dist/entity/entity.d.ts +1 -1
- package/dist/entity/entity.d.ts.map +1 -1
- package/dist/entity/entity.js +14 -11
- package/dist/entity/entity.js.map +1 -1
- package/dist/entity/global-driver.d.ts +5 -3
- package/dist/entity/global-driver.d.ts.map +1 -1
- package/dist/entity/global-driver.js +51 -2
- package/dist/entity/global-driver.js.map +1 -1
- package/dist/entity/index.d.ts +1 -1
- package/dist/entity/index.d.ts.map +1 -1
- package/dist/entity/index.js +1 -1
- package/dist/entity/index.js.map +1 -1
- package/dist/entity/pk-columns.d.ts +0 -2
- package/dist/entity/pk-columns.d.ts.map +1 -1
- package/dist/entity/pk-columns.js +2 -10
- package/dist/entity/pk-columns.js.map +1 -1
- package/dist/entity/relations.d.ts +0 -4
- package/dist/entity/relations.d.ts.map +1 -1
- package/dist/entity/relations.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/migration/cli.js +120 -117
- package/dist/migration/cli.js.map +1 -1
- package/dist/migration/index.d.ts +1 -1
- package/dist/migration/index.d.ts.map +1 -1
- package/dist/migration/runner.d.ts +2 -6
- package/dist/migration/runner.d.ts.map +1 -1
- package/dist/migration/runner.js +1 -3
- package/dist/migration/runner.js.map +1 -1
- package/dist/migration/types.d.ts +0 -5
- package/dist/migration/types.d.ts.map +1 -1
- package/dist/orm/db.d.ts +16 -10
- package/dist/orm/db.d.ts.map +1 -1
- package/dist/orm/db.js +37 -9
- package/dist/orm/db.js.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.d.ts +2 -2
- package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.d.ts.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.js.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-executor.d.ts +3 -3
- package/dist/orm/helpers/insert-graph/insert-graph-executor.d.ts.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-executor.js.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-planner.d.ts +3 -3
- package/dist/orm/helpers/insert-graph/insert-graph-planner.d.ts.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-planner.js +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-planner.js.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.d.ts +2 -2
- package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.d.ts.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.js.map +1 -1
- package/dist/orm/helpers/insert-graph/sequence-id-assigner.d.ts +2 -2
- package/dist/orm/helpers/insert-graph/sequence-id-assigner.d.ts.map +1 -1
- package/dist/orm/helpers/insert-graph/sequence-id-assigner.js.map +1 -1
- package/dist/orm/helpers/query-plan/query-plan.d.ts +19 -11
- package/dist/orm/helpers/query-plan/query-plan.d.ts.map +1 -1
- package/dist/orm/helpers/query-plan/query-plan.js +24 -4
- package/dist/orm/helpers/query-plan/query-plan.js.map +1 -1
- package/dist/orm/helpers/relations/relation-assembler.d.ts.map +1 -1
- package/dist/orm/helpers/relations/relation-assembler.js +14 -5
- package/dist/orm/helpers/relations/relation-assembler.js.map +1 -1
- package/dist/orm/helpers/relations/relation-fetcher.d.ts +20 -0
- package/dist/orm/helpers/relations/relation-fetcher.d.ts.map +1 -1
- package/dist/orm/helpers/relations/relation-fetcher.js +106 -23
- package/dist/orm/helpers/relations/relation-fetcher.js.map +1 -1
- package/dist/orm/index.d.ts +1 -1
- package/dist/orm/index.d.ts.map +1 -1
- package/dist/orm/index.js +1 -1
- package/dist/orm/index.js.map +1 -1
- package/dist/orm/insert-builder.d.ts +37 -0
- package/dist/orm/insert-builder.d.ts.map +1 -0
- package/dist/orm/insert-builder.js +134 -0
- package/dist/orm/insert-builder.js.map +1 -0
- package/dist/orm/query-builder.d.ts +51 -52
- package/dist/orm/query-builder.d.ts.map +1 -1
- package/dist/orm/query-builder.js +197 -223
- package/dist/orm/query-builder.js.map +1 -1
- package/dist/orm/query-execution-context.d.ts +5 -0
- package/dist/orm/query-execution-context.d.ts.map +1 -0
- package/dist/orm/query-execution-context.js +16 -0
- package/dist/orm/query-execution-context.js.map +1 -0
- package/dist/orm/query-helpers.d.ts.map +1 -1
- package/dist/orm/query-helpers.js +1 -1
- package/dist/orm/query-helpers.js.map +1 -1
- package/dist/orm/query-state.d.ts +10 -6
- package/dist/orm/query-state.d.ts.map +1 -1
- package/dist/orm/query-state.js.map +1 -1
- package/dist/orm/statement.d.ts +33 -0
- package/dist/orm/statement.d.ts.map +1 -0
- package/dist/orm/statement.js +31 -0
- package/dist/orm/statement.js.map +1 -0
- package/dist/parser/group-by.d.ts.map +1 -1
- package/dist/parser/group-by.js +2 -1
- package/dist/parser/group-by.js.map +1 -1
- package/dist/parser/predicate-walk.d.ts.map +1 -1
- package/dist/parser/predicate-walk.js +12 -32
- package/dist/parser/predicate-walk.js.map +1 -1
- package/dist/parser/resolve.js +1 -1
- package/dist/parser/resolve.js.map +1 -1
- package/dist/parser/select.js +3 -3
- package/dist/parser/select.js.map +1 -1
- package/dist/schema/column-definition.d.ts +10 -0
- package/dist/schema/column-definition.d.ts.map +1 -0
- package/dist/schema/column-definition.js +13 -0
- package/dist/schema/column-definition.js.map +1 -0
- package/dist/transformer/ir-emit.d.ts.map +1 -1
- package/dist/transformer/ir-emit.js +3 -0
- package/dist/transformer/ir-emit.js.map +1 -1
- package/dist/transformer/select-transformer.d.ts.map +1 -1
- package/dist/transformer/select-transformer.js +18 -0
- package/dist/transformer/select-transformer.js.map +1 -1
- package/dist/transformer/ts-aggregates.d.ts.map +1 -1
- package/dist/transformer/ts-aggregates.js +9 -14
- package/dist/transformer/ts-aggregates.js.map +1 -1
- package/dist/transformer/where-transformer.d.ts.map +1 -1
- package/dist/transformer/where-transformer.js +15 -24
- package/dist/transformer/where-transformer.js.map +1 -1
- package/docs/guide/entities-relations.md +12 -3
- package/docs/guide/getting-started.md +10 -3
- package/docs/public-api.md +6 -6
- package/docs/reference/api.md +14 -6
- package/docs/reference/architecture.md +11 -3
- package/etc/typhex.api.md +59 -59
- package/package.json +2 -2
- package/dist/dbs/sqlite/driver.d.ts +0 -9
- package/dist/dbs/sqlite/driver.d.ts.map +0 -1
- package/dist/dbs/sqlite/driver.js +0 -66
- package/dist/dbs/sqlite/driver.js.map +0 -1
- package/dist/schema/index.d.ts +0 -2
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js +0 -2
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/types.d.ts +0 -16
- package/dist/schema/types.d.ts.map +0 -1
- package/dist/schema/types.js +0 -40
- package/dist/schema/types.js.map +0 -1
package/etc/typhex.api.md
CHANGED
|
@@ -38,23 +38,6 @@ export type ColumnChange = {
|
|
|
38
38
|
to: boolean;
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
-
// @public
|
|
42
|
-
export type ColumnDef = string | {
|
|
43
|
-
[K in DialectName]?: string;
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
// @public
|
|
47
|
-
export interface CompiledCteBody {
|
|
48
|
-
// (undocumented)
|
|
49
|
-
bodyParams: unknown[];
|
|
50
|
-
// (undocumented)
|
|
51
|
-
bodySql: string;
|
|
52
|
-
// (undocumented)
|
|
53
|
-
name: string;
|
|
54
|
-
// (undocumented)
|
|
55
|
-
recursive?: boolean;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
41
|
// @public
|
|
59
42
|
export interface Connection<TDialect extends DialectInfo = DialectInfo> {
|
|
60
43
|
readonly dialect: TDialect;
|
|
@@ -90,11 +73,7 @@ export class Db implements QueryExecutor {
|
|
|
90
73
|
get dialect(): DialectInfo;
|
|
91
74
|
downMigration(name: string, dir?: string): Promise<void>;
|
|
92
75
|
get driver(): Driver;
|
|
93
|
-
dryRunMigrations(dir?: string): Promise<
|
|
94
|
-
applied: MigrationRecord[];
|
|
95
|
-
pending: PendingMigration[];
|
|
96
|
-
skipped: string[];
|
|
97
|
-
}>;
|
|
76
|
+
dryRunMigrations(dir?: string): Promise<MigrationDryRun>;
|
|
98
77
|
static fromConfig(options?: {
|
|
99
78
|
configPath?: string;
|
|
100
79
|
cwd?: string;
|
|
@@ -112,6 +91,7 @@ export class Db implements QueryExecutor {
|
|
|
112
91
|
changes: number;
|
|
113
92
|
}>;
|
|
114
93
|
runMigrations(dir?: string): Promise<MigrationResult>;
|
|
94
|
+
setAsDefault(): this;
|
|
115
95
|
transaction<T>(fn: (trx: Trx) => Promise<T>, options?: TransactionOptions): Promise<T>;
|
|
116
96
|
upMigration(name: string, dir?: string): Promise<void>;
|
|
117
97
|
validate(): Promise<void>;
|
|
@@ -133,13 +113,20 @@ export interface DbColumnInfo {
|
|
|
133
113
|
|
|
134
114
|
// @public
|
|
135
115
|
export type DbOptions = {
|
|
136
|
-
driver: Driver;
|
|
137
116
|
migrationsFolder?: string;
|
|
117
|
+
entities?: readonly RegisteredEntity[];
|
|
118
|
+
setAsDefault?: boolean;
|
|
119
|
+
} & ({
|
|
120
|
+
driver: Driver;
|
|
138
121
|
} | {
|
|
139
122
|
dialect: DialectName;
|
|
140
123
|
database?: string;
|
|
141
124
|
url?: string;
|
|
142
|
-
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// @public
|
|
128
|
+
export type DialectColumnDef = string | {
|
|
129
|
+
[K in DialectName]?: string;
|
|
143
130
|
};
|
|
144
131
|
|
|
145
132
|
// @public
|
|
@@ -155,7 +142,7 @@ export type DialectName = "sqlite" | "postgres";
|
|
|
155
142
|
export type DiffAction = {
|
|
156
143
|
kind: "add_table";
|
|
157
144
|
table: string;
|
|
158
|
-
schema: Record<string,
|
|
145
|
+
schema: Record<string, DialectColumnDef>;
|
|
159
146
|
} | {
|
|
160
147
|
kind: "drop_table";
|
|
161
148
|
table: string;
|
|
@@ -164,7 +151,7 @@ export type DiffAction = {
|
|
|
164
151
|
kind: "add_column";
|
|
165
152
|
table: string;
|
|
166
153
|
column: string;
|
|
167
|
-
definition:
|
|
154
|
+
definition: DialectColumnDef;
|
|
168
155
|
} | {
|
|
169
156
|
kind: "drop_column";
|
|
170
157
|
table: string;
|
|
@@ -175,7 +162,7 @@ export type DiffAction = {
|
|
|
175
162
|
table: string;
|
|
176
163
|
column: string;
|
|
177
164
|
oldDef: string;
|
|
178
|
-
newDef:
|
|
165
|
+
newDef: DialectColumnDef;
|
|
179
166
|
columnInfo: DbColumnInfo;
|
|
180
167
|
changes: ColumnChange[];
|
|
181
168
|
};
|
|
@@ -199,11 +186,7 @@ export interface Driver<TDialect extends DialectInfo = DialectInfo> {
|
|
|
199
186
|
}
|
|
200
187
|
|
|
201
188
|
// @public (undocumented)
|
|
202
|
-
export function dryRunMigrations(driver: Driver, dir: string): Promise<
|
|
203
|
-
applied: MigrationRecord[];
|
|
204
|
-
pending: PendingMigration[];
|
|
205
|
-
skipped: string[];
|
|
206
|
-
}>;
|
|
189
|
+
export function dryRunMigrations(driver: Driver, dir: string): Promise<MigrationDryRun>;
|
|
207
190
|
|
|
208
191
|
// @public
|
|
209
192
|
export function Entity<TTable extends string, const TSchema extends Record<string, string>, const TRels extends RelationsMap = {}>(tableName: TTable, schema: TSchema, relations?: TRels): EntityClass<TTable, TSchema, TRels>;
|
|
@@ -269,9 +252,6 @@ export type Flatten<T> = {
|
|
|
269
252
|
// @public
|
|
270
253
|
export function generateMigrationFiles(driver: Driver, entities: readonly RegisteredEntity[]): Promise<MigrationFile[]>;
|
|
271
254
|
|
|
272
|
-
// @public
|
|
273
|
-
export function getPkColumnsFromSchema(schema: Record<string, string>): string[];
|
|
274
|
-
|
|
275
255
|
// @public
|
|
276
256
|
export type HasDefault<S extends string> = Lowercase<S> extends `${string}default${string}` ? true : false;
|
|
277
257
|
|
|
@@ -291,11 +271,12 @@ export type InferTable<T extends Record<string, string>> = Flatten<{
|
|
|
291
271
|
}>;
|
|
292
272
|
|
|
293
273
|
// @public
|
|
294
|
-
export class InsertBuilder<C extends AnyEntityClass, R>
|
|
295
|
-
doNothing():
|
|
296
|
-
doUpdate(updateColumns?: string[]):
|
|
274
|
+
export class InsertBuilder<C extends AnyEntityClass, R> implements PromiseLike<R> {
|
|
275
|
+
doNothing(): Statement<R>;
|
|
276
|
+
doUpdate(updateColumns?: string[]): Statement<R>;
|
|
297
277
|
onConflict(columns: string[]): this;
|
|
298
|
-
then<T1 = R, T2 = never>(res?: ((
|
|
278
|
+
then<T1 = R, T2 = never>(res?: ((value: R) => T1 | PromiseLike<T1>) | null, rej?: ((reason: unknown) => T2 | PromiseLike<T2>) | null): PromiseLike<T1 | T2>;
|
|
279
|
+
toSql(): SqlAndParams;
|
|
299
280
|
}
|
|
300
281
|
|
|
301
282
|
// @public
|
|
@@ -511,12 +492,12 @@ export interface PostgresDriverOptions {
|
|
|
511
492
|
// @public
|
|
512
493
|
export class QueryBuilder<C extends AnyEntityClass = AnyEntityClass, T = EntityInstance<C>, Ctes extends Record<string, unknown> = NoCtes, FromKind extends QueryFromKind = "table"> {
|
|
513
494
|
clone(): QueryBuilder<C, T, Ctes, FromKind>;
|
|
514
|
-
count():
|
|
495
|
+
count(): Statement<number>;
|
|
515
496
|
crossJoin(keysOrFn: string[] | ((row: T) => unknown)): this;
|
|
516
|
-
delete():
|
|
517
|
-
deleteReturning():
|
|
518
|
-
findById(id: unknown):
|
|
519
|
-
first():
|
|
497
|
+
delete(): Statement<number>;
|
|
498
|
+
deleteReturning(): Statement<EntityInstance<C>[]>;
|
|
499
|
+
findById(id: unknown): Statement<EntityInstance<C> | null>;
|
|
500
|
+
first(): Statement<EntityInstance<C> | undefined>;
|
|
520
501
|
from<N extends keyof Ctes & string>(name: N): QueryBuilder<C, Ctes[N], Ctes, "cte">;
|
|
521
502
|
// (undocumented)
|
|
522
503
|
from<Row = EntityInstance<C>>(name: string): QueryBuilder<C, Row, Ctes, "cte">;
|
|
@@ -550,14 +531,14 @@ export class QueryBuilder<C extends AnyEntityClass = AnyEntityClass, T = EntityI
|
|
|
550
531
|
rightJoin<E extends AnyEntityClass>(entity: E, on: (joined: EntityInstance<E>, row: T) => boolean): this;
|
|
551
532
|
select<U>(fn: (row: SelectRow<C>) => U): QueryBuilder<C, U, Ctes>;
|
|
552
533
|
select(columns: string[]): QueryBuilder<C, T, Ctes>;
|
|
553
|
-
toArray():
|
|
534
|
+
toArray(): Statement<EntityInstance<C>[]>;
|
|
554
535
|
unionAll<OC extends AnyEntityClass, OT>(other: QueryBuilder<OC, OT, any, any>): QueryBuilder<C, T, Ctes, FromKind>;
|
|
555
|
-
update(set: Record<string, unknown>):
|
|
536
|
+
update(set: Record<string, unknown>): Statement<number>;
|
|
556
537
|
// (undocumented)
|
|
557
|
-
update(setFn: HasRegisteredCtes<Ctes> extends true ? (row: EntityInstance<C>, ctes: RegisteredCtes<Ctes>) => Record<string, unknown> : (row: EntityInstance<C>) => Record<string, unknown>):
|
|
558
|
-
updateReturning(set: Record<string, unknown>):
|
|
538
|
+
update(setFn: HasRegisteredCtes<Ctes> extends true ? (row: EntityInstance<C>, ctes: RegisteredCtes<Ctes>) => Record<string, unknown> : (row: EntityInstance<C>) => Record<string, unknown>): Statement<number>;
|
|
539
|
+
updateReturning(set: Record<string, unknown>): Statement<EntityInstance<C>[]>;
|
|
559
540
|
// (undocumented)
|
|
560
|
-
updateReturning(setFn: HasRegisteredCtes<Ctes> extends true ? (row: EntityInstance<C>, ctes: RegisteredCtes<Ctes>) => Record<string, unknown> : (row: EntityInstance<C>) => Record<string, unknown>):
|
|
541
|
+
updateReturning(setFn: HasRegisteredCtes<Ctes> extends true ? (row: EntityInstance<C>, ctes: RegisteredCtes<Ctes>) => Record<string, unknown> : (row: EntityInstance<C>) => Record<string, unknown>): Statement<EntityInstance<C>[]>;
|
|
561
542
|
// Warning: (ae-forgotten-export) The symbol "HasRegisteredCtes" needs to be exported by the entry point index.d.ts
|
|
562
543
|
// Warning: (ae-forgotten-export) The symbol "TableRow" needs to be exported by the entry point index.d.ts
|
|
563
544
|
// Warning: (ae-forgotten-export) The symbol "RegisteredCtes" needs to be exported by the entry point index.d.ts
|
|
@@ -606,6 +587,15 @@ export interface RelationDef<_E = unknown, TType extends RelationType = Relation
|
|
|
606
587
|
readonly _target: () => unknown;
|
|
607
588
|
}
|
|
608
589
|
|
|
590
|
+
// @public
|
|
591
|
+
export interface RelationFetchSql {
|
|
592
|
+
// (undocumented)
|
|
593
|
+
params: unknown[];
|
|
594
|
+
relation: string;
|
|
595
|
+
// (undocumented)
|
|
596
|
+
sql: string;
|
|
597
|
+
}
|
|
598
|
+
|
|
609
599
|
// @public
|
|
610
600
|
export type RelationKind<TType extends RelationType> = TType extends "one-to-many" | "many-to-many" ? "many" : "one";
|
|
611
601
|
|
|
@@ -666,6 +656,15 @@ export class SingleRowQueryBuilder<T = unknown> {
|
|
|
666
656
|
save(): Promise<void>;
|
|
667
657
|
}
|
|
668
658
|
|
|
659
|
+
// @public
|
|
660
|
+
export interface SqlAndParams {
|
|
661
|
+
// (undocumented)
|
|
662
|
+
params: unknown[];
|
|
663
|
+
relationFetches?: RelationFetchSql[];
|
|
664
|
+
// (undocumented)
|
|
665
|
+
sql: string;
|
|
666
|
+
}
|
|
667
|
+
|
|
669
668
|
// @public
|
|
670
669
|
export interface SqliteDriverOptions {
|
|
671
670
|
database?: string;
|
|
@@ -704,6 +703,17 @@ export type SQLTypeMap = {
|
|
|
704
703
|
bigserial: bigint;
|
|
705
704
|
};
|
|
706
705
|
|
|
706
|
+
// @public
|
|
707
|
+
export class Statement<T> implements PromiseLike<T> {
|
|
708
|
+
// (undocumented)
|
|
709
|
+
catch<T2 = never>(rej?: ((reason: unknown) => T2 | PromiseLike<T2>) | null): Promise<T | T2>;
|
|
710
|
+
// (undocumented)
|
|
711
|
+
finally(onFinally?: (() => void) | null): Promise<T>;
|
|
712
|
+
// (undocumented)
|
|
713
|
+
then<T1 = T, T2 = never>(res?: ((value: T) => T1 | PromiseLike<T1>) | null, rej?: ((reason: unknown) => T2 | PromiseLike<T2>) | null): Promise<T1 | T2>;
|
|
714
|
+
toSql(): SqlAndParams;
|
|
715
|
+
}
|
|
716
|
+
|
|
707
717
|
// @public
|
|
708
718
|
export type StripParens<S extends string> = S extends `${infer Base}(${string})${infer Rest}` ? `${Base}${Rest}` : S;
|
|
709
719
|
|
|
@@ -759,16 +769,6 @@ export interface TyphexConfig {
|
|
|
759
769
|
// @public (undocumented)
|
|
760
770
|
export function upMigration(driver: Driver, dir: string, name: string): Promise<void>;
|
|
761
771
|
|
|
762
|
-
// @public
|
|
763
|
-
export interface WithClause {
|
|
764
|
-
// (undocumented)
|
|
765
|
-
inner: unknown;
|
|
766
|
-
// (undocumented)
|
|
767
|
-
kind: "simple" | "recursive";
|
|
768
|
-
// (undocumented)
|
|
769
|
-
name: string;
|
|
770
|
-
}
|
|
771
|
-
|
|
772
772
|
// (No @packageDocumentation comment for this package)
|
|
773
773
|
|
|
774
774
|
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typhex",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.2",
|
|
4
4
|
"description": "TypeScript ORM with arrow-function query predicates",
|
|
5
5
|
"homepage": "https://kalyvasio.github.io/typhex/",
|
|
6
6
|
"repository": {
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"node": ">=18"
|
|
98
98
|
},
|
|
99
99
|
"dependencies": {
|
|
100
|
-
"acorn": "^8.
|
|
100
|
+
"acorn": "^8.17.0",
|
|
101
101
|
"better-sqlite3": "^12.10.0",
|
|
102
102
|
"pg": "^8.19.0"
|
|
103
103
|
},
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SQLite driver using better-sqlite3. Async wrapper.
|
|
3
|
-
*/
|
|
4
|
-
import type { Driver } from "../../driver/types.js";
|
|
5
|
-
export interface SqliteDriverOptions {
|
|
6
|
-
path: string;
|
|
7
|
-
}
|
|
8
|
-
export declare function createSqliteDriver(options: SqliteDriverOptions): Driver;
|
|
9
|
-
//# sourceMappingURL=driver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../src/dbs/sqlite/driver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,MAAM,EAKP,MAAM,uBAAuB,CAAC;AAuC/B,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAmCvE"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SQLite driver using better-sqlite3. Async wrapper.
|
|
3
|
-
*/
|
|
4
|
-
import { createRequire } from "node:module";
|
|
5
|
-
import { SqliteTrx } from "./trx.js";
|
|
6
|
-
import { sqliteDialect } from "./dialect.js";
|
|
7
|
-
import { isRecord } from "../../utils.js";
|
|
8
|
-
const require = createRequire(import.meta.url);
|
|
9
|
-
function toBindable(value) {
|
|
10
|
-
if (value === undefined || value === null)
|
|
11
|
-
return null;
|
|
12
|
-
if (value instanceof Date)
|
|
13
|
-
return value.toISOString();
|
|
14
|
-
if (typeof value === "boolean")
|
|
15
|
-
return value ? 1 : 0;
|
|
16
|
-
if (typeof value === "number" ||
|
|
17
|
-
typeof value === "string" ||
|
|
18
|
-
typeof value === "bigint" ||
|
|
19
|
-
Buffer.isBuffer(value))
|
|
20
|
-
return value;
|
|
21
|
-
if (isRecord(value))
|
|
22
|
-
return JSON.stringify(value);
|
|
23
|
-
return value;
|
|
24
|
-
}
|
|
25
|
-
function bindableParams(params) {
|
|
26
|
-
return params.map(toBindable);
|
|
27
|
-
}
|
|
28
|
-
function executeSql(db, sql, params) {
|
|
29
|
-
const stmt = db.prepare(sql);
|
|
30
|
-
if (stmt.reader) {
|
|
31
|
-
return { rows: stmt.all(...bindableParams(params)), changes: 0 };
|
|
32
|
-
}
|
|
33
|
-
const info = stmt.run(...bindableParams(params));
|
|
34
|
-
return { rows: [], lastID: info.lastInsertRowid, changes: info.changes };
|
|
35
|
-
}
|
|
36
|
-
export function createSqliteDriver(options) {
|
|
37
|
-
const Database = require("better-sqlite3");
|
|
38
|
-
const db = new Database(options.path);
|
|
39
|
-
function makeConnection() {
|
|
40
|
-
return {
|
|
41
|
-
dialect: sqliteDialect,
|
|
42
|
-
async execute(sql, params = []) {
|
|
43
|
-
return Promise.resolve(executeSql(db, sql, params));
|
|
44
|
-
},
|
|
45
|
-
async release() {
|
|
46
|
-
/* no-op for SQLite */
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
return {
|
|
51
|
-
dialect: sqliteDialect,
|
|
52
|
-
async execute(sql, params = []) {
|
|
53
|
-
return Promise.resolve(executeSql(db, sql, params));
|
|
54
|
-
},
|
|
55
|
-
connect() {
|
|
56
|
-
return Promise.resolve(makeConnection());
|
|
57
|
-
},
|
|
58
|
-
createTrx(conn, options) {
|
|
59
|
-
return new SqliteTrx(conn, options);
|
|
60
|
-
},
|
|
61
|
-
async close() {
|
|
62
|
-
db.close();
|
|
63
|
-
},
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=driver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/dbs/sqlite/driver.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
package/dist/schema/index.js
DELETED
package/dist/schema/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
package/dist/schema/types.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Schema and table definition types.
|
|
3
|
-
*/
|
|
4
|
-
export interface ColumnDef {
|
|
5
|
-
type: string;
|
|
6
|
-
primaryKey?: boolean;
|
|
7
|
-
autoIncrement?: boolean;
|
|
8
|
-
nullable?: boolean;
|
|
9
|
-
default?: string | number;
|
|
10
|
-
}
|
|
11
|
-
export type TableDefinition = Record<string, string | ColumnDef>;
|
|
12
|
-
/** Normalize to ColumnDef */
|
|
13
|
-
export declare function normalizeCol(def: string | ColumnDef): ColumnDef;
|
|
14
|
-
export declare function getColumnNames(def: TableDefinition): string[];
|
|
15
|
-
export declare function sqlType(def: TableDefinition, col: string): string;
|
|
16
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAMjE,6BAA6B;AAC7B,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAW/D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAE7D;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAajE"}
|
package/dist/schema/types.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Schema and table definition types.
|
|
3
|
-
*/
|
|
4
|
-
function stripForConstraintCheck(def) {
|
|
5
|
-
return def.replaceAll(/'[^']*'/g, "").replaceAll(/--[^\n]*/g, "");
|
|
6
|
-
}
|
|
7
|
-
/** Normalize to ColumnDef */
|
|
8
|
-
export function normalizeCol(def) {
|
|
9
|
-
if (typeof def === "string") {
|
|
10
|
-
const stripped = stripForConstraintCheck(def);
|
|
11
|
-
return {
|
|
12
|
-
type: def,
|
|
13
|
-
primaryKey: /\bprimary\s+key\b/i.test(stripped),
|
|
14
|
-
autoIncrement: /\bautoincrement\b/i.test(stripped),
|
|
15
|
-
nullable: !/\bnot\s+null\b/i.test(stripped),
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
return def;
|
|
19
|
-
}
|
|
20
|
-
export function getColumnNames(def) {
|
|
21
|
-
return Object.keys(def);
|
|
22
|
-
}
|
|
23
|
-
export function sqlType(def, col) {
|
|
24
|
-
const d = def[col];
|
|
25
|
-
const c = normalizeCol(d);
|
|
26
|
-
const lower = c.type.toLowerCase();
|
|
27
|
-
let out = c.type;
|
|
28
|
-
if (c.primaryKey && !lower.includes("primary key"))
|
|
29
|
-
out += " PRIMARY KEY";
|
|
30
|
-
if (c.autoIncrement && !lower.includes("autoincrement"))
|
|
31
|
-
out += " AUTOINCREMENT";
|
|
32
|
-
if (c.nullable === false && !lower.includes("not null"))
|
|
33
|
-
out += " NOT NULL";
|
|
34
|
-
if (c.default !== undefined)
|
|
35
|
-
out +=
|
|
36
|
-
" DEFAULT " +
|
|
37
|
-
(typeof c.default === "number" ? c.default : `'${String(c.default).replaceAll("'", "''")}'`);
|
|
38
|
-
return out;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=types.js.map
|
package/dist/schema/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,SAAS,uBAAuB,CAAC,GAAW;IAC1C,OAAO,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,YAAY,CAAC,GAAuB;IAClD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO;YACL,IAAI,EAAE,GAAG;YACT,UAAU,EAAE,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC/C,aAAa,EAAE,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClD,QAAQ,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC5C,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAoB;IACjD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAoB,EAAE,GAAW;IACvD,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;IACjB,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,GAAG,IAAI,cAAc,CAAC;IAC1E,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,GAAG,IAAI,gBAAgB,CAAC;IACjF,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,GAAG,IAAI,WAAW,CAAC;IAC5E,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;QACzB,GAAG;YACD,WAAW;gBACX,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACjG,OAAO,GAAG,CAAC;AACb,CAAC"}
|