neoorm 0.1.4 → 0.2.0
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/README.md +423 -27
- package/dist/bin/neoorm.js +117 -30
- package/dist/bin/neoorm.js.map +1 -1
- package/dist/codegen/diff-manifest.d.ts +7 -1
- package/dist/codegen/diff-manifest.d.ts.map +1 -1
- package/dist/codegen/diff-manifest.js +100 -4
- package/dist/codegen/diff-manifest.js.map +1 -1
- package/dist/codegen/emit-includes.d.ts.map +1 -1
- package/dist/codegen/emit-includes.js +7 -1
- package/dist/codegen/emit-includes.js.map +1 -1
- package/dist/codegen/emit-models.d.ts.map +1 -1
- package/dist/codegen/emit-models.js +28 -6
- package/dist/codegen/emit-models.js.map +1 -1
- package/dist/codegen/generate-summary.d.ts +21 -0
- package/dist/codegen/generate-summary.d.ts.map +1 -0
- package/dist/codegen/generate-summary.js +101 -0
- package/dist/codegen/generate-summary.js.map +1 -0
- package/dist/codegen/generate.d.ts +12 -3
- package/dist/codegen/generate.d.ts.map +1 -1
- package/dist/codegen/generate.js +36 -13
- package/dist/codegen/generate.js.map +1 -1
- package/dist/codegen/manifest-relations.d.ts.map +1 -1
- package/dist/codegen/manifest-relations.js +9 -2
- package/dist/codegen/manifest-relations.js.map +1 -1
- package/dist/codegen/schema-to-manifest.d.ts +4 -1
- package/dist/codegen/schema-to-manifest.d.ts.map +1 -1
- package/dist/codegen/schema-to-manifest.js +69 -12
- package/dist/codegen/schema-to-manifest.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/dialect/postgres.d.ts +3 -0
- package/dist/dialect/postgres.d.ts.map +1 -1
- package/dist/dialect/postgres.js +51 -1
- package/dist/dialect/postgres.js.map +1 -1
- package/dist/dialect/types.d.ts +13 -1
- package/dist/dialect/types.d.ts.map +1 -1
- package/dist/index.d.ts +11 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/init/scaffold.d.ts +19 -0
- package/dist/init/scaffold.d.ts.map +1 -0
- package/dist/init/scaffold.js +92 -0
- package/dist/init/scaffold.js.map +1 -0
- package/dist/init/templates.d.ts +4 -0
- package/dist/init/templates.d.ts.map +1 -0
- package/dist/init/templates.js +44 -0
- package/dist/init/templates.js.map +1 -0
- package/dist/introspect/queries.d.ts +5 -0
- package/dist/introspect/queries.d.ts.map +1 -1
- package/dist/introspect/queries.js +17 -0
- package/dist/introspect/queries.js.map +1 -1
- package/dist/introspect/to-manifest.d.ts.map +1 -1
- package/dist/introspect/to-manifest.js +58 -14
- package/dist/introspect/to-manifest.js.map +1 -1
- package/dist/migrate/runner.d.ts +26 -0
- package/dist/migrate/runner.d.ts.map +1 -1
- package/dist/migrate/runner.js +166 -7
- package/dist/migrate/runner.js.map +1 -1
- package/dist/plugins/builtin.d.ts +35 -2
- package/dist/plugins/builtin.d.ts.map +1 -1
- package/dist/plugins/builtin.js +318 -1
- package/dist/plugins/builtin.js.map +1 -1
- package/dist/plugins/json/operators.d.ts +3 -0
- package/dist/plugins/json/operators.d.ts.map +1 -0
- package/dist/plugins/json/operators.js +65 -0
- package/dist/plugins/json/operators.js.map +1 -0
- package/dist/plugins/registry.d.ts.map +1 -1
- package/dist/plugins/registry.js +3 -1
- package/dist/plugins/registry.js.map +1 -1
- package/dist/plugins/types.d.ts +1 -0
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/runtime/client.d.ts +33 -3
- package/dist/runtime/client.d.ts.map +1 -1
- package/dist/runtime/client.js +54 -36
- package/dist/runtime/client.js.map +1 -1
- package/dist/runtime/errors.d.ts +20 -0
- package/dist/runtime/errors.d.ts.map +1 -0
- package/dist/runtime/errors.js +68 -0
- package/dist/runtime/errors.js.map +1 -0
- package/dist/runtime/executor.d.ts +1 -0
- package/dist/runtime/executor.d.ts.map +1 -1
- package/dist/runtime/executor.js +27 -4
- package/dist/runtime/executor.js.map +1 -1
- package/dist/runtime/pg-error.d.ts +19 -0
- package/dist/runtime/pg-error.d.ts.map +1 -0
- package/dist/runtime/pg-error.js +110 -0
- package/dist/runtime/pg-error.js.map +1 -0
- package/dist/runtime/query/aggregate.d.ts +11 -0
- package/dist/runtime/query/aggregate.d.ts.map +1 -0
- package/dist/runtime/query/aggregate.js +44 -0
- package/dist/runtime/query/aggregate.js.map +1 -0
- package/dist/runtime/query/compile.d.ts +21 -6
- package/dist/runtime/query/compile.d.ts.map +1 -1
- package/dist/runtime/query/compile.js +110 -19
- package/dist/runtime/query/compile.js.map +1 -1
- package/dist/runtime/query/count.d.ts +3 -3
- package/dist/runtime/query/count.d.ts.map +1 -1
- package/dist/runtime/query/count.js +7 -4
- package/dist/runtime/query/count.js.map +1 -1
- package/dist/runtime/query/create.d.ts +12 -2
- package/dist/runtime/query/create.d.ts.map +1 -1
- package/dist/runtime/query/create.js +74 -111
- package/dist/runtime/query/create.js.map +1 -1
- package/dist/runtime/query/cursor-codec.d.ts +3 -0
- package/dist/runtime/query/cursor-codec.d.ts.map +1 -0
- package/dist/runtime/query/cursor-codec.js +27 -0
- package/dist/runtime/query/cursor-codec.js.map +1 -0
- package/dist/runtime/query/cursor.d.ts +22 -0
- package/dist/runtime/query/cursor.d.ts.map +1 -0
- package/dist/runtime/query/cursor.js +84 -0
- package/dist/runtime/query/cursor.js.map +1 -0
- package/dist/runtime/query/delete.d.ts +4 -4
- package/dist/runtime/query/delete.d.ts.map +1 -1
- package/dist/runtime/query/delete.js +18 -8
- package/dist/runtime/query/delete.js.map +1 -1
- package/dist/runtime/query/execute.d.ts +16 -0
- package/dist/runtime/query/execute.d.ts.map +1 -0
- package/dist/runtime/query/execute.js +74 -0
- package/dist/runtime/query/execute.js.map +1 -0
- package/dist/runtime/query/find.d.ts +7 -5
- package/dist/runtime/query/find.d.ts.map +1 -1
- package/dist/runtime/query/find.js +148 -29
- package/dist/runtime/query/find.js.map +1 -1
- package/dist/runtime/query/paginate.d.ts +17 -0
- package/dist/runtime/query/paginate.d.ts.map +1 -0
- package/dist/runtime/query/paginate.js +35 -0
- package/dist/runtime/query/paginate.js.map +1 -0
- package/dist/runtime/query/primary-key.d.ts +11 -1
- package/dist/runtime/query/primary-key.d.ts.map +1 -1
- package/dist/runtime/query/primary-key.js +55 -0
- package/dist/runtime/query/primary-key.js.map +1 -1
- package/dist/runtime/query/relation-writes.d.ts +25 -0
- package/dist/runtime/query/relation-writes.d.ts.map +1 -0
- package/dist/runtime/query/relation-writes.js +404 -0
- package/dist/runtime/query/relation-writes.js.map +1 -0
- package/dist/runtime/query/unique.d.ts.map +1 -1
- package/dist/runtime/query/unique.js +1 -5
- package/dist/runtime/query/unique.js.map +1 -1
- package/dist/runtime/query/update.d.ts +4 -4
- package/dist/runtime/query/update.d.ts.map +1 -1
- package/dist/runtime/query/update.js +97 -38
- package/dist/runtime/query/update.js.map +1 -1
- package/dist/runtime/query/updated-at.d.ts +6 -0
- package/dist/runtime/query/updated-at.d.ts.map +1 -0
- package/dist/runtime/query/updated-at.js +21 -0
- package/dist/runtime/query/updated-at.js.map +1 -0
- package/dist/runtime/query/upsert.d.ts +2 -2
- package/dist/runtime/query/upsert.d.ts.map +1 -1
- package/dist/runtime/query/upsert.js +12 -8
- package/dist/runtime/query/upsert.js.map +1 -1
- package/dist/runtime/types.d.ts +21 -11
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/schema/column-where.d.ts +30 -14
- package/dist/schema/column-where.d.ts.map +1 -1
- package/dist/schema/column.d.ts +6 -2
- package/dist/schema/column.d.ts.map +1 -1
- package/dist/schema/column.js +7 -1
- package/dist/schema/column.js.map +1 -1
- package/dist/schema/index.d.ts +4 -4
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +1 -1
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/nested-relation-types.d.ts +61 -0
- package/dist/schema/nested-relation-types.d.ts.map +1 -0
- package/dist/schema/nested-relation-types.js +2 -0
- package/dist/schema/nested-relation-types.js.map +1 -0
- package/dist/schema/relation-types.d.ts +164 -22
- package/dist/schema/relation-types.d.ts.map +1 -1
- package/dist/schema/types.d.ts +83 -37
- package/dist/schema/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/runtime/client.d.ts
CHANGED
|
@@ -3,12 +3,17 @@ import type { Manifest } from "../dialect/types.js";
|
|
|
3
3
|
import type { TableDef } from "../schema/table.js";
|
|
4
4
|
import type { WithInput } from "./query/find.js";
|
|
5
5
|
import type { TypedNeoOrmClient, DefaultWithMap, DefaultRowPayloadMap } from "./types.js";
|
|
6
|
+
export type NeoOrmClientOptions = {
|
|
7
|
+
connectionString?: string;
|
|
8
|
+
migrationsDir?: string;
|
|
9
|
+
};
|
|
6
10
|
export type TableRepository = {
|
|
7
11
|
findMany(args?: {
|
|
8
12
|
where?: Record<string, unknown>;
|
|
9
13
|
orderBy?: Record<string, string>;
|
|
10
14
|
limit?: number;
|
|
11
15
|
offset?: number;
|
|
16
|
+
distinct?: readonly string[] | Record<string, boolean | undefined>;
|
|
12
17
|
with?: Record<string, WithInput>;
|
|
13
18
|
}): Promise<Record<string, unknown>[]>;
|
|
14
19
|
findFirst(args?: {
|
|
@@ -27,6 +32,12 @@ export type TableRepository = {
|
|
|
27
32
|
data: Record<string, unknown>;
|
|
28
33
|
with?: Record<string, WithInput>;
|
|
29
34
|
}): Promise<Record<string, unknown>>;
|
|
35
|
+
createMany(args: {
|
|
36
|
+
data: Record<string, unknown>[];
|
|
37
|
+
}): Promise<number>;
|
|
38
|
+
createManyAndReturn(args: {
|
|
39
|
+
data: Record<string, unknown>[];
|
|
40
|
+
}): Promise<Record<string, unknown>[]>;
|
|
30
41
|
upsert(args: {
|
|
31
42
|
where: Record<string, unknown>;
|
|
32
43
|
create: Record<string, unknown>;
|
|
@@ -56,7 +67,26 @@ export type TableRepository = {
|
|
|
56
67
|
count(args?: {
|
|
57
68
|
where?: Record<string, unknown>;
|
|
58
69
|
}): Promise<number>;
|
|
70
|
+
aggregate(args: {
|
|
71
|
+
where?: Record<string, unknown>;
|
|
72
|
+
_count?: true;
|
|
73
|
+
_avg?: Record<string, true>;
|
|
74
|
+
_sum?: Record<string, true>;
|
|
75
|
+
_min?: Record<string, true>;
|
|
76
|
+
_max?: Record<string, true>;
|
|
77
|
+
}): Promise<Record<string, unknown>>;
|
|
59
78
|
deleteById(id: string): Promise<Record<string, unknown> | null>;
|
|
79
|
+
paginate(args: {
|
|
80
|
+
where?: Record<string, unknown>;
|
|
81
|
+
orderBy: Record<string, string>;
|
|
82
|
+
take: number;
|
|
83
|
+
after?: Record<string, unknown>;
|
|
84
|
+
with?: Record<string, WithInput>;
|
|
85
|
+
}): Promise<{
|
|
86
|
+
items: Record<string, unknown>[];
|
|
87
|
+
nextCursor: Record<string, unknown> | null;
|
|
88
|
+
hasMore: boolean;
|
|
89
|
+
}>;
|
|
60
90
|
};
|
|
61
91
|
/** @deprecated Use TypedNeoOrmClient with createNeoOrmClient generic instead */
|
|
62
92
|
export interface NeoOrmClient {
|
|
@@ -68,7 +98,7 @@ export interface NeoOrmClient {
|
|
|
68
98
|
$disconnect(): Promise<void>;
|
|
69
99
|
[tableAccessor: string]: TableRepository | NeoOrmClient["sql"] | NeoOrmClient["execute"] | NeoOrmClient["$disconnect"];
|
|
70
100
|
}
|
|
71
|
-
export declare function createNeoOrmClient<TTables extends Record<string, TableDef>, TIncludes extends Record<keyof TTables & string, unknown> = DefaultWithMap<TTables>, TRowPayloads extends Record<keyof TTables & string, Record<string, unknown>> = DefaultRowPayloadMap<TTables>>(manifest: Manifest,
|
|
72
|
-
export declare function createNeoOrmClientFromPool<TTables extends Record<string, TableDef>, TIncludes extends Record<keyof TTables & string, unknown> = DefaultWithMap<TTables>, TRowPayloads extends Record<keyof TTables & string, Record<string, unknown>> = DefaultRowPayloadMap<TTables>>(manifest: Manifest, pool: Pool): TypedNeoOrmClient<TTables, TIncludes, TRowPayloads>;
|
|
73
|
-
export type { TypedNeoOrmClient, TypedTableRepository, DefaultWithMap, DefaultRowPayloadMap, TransactionClient, TransactionOptions, TransactionIsolationLevel, } from "./types.js";
|
|
101
|
+
export declare function createNeoOrmClient<TTables extends Record<string, TableDef>, TIncludes extends Record<keyof TTables & string, unknown> = DefaultWithMap<TTables>, TRowPayloads extends Record<keyof TTables & string, Record<string, unknown>> = DefaultRowPayloadMap<TTables>>(manifest: Manifest, connectionStringOrOptions?: string | NeoOrmClientOptions): TypedNeoOrmClient<TTables, TIncludes, TRowPayloads>;
|
|
102
|
+
export declare function createNeoOrmClientFromPool<TTables extends Record<string, TableDef>, TIncludes extends Record<keyof TTables & string, unknown> = DefaultWithMap<TTables>, TRowPayloads extends Record<keyof TTables & string, Record<string, unknown>> = DefaultRowPayloadMap<TTables>>(manifest: Manifest, pool: Pool, options?: Pick<NeoOrmClientOptions, "migrationsDir">): TypedNeoOrmClient<TTables, TIncludes, TRowPayloads>;
|
|
103
|
+
export type { TypedNeoOrmClient, TypedTableRepository, DefaultWithMap, DefaultRowPayloadMap, TransactionClient, TransactionOptions, TransactionIsolationLevel, PaginateCursor, } from "./types.js";
|
|
74
104
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/client.js
CHANGED
|
@@ -3,36 +3,43 @@ import { ensurePlugins } from "../plugins/ensure-plugins.js";
|
|
|
3
3
|
import { createExecutor, compileQuery } from "./executor.js";
|
|
4
4
|
import { findMany, findFirst, findById } from "./query/find.js";
|
|
5
5
|
import { countRecords, findUnique } from "./query/count.js";
|
|
6
|
-
import { createRecord } from "./query/create.js";
|
|
6
|
+
import { createRecord, createManyRecords, createManyAndReturnRecords } from "./query/create.js";
|
|
7
|
+
import { aggregateRecords } from "./query/aggregate.js";
|
|
7
8
|
import { upsertRecord } from "./query/upsert.js";
|
|
8
9
|
import { updateRecord, updateManyRecords, updateById } from "./query/update.js";
|
|
9
10
|
import { deleteRecord, deleteManyRecords, deleteById } from "./query/delete.js";
|
|
10
|
-
|
|
11
|
+
import { paginateRecords } from "./query/paginate.js";
|
|
12
|
+
import { runQuery } from "./query/execute.js";
|
|
13
|
+
function createTableRepository(executor, runtime, accessor) {
|
|
11
14
|
return {
|
|
12
|
-
findMany: (args) => findMany(executor,
|
|
13
|
-
findFirst: (args) => findFirst(executor,
|
|
14
|
-
findUnique: (args) => findUnique(executor,
|
|
15
|
-
findById: (id, args) => findById(executor,
|
|
16
|
-
create: (args) => createRecord(executor,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
15
|
+
findMany: (args) => findMany(executor, runtime, accessor, args),
|
|
16
|
+
findFirst: (args) => findFirst(executor, runtime, accessor, args),
|
|
17
|
+
findUnique: (args) => findUnique(executor, runtime, accessor, args),
|
|
18
|
+
findById: (id, args) => findById(executor, runtime, accessor, id, args),
|
|
19
|
+
create: (args) => createRecord(executor, runtime, accessor, args),
|
|
20
|
+
createMany: (args) => createManyRecords(executor, runtime, accessor, args),
|
|
21
|
+
createManyAndReturn: (args) => createManyAndReturnRecords(executor, runtime, accessor, args),
|
|
22
|
+
upsert: (args) => upsertRecord(executor, runtime, accessor, args),
|
|
23
|
+
update: (args) => updateRecord(executor, runtime, accessor, args),
|
|
24
|
+
updateMany: (args) => updateManyRecords(executor, runtime, accessor, args),
|
|
25
|
+
updateById: (id, args) => updateById(executor, runtime, accessor, id, args),
|
|
26
|
+
delete: (args) => deleteRecord(executor, runtime, accessor, args),
|
|
27
|
+
deleteMany: (args) => deleteManyRecords(executor, runtime, accessor, args),
|
|
28
|
+
count: (args) => countRecords(executor, runtime, accessor, args),
|
|
29
|
+
aggregate: (args) => aggregateRecords(executor, runtime, accessor, args),
|
|
30
|
+
deleteById: (id) => deleteById(executor, runtime, accessor, id),
|
|
31
|
+
paginate: (args) => paginateRecords(executor, runtime, accessor, args),
|
|
25
32
|
};
|
|
26
33
|
}
|
|
27
|
-
function buildClient(executor,
|
|
34
|
+
function buildClient(executor, runtime, disconnect, options) {
|
|
28
35
|
const transactional = options?.transactional ?? false;
|
|
29
36
|
const client = {
|
|
30
37
|
sql(strings, ...values) {
|
|
31
38
|
const { text, params } = compileQuery(strings, values);
|
|
32
|
-
return executor
|
|
39
|
+
return runQuery(executor, runtime, { operation: "raw" }, text, params);
|
|
33
40
|
},
|
|
34
41
|
execute(query) {
|
|
35
|
-
return executor
|
|
42
|
+
return runQuery(executor, runtime, { operation: "raw" }, query.text, query.params);
|
|
36
43
|
},
|
|
37
44
|
$disconnect: transactional
|
|
38
45
|
? async () => {
|
|
@@ -40,46 +47,57 @@ function buildClient(executor, manifest, disconnect, options) {
|
|
|
40
47
|
}
|
|
41
48
|
: disconnect,
|
|
42
49
|
$transaction(fnOrSteps, txOptions) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (typeof fnOrSteps === "function") {
|
|
47
|
-
return executor.transaction(async (txExecutor) => {
|
|
48
|
-
const tx = buildClient(txExecutor, manifest, disconnect, { transactional: true });
|
|
50
|
+
const runWithExecutor = async (txExecutor) => {
|
|
51
|
+
const tx = buildClient(txExecutor, runtime, disconnect, { transactional: true });
|
|
52
|
+
if (typeof fnOrSteps === "function") {
|
|
49
53
|
return fnOrSteps(tx);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return executor.transaction(async (txExecutor) => {
|
|
53
|
-
const tx = buildClient(txExecutor, manifest, disconnect, { transactional: true });
|
|
54
|
+
}
|
|
54
55
|
const results = [];
|
|
55
56
|
for (const step of fnOrSteps) {
|
|
56
57
|
results.push(await step(tx));
|
|
57
58
|
}
|
|
58
59
|
return results;
|
|
59
|
-
}
|
|
60
|
+
};
|
|
61
|
+
if (transactional) {
|
|
62
|
+
return executor.transaction(runWithExecutor);
|
|
63
|
+
}
|
|
64
|
+
return executor.transaction(runWithExecutor, txOptions);
|
|
60
65
|
},
|
|
61
66
|
};
|
|
62
|
-
for (const accessor of Object.keys(manifest.tables)) {
|
|
63
|
-
client[accessor] = createTableRepository(executor,
|
|
67
|
+
for (const accessor of Object.keys(runtime.manifest.tables)) {
|
|
68
|
+
client[accessor] = createTableRepository(executor, runtime, accessor);
|
|
64
69
|
}
|
|
65
70
|
return client;
|
|
66
71
|
}
|
|
67
|
-
export function createNeoOrmClient(manifest,
|
|
72
|
+
export function createNeoOrmClient(manifest, connectionStringOrOptions) {
|
|
68
73
|
ensurePlugins(manifest);
|
|
69
|
-
const
|
|
74
|
+
const options = typeof connectionStringOrOptions === "string"
|
|
75
|
+
? { connectionString: connectionStringOrOptions }
|
|
76
|
+
: (connectionStringOrOptions ?? {});
|
|
77
|
+
const url = options.connectionString ?? process.env["DATABASE_URL"];
|
|
70
78
|
if (!url) {
|
|
71
79
|
throw new Error("DATABASE_URL is required");
|
|
72
80
|
}
|
|
73
81
|
const pool = new Pool({ connectionString: url });
|
|
74
82
|
const executor = createExecutor(pool);
|
|
75
|
-
|
|
83
|
+
const runtime = {
|
|
84
|
+
manifest,
|
|
85
|
+
pool,
|
|
86
|
+
...(options.migrationsDir !== undefined ? { migrationsDir: options.migrationsDir } : {}),
|
|
87
|
+
};
|
|
88
|
+
return buildClient(executor, runtime, async () => {
|
|
76
89
|
await pool.end();
|
|
77
90
|
});
|
|
78
91
|
}
|
|
79
|
-
export function createNeoOrmClientFromPool(manifest, pool) {
|
|
92
|
+
export function createNeoOrmClientFromPool(manifest, pool, options) {
|
|
80
93
|
ensurePlugins(manifest);
|
|
81
94
|
const executor = createExecutor(pool);
|
|
82
|
-
|
|
95
|
+
const runtime = {
|
|
96
|
+
manifest,
|
|
97
|
+
pool,
|
|
98
|
+
...(options?.migrationsDir !== undefined ? { migrationsDir: options.migrationsDir } : {}),
|
|
99
|
+
};
|
|
100
|
+
return buildClient(executor, runtime, async () => {
|
|
83
101
|
await pool.end();
|
|
84
102
|
});
|
|
85
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAiB,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type QueryOperation = "select" | "insert" | "update" | "delete" | "upsert" | "raw";
|
|
2
|
+
export type QueryErrorContext = {
|
|
3
|
+
operation: QueryOperation;
|
|
4
|
+
tableAccessor?: string;
|
|
5
|
+
tableSqlName?: string;
|
|
6
|
+
columnTsName?: string;
|
|
7
|
+
columnSqlName?: string;
|
|
8
|
+
sql: string;
|
|
9
|
+
pgCode?: string;
|
|
10
|
+
constraint?: string;
|
|
11
|
+
detail?: string;
|
|
12
|
+
migrationHint?: string;
|
|
13
|
+
};
|
|
14
|
+
export declare function formatQueryError(context: QueryErrorContext): string;
|
|
15
|
+
export declare class NeoOrmQueryError extends Error {
|
|
16
|
+
readonly context: QueryErrorContext;
|
|
17
|
+
readonly cause: unknown;
|
|
18
|
+
constructor(context: QueryErrorContext, cause?: unknown);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/runtime/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,KAAK,CAAC;AAEV,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,cAAc,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAqBF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA4CnE;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,SAAkB,KAAK,EAAE,OAAO,CAAC;gBAErB,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,OAAO;CAMxD"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
const OPERATION_LABEL = {
|
|
2
|
+
select: "Select",
|
|
3
|
+
insert: "Insert",
|
|
4
|
+
update: "Update",
|
|
5
|
+
delete: "Delete",
|
|
6
|
+
upsert: "Upsert",
|
|
7
|
+
raw: "Query",
|
|
8
|
+
};
|
|
9
|
+
function operationTarget(context) {
|
|
10
|
+
if (context.tableAccessor) {
|
|
11
|
+
return `"${context.tableAccessor}"`;
|
|
12
|
+
}
|
|
13
|
+
if (context.tableSqlName) {
|
|
14
|
+
return `"${context.tableSqlName}"`;
|
|
15
|
+
}
|
|
16
|
+
return "query";
|
|
17
|
+
}
|
|
18
|
+
export function formatQueryError(context) {
|
|
19
|
+
const label = OPERATION_LABEL[context.operation];
|
|
20
|
+
const target = operationTarget(context);
|
|
21
|
+
const reason = context.detail ?? "database error";
|
|
22
|
+
const lines = [`${label} on ${target} failed: ${reason}`];
|
|
23
|
+
if (context.tableAccessor || context.tableSqlName) {
|
|
24
|
+
const parts = [];
|
|
25
|
+
if (context.tableAccessor)
|
|
26
|
+
parts.push(`accessor: ${context.tableAccessor}`);
|
|
27
|
+
if (context.tableSqlName)
|
|
28
|
+
parts.push(`SQL: "${context.tableSqlName}"`);
|
|
29
|
+
lines.push(` Table: ${parts.join(", ")}`);
|
|
30
|
+
}
|
|
31
|
+
if (context.columnTsName || context.columnSqlName) {
|
|
32
|
+
if (context.columnTsName &&
|
|
33
|
+
context.columnSqlName &&
|
|
34
|
+
context.columnTsName !== context.columnSqlName) {
|
|
35
|
+
lines.push(` Column: ${context.columnTsName} (SQL: "${context.columnSqlName}")`);
|
|
36
|
+
}
|
|
37
|
+
else if (context.columnTsName) {
|
|
38
|
+
lines.push(` Column: ${context.columnTsName}`);
|
|
39
|
+
}
|
|
40
|
+
else if (context.columnSqlName) {
|
|
41
|
+
lines.push(` Column: SQL: "${context.columnSqlName}"`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (context.constraint) {
|
|
45
|
+
lines.push(` Constraint: ${context.constraint}`);
|
|
46
|
+
}
|
|
47
|
+
if (context.pgCode) {
|
|
48
|
+
lines.push(` PostgreSQL code: ${context.pgCode}`);
|
|
49
|
+
}
|
|
50
|
+
if (context.sql) {
|
|
51
|
+
lines.push(` SQL: ${context.sql}`);
|
|
52
|
+
}
|
|
53
|
+
if (context.migrationHint) {
|
|
54
|
+
lines.push(` Migration: ${context.migrationHint}`);
|
|
55
|
+
}
|
|
56
|
+
return lines.join("\n");
|
|
57
|
+
}
|
|
58
|
+
export class NeoOrmQueryError extends Error {
|
|
59
|
+
context;
|
|
60
|
+
cause;
|
|
61
|
+
constructor(context, cause) {
|
|
62
|
+
super(formatQueryError(context));
|
|
63
|
+
this.name = "NeoOrmQueryError";
|
|
64
|
+
this.context = context;
|
|
65
|
+
this.cause = cause;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/runtime/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export type Executor = {
|
|
|
8
8
|
transaction<T>(fn: (tx: Executor) => Promise<T>, options?: TransactionOptions): Promise<T>;
|
|
9
9
|
};
|
|
10
10
|
export declare function buildBeginSql(options?: TransactionOptions): string;
|
|
11
|
+
export declare function buildSavepointName(id: number): string;
|
|
11
12
|
export declare function createExecutor(pool: Pool): Executor;
|
|
12
13
|
export declare function compileQuery(parts: TemplateStringsArray, values: unknown[]): CompiledQuery;
|
|
13
14
|
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,IAAI,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAChB,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACrB,WAAW,CAAC,CAAC,EACX,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,EAChC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,CAAC,CAAC,CAAC;CACf,CAAC;AAYF,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAYlE;
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,IAAI,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAChB,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACrB,WAAW,CAAC,CAAC,EACX,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,EAChC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,CAAC,CAAC,CAAC;CACf,CAAC;AAYF,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAYlE;AAWD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAErD;AAUD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,CAuCnD;AAgDD,wBAAgB,YAAY,CAAC,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAa1F"}
|
package/dist/runtime/executor.js
CHANGED
|
@@ -17,6 +17,14 @@ export function buildBeginSql(options) {
|
|
|
17
17
|
function rowsFromResult(result) {
|
|
18
18
|
return result.rows;
|
|
19
19
|
}
|
|
20
|
+
export function buildSavepointName(id) {
|
|
21
|
+
return `neoorm_sp_${id}`;
|
|
22
|
+
}
|
|
23
|
+
function assertNoSavepointOptions(options) {
|
|
24
|
+
if (options?.readOnly !== undefined || options?.isolationLevel !== undefined) {
|
|
25
|
+
throw new Error("Transaction options (readOnly, isolationLevel) cannot be used with nested transactions");
|
|
26
|
+
}
|
|
27
|
+
}
|
|
20
28
|
export function createExecutor(pool) {
|
|
21
29
|
return {
|
|
22
30
|
async query(text, params = []) {
|
|
@@ -32,7 +40,8 @@ export function createExecutor(pool) {
|
|
|
32
40
|
const client = await pool.connect();
|
|
33
41
|
try {
|
|
34
42
|
await client.query(buildBeginSql(options));
|
|
35
|
-
const
|
|
43
|
+
const state = { client, savepointCounter: 0 };
|
|
44
|
+
const tx = createClientExecutor(state);
|
|
36
45
|
const result = await fn(tx);
|
|
37
46
|
await client.query("COMMIT");
|
|
38
47
|
return result;
|
|
@@ -47,7 +56,8 @@ export function createExecutor(pool) {
|
|
|
47
56
|
},
|
|
48
57
|
};
|
|
49
58
|
}
|
|
50
|
-
function createClientExecutor(
|
|
59
|
+
function createClientExecutor(state) {
|
|
60
|
+
const { client } = state;
|
|
51
61
|
return {
|
|
52
62
|
inTransaction: true,
|
|
53
63
|
async query(text, params = []) {
|
|
@@ -59,8 +69,21 @@ function createClientExecutor(client) {
|
|
|
59
69
|
const rows = rowsFromResult(result);
|
|
60
70
|
return rows[0] ?? null;
|
|
61
71
|
},
|
|
62
|
-
transaction(
|
|
63
|
-
|
|
72
|
+
async transaction(fn, options) {
|
|
73
|
+
assertNoSavepointOptions(options);
|
|
74
|
+
const savepointId = ++state.savepointCounter;
|
|
75
|
+
const savepointName = buildSavepointName(savepointId);
|
|
76
|
+
await client.query(`SAVEPOINT ${savepointName}`);
|
|
77
|
+
try {
|
|
78
|
+
const result = await fn(createClientExecutor(state));
|
|
79
|
+
await client.query(`RELEASE SAVEPOINT ${savepointName}`);
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
await client.query(`ROLLBACK TO SAVEPOINT ${savepointName}`);
|
|
84
|
+
await client.query(`RELEASE SAVEPOINT ${savepointName}`);
|
|
85
|
+
throw err;
|
|
86
|
+
}
|
|
64
87
|
},
|
|
65
88
|
};
|
|
66
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"AAoBA,MAAM,iBAAiB,GAGnB;IACF,eAAe,EAAE,kBAAkB;IACnC,aAAa,EAAE,gBAAgB;IAC/B,cAAc,EAAE,iBAAiB;IACjC,YAAY,EAAE,cAAc;CAC7B,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,OAA4B;IACxD,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;IAExB,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,mBAAmB,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,cAAc,CAAC,MAAmB;IACzC,OAAO,MAAM,CAAC,IAAiC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAU;IACvC,OAAO;QACL,KAAK,CAAC,KAAK,CACT,IAAY,EACZ,SAAoB,EAAE;YAEtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9C,OAAO,cAAc,CAAC,MAAM,CAAQ,CAAC;QACvC,CAAC;QAED,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,SAAoB,EAAE;YAEtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YACpC,OAAQ,IAAI,CAAC,CAAC,CAAmB,IAAI,IAAI,CAAC;QAC5C,CAAC;QAED,KAAK,CAAC,WAAW,CACf,EAAgC,EAChC,OAA4B;YAE5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3C,MAAM,EAAE,GAAG,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Manifest } from "../dialect/types.js";
|
|
2
|
+
import type { QueryErrorContext, QueryOperation } from "./errors.js";
|
|
3
|
+
export type PgErrorLike = {
|
|
4
|
+
code?: string;
|
|
5
|
+
message?: string;
|
|
6
|
+
detail?: string;
|
|
7
|
+
table?: string;
|
|
8
|
+
column?: string;
|
|
9
|
+
constraint?: string;
|
|
10
|
+
schema?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function isPgError(err: unknown): err is PgErrorLike;
|
|
13
|
+
export declare function truncateSql(sql: string, maxLen?: number): string;
|
|
14
|
+
export declare function isSchemaDriftPgCode(code: string | undefined): boolean;
|
|
15
|
+
export declare function enrichPgError(err: PgErrorLike, manifest: Manifest, base: Pick<QueryErrorContext, "operation" | "sql"> & {
|
|
16
|
+
tableAccessor?: string;
|
|
17
|
+
}): QueryErrorContext;
|
|
18
|
+
export declare function emptyReturningContext(operation: Extract<QueryOperation, "insert" | "upsert">, manifest: Manifest, tableAccessor: string, sql: string): QueryErrorContext;
|
|
19
|
+
//# sourceMappingURL=pg-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pg-error.d.ts","sourceRoot":"","sources":["../../src/runtime/pg-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAO1D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAM,GAAG,MAAM,CAM7D;AAyDD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAErE;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,KAAK,CAAC,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9E,iBAAiB,CAwCnB;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,CAAC,EACvD,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,GACV,iBAAiB,CAYnB"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
export function isPgError(err) {
|
|
2
|
+
return (typeof err === "object" &&
|
|
3
|
+
err !== null &&
|
|
4
|
+
"code" in err &&
|
|
5
|
+
typeof err.code === "string");
|
|
6
|
+
}
|
|
7
|
+
export function truncateSql(sql, maxLen = 240) {
|
|
8
|
+
const collapsed = sql.replace(/\s+/g, " ").trim();
|
|
9
|
+
if (collapsed.length <= maxLen) {
|
|
10
|
+
return collapsed;
|
|
11
|
+
}
|
|
12
|
+
return `${collapsed.slice(0, maxLen - 1)}…`;
|
|
13
|
+
}
|
|
14
|
+
function findTableBySqlName(manifest, sqlName) {
|
|
15
|
+
if (!sqlName)
|
|
16
|
+
return undefined;
|
|
17
|
+
return Object.values(manifest.tables).find((table) => table.sqlName === sqlName);
|
|
18
|
+
}
|
|
19
|
+
function findTableByAccessor(manifest, accessor) {
|
|
20
|
+
if (!accessor)
|
|
21
|
+
return undefined;
|
|
22
|
+
return manifest.tables[accessor];
|
|
23
|
+
}
|
|
24
|
+
function resolveColumnNames(table, sqlColumn) {
|
|
25
|
+
if (!sqlColumn) {
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
28
|
+
const col = table?.columns.find((c) => c.sqlName === sqlColumn);
|
|
29
|
+
return {
|
|
30
|
+
columnSqlName: sqlColumn,
|
|
31
|
+
columnTsName: col?.tsName ?? sqlColumn,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function headlineForPgCode(err) {
|
|
35
|
+
switch (err.code) {
|
|
36
|
+
case "23502":
|
|
37
|
+
return err.column
|
|
38
|
+
? `null value in column "${err.column}" violates not-null constraint`
|
|
39
|
+
: "null value violates not-null constraint";
|
|
40
|
+
case "23505":
|
|
41
|
+
return err.constraint
|
|
42
|
+
? `duplicate key value violates unique constraint "${err.constraint}"`
|
|
43
|
+
: "duplicate key value violates unique constraint";
|
|
44
|
+
case "23503":
|
|
45
|
+
return err.constraint
|
|
46
|
+
? `foreign key violation on constraint "${err.constraint}"`
|
|
47
|
+
: "foreign key violation";
|
|
48
|
+
case "23514":
|
|
49
|
+
return err.constraint
|
|
50
|
+
? `check constraint "${err.constraint}" violated`
|
|
51
|
+
: "check constraint violated";
|
|
52
|
+
case "42P01":
|
|
53
|
+
return err.message ?? "relation does not exist";
|
|
54
|
+
case "42703":
|
|
55
|
+
return err.column
|
|
56
|
+
? `column "${err.column}" does not exist`
|
|
57
|
+
: (err.message ?? "column does not exist");
|
|
58
|
+
default:
|
|
59
|
+
return err.message ?? "database error";
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const SCHEMA_DRIFT_CODES = new Set(["42P01", "42703", "23503"]);
|
|
63
|
+
export function isSchemaDriftPgCode(code) {
|
|
64
|
+
return code !== undefined && SCHEMA_DRIFT_CODES.has(code);
|
|
65
|
+
}
|
|
66
|
+
export function enrichPgError(err, manifest, base) {
|
|
67
|
+
const table = findTableByAccessor(manifest, base.tableAccessor) ??
|
|
68
|
+
findTableBySqlName(manifest, err.table);
|
|
69
|
+
const { columnTsName, columnSqlName } = resolveColumnNames(table, err.column);
|
|
70
|
+
const context = {
|
|
71
|
+
operation: base.operation,
|
|
72
|
+
sql: truncateSql(base.sql),
|
|
73
|
+
detail: err.detail ? `${headlineForPgCode(err)} (${err.detail})` : headlineForPgCode(err),
|
|
74
|
+
};
|
|
75
|
+
const tableAccessor = base.tableAccessor ?? table?.accessor;
|
|
76
|
+
if (tableAccessor !== undefined) {
|
|
77
|
+
context.tableAccessor = tableAccessor;
|
|
78
|
+
}
|
|
79
|
+
const tableSqlName = table?.sqlName ?? err.table;
|
|
80
|
+
if (tableSqlName !== undefined) {
|
|
81
|
+
context.tableSqlName = tableSqlName;
|
|
82
|
+
}
|
|
83
|
+
if (columnTsName !== undefined) {
|
|
84
|
+
context.columnTsName = columnTsName;
|
|
85
|
+
}
|
|
86
|
+
if (columnSqlName !== undefined) {
|
|
87
|
+
context.columnSqlName = columnSqlName;
|
|
88
|
+
}
|
|
89
|
+
if (err.code !== undefined) {
|
|
90
|
+
context.pgCode = err.code;
|
|
91
|
+
}
|
|
92
|
+
if (err.constraint !== undefined) {
|
|
93
|
+
context.constraint = err.constraint;
|
|
94
|
+
}
|
|
95
|
+
return context;
|
|
96
|
+
}
|
|
97
|
+
export function emptyReturningContext(operation, manifest, tableAccessor, sql) {
|
|
98
|
+
const table = manifest.tables[tableAccessor];
|
|
99
|
+
const context = {
|
|
100
|
+
operation,
|
|
101
|
+
tableAccessor,
|
|
102
|
+
sql: truncateSql(sql),
|
|
103
|
+
detail: `${operation === "insert" ? "INSERT" : "UPSERT"} … RETURNING returned no row`,
|
|
104
|
+
};
|
|
105
|
+
if (table?.sqlName !== undefined) {
|
|
106
|
+
context.tableSqlName = table.sqlName;
|
|
107
|
+
}
|
|
108
|
+
return context;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=pg-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pg-error.js","sourceRoot":"","sources":["../../src/runtime/pg-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Executor } from "../executor.js";
|
|
2
|
+
import { type QueryRuntime } from "./execute.js";
|
|
3
|
+
export declare function aggregateRecords(executor: Executor, runtime: QueryRuntime, tableAccessor: string, args: {
|
|
4
|
+
where?: Record<string, unknown>;
|
|
5
|
+
_count?: true;
|
|
6
|
+
_avg?: Record<string, true>;
|
|
7
|
+
_sum?: Record<string, true>;
|
|
8
|
+
_min?: Record<string, true>;
|
|
9
|
+
_max?: Record<string, true>;
|
|
10
|
+
}): Promise<Record<string, unknown>>;
|
|
11
|
+
//# sourceMappingURL=aggregate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO/C,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,cAAc,CAAC;AA2B9D,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE;IACJ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC7B,GACA,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA4BlC"}
|