neoorm 0.7.3 → 0.8.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 +4 -4
- package/dist/bin/neoorm.js +36 -27
- package/dist/bin/neoorm.js.map +1 -1
- package/dist/codegen/diff-manifest.d.ts.map +1 -1
- package/dist/codegen/diff-manifest.js +55 -30
- 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 +6 -6
- 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 +14 -14
- package/dist/codegen/emit-models.js.map +1 -1
- package/dist/codegen/generate.d.ts +11 -1
- package/dist/codegen/generate.d.ts.map +1 -1
- package/dist/codegen/generate.js +30 -11
- package/dist/codegen/generate.js.map +1 -1
- package/dist/codegen/manifest-relations.d.ts +2 -1
- package/dist/codegen/manifest-relations.d.ts.map +1 -1
- package/dist/codegen/manifest-relations.js +4 -27
- package/dist/codegen/manifest-relations.js.map +1 -1
- package/dist/codegen/schema-to-manifest.d.ts +3 -2
- package/dist/codegen/schema-to-manifest.d.ts.map +1 -1
- package/dist/codegen/schema-to-manifest.js +9 -38
- package/dist/codegen/schema-to-manifest.js.map +1 -1
- package/dist/config.d.ts +6 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +21 -13
- package/dist/config.js.map +1 -1
- package/dist/datasource-provider.d.ts +7 -0
- package/dist/datasource-provider.d.ts.map +1 -0
- package/dist/datasource-provider.js +11 -0
- package/dist/datasource-provider.js.map +1 -0
- package/dist/dialect/fk.d.ts.map +1 -1
- package/dist/dialect/fk.js +4 -2
- package/dist/dialect/fk.js.map +1 -1
- package/dist/dialect/postgres.d.ts.map +1 -1
- package/dist/dialect/postgres.js +11 -15
- package/dist/dialect/postgres.js.map +1 -1
- package/dist/dialect/shared.d.ts +3 -1
- package/dist/dialect/shared.d.ts.map +1 -1
- package/dist/dialect/shared.js +4 -0
- package/dist/dialect/shared.js.map +1 -1
- package/dist/dialect/sqlite.d.ts.map +1 -1
- package/dist/dialect/sqlite.js +15 -18
- package/dist/dialect/sqlite.js.map +1 -1
- package/dist/dialect/sqlite.test.d.ts +2 -0
- package/dist/dialect/sqlite.test.d.ts.map +1 -0
- package/dist/dialect/sqlite.test.js +122 -0
- package/dist/dialect/sqlite.test.js.map +1 -0
- package/dist/dialect/types.d.ts +2 -1
- package/dist/dialect/types.d.ts.map +1 -1
- package/dist/docs/render.d.ts.map +1 -1
- package/dist/docs/render.js.map +1 -1
- package/dist/docs/search.d.ts.map +1 -1
- package/dist/docs/search.js +4 -4
- package/dist/docs/search.js.map +1 -1
- package/dist/docs/server.d.ts.map +1 -1
- package/dist/docs/server.js +3 -3
- package/dist/docs/server.js.map +1 -1
- package/dist/index.d.ts +12 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/init/scaffold.d.ts.map +1 -1
- package/dist/init/scaffold.js +3 -1
- package/dist/init/scaffold.js.map +1 -1
- package/dist/introspect/pull.d.ts.map +1 -1
- package/dist/introspect/pull.js +209 -154
- package/dist/introspect/pull.js.map +1 -1
- package/dist/introspect/queries.d.ts +6 -0
- package/dist/introspect/queries.d.ts.map +1 -1
- package/dist/introspect/queries.js +19 -0
- package/dist/introspect/queries.js.map +1 -1
- package/dist/introspect/sqlite/to-manifest.d.ts.map +1 -1
- package/dist/introspect/sqlite/to-manifest.js +6 -9
- package/dist/introspect/sqlite/to-manifest.js.map +1 -1
- package/dist/introspect/to-manifest.d.ts +8 -1
- package/dist/introspect/to-manifest.d.ts.map +1 -1
- package/dist/introspect/to-manifest.js +96 -21
- package/dist/introspect/to-manifest.js.map +1 -1
- package/dist/migrate/runner.d.ts +16 -0
- package/dist/migrate/runner.d.ts.map +1 -1
- package/dist/migrate/runner.js +147 -24
- package/dist/migrate/runner.js.map +1 -1
- package/dist/plugins/builtin.d.ts.map +1 -1
- package/dist/plugins/builtin.js +15 -16
- package/dist/plugins/builtin.js.map +1 -1
- package/dist/plugins/json/operators.d.ts.map +1 -1
- package/dist/plugins/json/operators.js +100 -27
- package/dist/plugins/json/operators.js.map +1 -1
- package/dist/plugins/postgis/columns.d.ts +18 -4
- package/dist/plugins/postgis/columns.d.ts.map +1 -1
- package/dist/plugins/postgis/columns.js +69 -10
- package/dist/plugins/postgis/columns.js.map +1 -1
- package/dist/plugins/postgis/columns.test.d.ts +2 -0
- package/dist/plugins/postgis/columns.test.d.ts.map +1 -0
- package/dist/plugins/postgis/columns.test.js +67 -0
- package/dist/plugins/postgis/columns.test.js.map +1 -0
- package/dist/plugins/postgis/index.d.ts +4 -2
- package/dist/plugins/postgis/index.d.ts.map +1 -1
- package/dist/plugins/postgis/index.js +2 -1
- package/dist/plugins/postgis/index.js.map +1 -1
- package/dist/plugins/postgis/where-types.d.ts +18 -0
- package/dist/plugins/postgis/where-types.d.ts.map +1 -0
- package/dist/plugins/postgis/where-types.js +2 -0
- package/dist/plugins/postgis/where-types.js.map +1 -0
- package/dist/plugins/registry.d.ts.map +1 -1
- package/dist/plugins/registry.js +20 -5
- package/dist/plugins/registry.js.map +1 -1
- package/dist/plugins/types.d.ts +1 -1
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/runtime/client.d.ts +60 -11
- package/dist/runtime/client.d.ts.map +1 -1
- package/dist/runtime/client.js +85 -39
- package/dist/runtime/client.js.map +1 -1
- package/dist/runtime/client.test.d.ts +2 -0
- package/dist/runtime/client.test.d.ts.map +1 -0
- package/dist/runtime/client.test.js +170 -0
- package/dist/runtime/client.test.js.map +1 -0
- package/dist/runtime/compile-error.d.ts +14 -0
- package/dist/runtime/compile-error.d.ts.map +1 -0
- package/dist/runtime/compile-error.js +14 -0
- package/dist/runtime/compile-error.js.map +1 -0
- package/dist/runtime/driver-sqlite.test.d.ts +2 -0
- package/dist/runtime/driver-sqlite.test.d.ts.map +1 -0
- package/dist/runtime/driver-sqlite.test.js +195 -0
- package/dist/runtime/driver-sqlite.test.js.map +1 -0
- package/dist/runtime/driver.d.ts +16 -1
- package/dist/runtime/driver.d.ts.map +1 -1
- package/dist/runtime/driver.js +118 -96
- package/dist/runtime/driver.js.map +1 -1
- package/dist/runtime/error-builders.d.ts +7 -6
- package/dist/runtime/error-builders.d.ts.map +1 -1
- package/dist/runtime/error-builders.js +2 -2
- package/dist/runtime/error-builders.js.map +1 -1
- package/dist/runtime/error-codes.d.ts +50 -0
- package/dist/runtime/error-codes.d.ts.map +1 -0
- package/dist/runtime/error-codes.js +54 -0
- package/dist/runtime/error-codes.js.map +1 -0
- package/dist/runtime/error-hints.d.ts +1 -0
- package/dist/runtime/error-hints.d.ts.map +1 -1
- package/dist/runtime/error-hints.js +13 -1
- package/dist/runtime/error-hints.js.map +1 -1
- package/dist/runtime/errors.d.ts +55 -8
- package/dist/runtime/errors.d.ts.map +1 -1
- package/dist/runtime/errors.js +143 -12
- package/dist/runtime/errors.js.map +1 -1
- package/dist/runtime/errors.test.d.ts +2 -0
- package/dist/runtime/errors.test.d.ts.map +1 -0
- package/dist/runtime/errors.test.js +115 -0
- package/dist/runtime/errors.test.js.map +1 -0
- package/dist/runtime/executor.d.ts +22 -3
- package/dist/runtime/executor.d.ts.map +1 -1
- package/dist/runtime/executor.js +93 -39
- package/dist/runtime/executor.js.map +1 -1
- package/dist/runtime/parse-db-json.d.ts +8 -0
- package/dist/runtime/parse-db-json.d.ts.map +1 -0
- package/dist/runtime/parse-db-json.js +33 -0
- package/dist/runtime/parse-db-json.js.map +1 -0
- package/dist/runtime/pg-error.d.ts.map +1 -1
- package/dist/runtime/pg-error.js +16 -16
- package/dist/runtime/pg-error.js.map +1 -1
- package/dist/runtime/pg-rollback.test.d.ts +2 -0
- package/dist/runtime/pg-rollback.test.d.ts.map +1 -0
- package/dist/runtime/pg-rollback.test.js +39 -0
- package/dist/runtime/pg-rollback.test.js.map +1 -0
- package/dist/runtime/query/aggregate.d.ts.map +1 -1
- package/dist/runtime/query/aggregate.js +15 -4
- package/dist/runtime/query/aggregate.js.map +1 -1
- package/dist/runtime/query/compile-aggregate.d.ts +39 -0
- package/dist/runtime/query/compile-aggregate.d.ts.map +1 -0
- package/dist/runtime/query/compile-aggregate.js +456 -0
- package/dist/runtime/query/compile-aggregate.js.map +1 -0
- package/dist/runtime/query/compile-where.d.ts +32 -0
- package/dist/runtime/query/compile-where.d.ts.map +1 -0
- package/dist/runtime/query/compile-where.js +708 -0
- package/dist/runtime/query/compile-where.js.map +1 -0
- package/dist/runtime/query/compile-write.d.ts +53 -0
- package/dist/runtime/query/compile-write.d.ts.map +1 -0
- package/dist/runtime/query/compile-write.js +467 -0
- package/dist/runtime/query/compile-write.js.map +1 -0
- package/dist/runtime/query/compile.d.ts +3 -114
- package/dist/runtime/query/compile.d.ts.map +1 -1
- package/dist/runtime/query/compile.js +3 -1536
- package/dist/runtime/query/compile.js.map +1 -1
- package/dist/runtime/query/count.d.ts +1 -0
- package/dist/runtime/query/count.d.ts.map +1 -1
- package/dist/runtime/query/count.js +12 -14
- package/dist/runtime/query/count.js.map +1 -1
- package/dist/runtime/query/create.d.ts.map +1 -1
- package/dist/runtime/query/create.js +20 -49
- package/dist/runtime/query/create.js.map +1 -1
- package/dist/runtime/query/cursor-codec.d.ts.map +1 -1
- package/dist/runtime/query/cursor-codec.js +8 -2
- package/dist/runtime/query/cursor-codec.js.map +1 -1
- package/dist/runtime/query/cursor.d.ts.map +1 -1
- package/dist/runtime/query/cursor.js +31 -7
- package/dist/runtime/query/cursor.js.map +1 -1
- package/dist/runtime/query/delete.d.ts.map +1 -1
- package/dist/runtime/query/delete.js +17 -17
- package/dist/runtime/query/delete.js.map +1 -1
- package/dist/runtime/query/execute.d.ts.map +1 -1
- package/dist/runtime/query/execute.js +11 -12
- package/dist/runtime/query/execute.js.map +1 -1
- package/dist/runtime/query/find-or-create.d.ts +4 -2
- package/dist/runtime/query/find-or-create.d.ts.map +1 -1
- package/dist/runtime/query/find-or-create.js +53 -43
- package/dist/runtime/query/find-or-create.js.map +1 -1
- package/dist/runtime/query/find-or-create.test.d.ts +2 -0
- package/dist/runtime/query/find-or-create.test.d.ts.map +1 -0
- package/dist/runtime/query/find-or-create.test.js +189 -0
- package/dist/runtime/query/find-or-create.test.js.map +1 -0
- package/dist/runtime/query/find.d.ts.map +1 -1
- package/dist/runtime/query/find.js +86 -58
- package/dist/runtime/query/find.js.map +1 -1
- package/dist/runtime/query/group-by.d.ts.map +1 -1
- package/dist/runtime/query/group-by.js +3 -2
- package/dist/runtime/query/group-by.js.map +1 -1
- package/dist/runtime/query/manifest-lookup.d.ts.map +1 -1
- package/dist/runtime/query/manifest-lookup.js +1 -1
- package/dist/runtime/query/manifest-lookup.js.map +1 -1
- package/dist/runtime/query/map-row.d.ts.map +1 -1
- package/dist/runtime/query/map-row.js +1 -1
- package/dist/runtime/query/map-row.js.map +1 -1
- package/dist/runtime/query/paginate.d.ts +3 -0
- package/dist/runtime/query/paginate.d.ts.map +1 -1
- package/dist/runtime/query/paginate.js +49 -11
- package/dist/runtime/query/paginate.js.map +1 -1
- package/dist/runtime/query/primary-key.d.ts +1 -1
- package/dist/runtime/query/primary-key.d.ts.map +1 -1
- package/dist/runtime/query/primary-key.js +45 -8
- package/dist/runtime/query/primary-key.js.map +1 -1
- package/dist/runtime/query/projection.d.ts +1 -0
- package/dist/runtime/query/projection.d.ts.map +1 -1
- package/dist/runtime/query/projection.js +23 -7
- package/dist/runtime/query/projection.js.map +1 -1
- package/dist/runtime/query/relation-planner.d.ts.map +1 -1
- package/dist/runtime/query/relation-planner.js +82 -53
- package/dist/runtime/query/relation-planner.js.map +1 -1
- package/dist/runtime/query/relation-writes.d.ts +3 -1
- package/dist/runtime/query/relation-writes.d.ts.map +1 -1
- package/dist/runtime/query/relation-writes.js +145 -54
- package/dist/runtime/query/relation-writes.js.map +1 -1
- package/dist/runtime/query/serialize-dialect.test.d.ts +2 -0
- package/dist/runtime/query/serialize-dialect.test.d.ts.map +1 -0
- package/dist/runtime/query/serialize-dialect.test.js +79 -0
- package/dist/runtime/query/serialize-dialect.test.js.map +1 -0
- package/dist/runtime/query/sqlite-constraint-errors.test.d.ts +2 -0
- package/dist/runtime/query/sqlite-constraint-errors.test.d.ts.map +1 -0
- package/dist/runtime/query/sqlite-constraint-errors.test.js +60 -0
- package/dist/runtime/query/sqlite-constraint-errors.test.js.map +1 -0
- package/dist/runtime/query/strip.d.ts.map +1 -1
- package/dist/runtime/query/strip.js.map +1 -1
- package/dist/runtime/query/table-index.d.ts.map +1 -1
- package/dist/runtime/query/table-index.js +4 -3
- package/dist/runtime/query/table-index.js.map +1 -1
- package/dist/runtime/query/unique.d.ts +8 -1
- package/dist/runtime/query/unique.d.ts.map +1 -1
- package/dist/runtime/query/unique.js +89 -4
- package/dist/runtime/query/unique.js.map +1 -1
- package/dist/runtime/query/unique.test.d.ts +2 -0
- package/dist/runtime/query/unique.test.d.ts.map +1 -0
- package/dist/runtime/query/unique.test.js +231 -0
- package/dist/runtime/query/unique.test.js.map +1 -0
- package/dist/runtime/query/update.d.ts.map +1 -1
- package/dist/runtime/query/update.js +30 -35
- package/dist/runtime/query/update.js.map +1 -1
- package/dist/runtime/query/update.test.d.ts +2 -0
- package/dist/runtime/query/update.test.d.ts.map +1 -0
- package/dist/runtime/query/update.test.js +186 -0
- package/dist/runtime/query/update.test.js.map +1 -0
- package/dist/runtime/query/updated-at.d.ts.map +1 -1
- package/dist/runtime/query/updated-at.js.map +1 -1
- package/dist/runtime/query/upsert.d.ts.map +1 -1
- package/dist/runtime/query/upsert.js +5 -7
- package/dist/runtime/query/upsert.js.map +1 -1
- package/dist/runtime/schema-error.d.ts.map +1 -1
- package/dist/runtime/schema-error.js +6 -2
- package/dist/runtime/schema-error.js.map +1 -1
- package/dist/runtime/sqlite-error.d.ts.map +1 -1
- package/dist/runtime/sqlite-error.js +11 -12
- package/dist/runtime/sqlite-error.js.map +1 -1
- package/dist/runtime/sqlite-open.d.ts +2 -0
- package/dist/runtime/sqlite-open.d.ts.map +1 -1
- package/dist/runtime/sqlite-open.js +18 -1
- package/dist/runtime/sqlite-open.js.map +1 -1
- package/dist/runtime/transaction.d.ts +4 -0
- package/dist/runtime/transaction.d.ts.map +1 -1
- package/dist/runtime/transaction.js +31 -1
- package/dist/runtime/transaction.js.map +1 -1
- package/dist/runtime/transaction.test.d.ts +2 -0
- package/dist/runtime/transaction.test.d.ts.map +1 -0
- package/dist/runtime/transaction.test.js +43 -0
- package/dist/runtime/transaction.test.js.map +1 -0
- package/dist/runtime/types.d.ts +50 -17
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/schema/column-where.d.ts +11 -1
- package/dist/schema/column-where.d.ts.map +1 -1
- package/dist/schema/column.d.ts +1 -1
- package/dist/schema/column.d.ts.map +1 -1
- package/dist/schema/column.js +1 -1
- package/dist/schema/column.js.map +1 -1
- package/dist/schema/define-schema.d.ts +1 -1
- package/dist/schema/define-schema.d.ts.map +1 -1
- package/dist/schema/define-schema.js +5 -23
- package/dist/schema/define-schema.js.map +1 -1
- package/dist/schema/index.d.ts +2 -2
- 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/relation-types.d.ts +29 -22
- package/dist/schema/relation-types.d.ts.map +1 -1
- package/dist/schema/relation.d.ts.map +1 -1
- package/dist/schema/relation.js +6 -4
- package/dist/schema/relation.js.map +1 -1
- package/dist/schema/table-registry.d.ts.map +1 -1
- package/dist/schema/table-registry.js +8 -2
- package/dist/schema/table-registry.js.map +1 -1
- package/dist/schema/table.d.ts +6 -3
- package/dist/schema/table.d.ts.map +1 -1
- package/dist/schema/table.js +30 -31
- package/dist/schema/table.js.map +1 -1
- package/dist/schema/types.d.ts +33 -25
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/sql/builder.d.ts +5 -1
- package/dist/sql/builder.d.ts.map +1 -1
- package/dist/sql/builder.js +23 -3
- package/dist/sql/builder.js.map +1 -1
- package/dist/sql/index.d.ts +5 -2
- package/dist/sql/index.d.ts.map +1 -1
- package/dist/sql/index.js +5 -2
- package/dist/sql/index.js.map +1 -1
- package/dist/utils/case.d.ts +4 -0
- package/dist/utils/case.d.ts.map +1 -1
- package/dist/utils/case.js +11 -0
- package/dist/utils/case.js.map +1 -1
- package/dist/utils/dotenv.d.ts +8 -0
- package/dist/utils/dotenv.d.ts.map +1 -0
- package/dist/utils/dotenv.js +70 -0
- package/dist/utils/dotenv.js.map +1 -0
- package/dist/utils/dotenv.test.d.ts +2 -0
- package/dist/utils/dotenv.test.d.ts.map +1 -0
- package/dist/utils/dotenv.test.js +32 -0
- package/dist/utils/dotenv.test.js.map +1 -0
- package/dist/utils/inflect.d.ts +6 -0
- package/dist/utils/inflect.d.ts.map +1 -0
- package/dist/utils/inflect.js +80 -0
- package/dist/utils/inflect.js.map +1 -0
- package/docs/cli.md +6 -2
- package/docs/configuration.md +3 -1
- package/docs/errors.md +61 -6
- package/docs/examples.md +63 -13
- package/docs/getting-started.md +24 -1
- package/docs/migrations.md +15 -2
- package/docs/plugins.md +13 -1
- package/docs/queries.md +109 -10
- package/docs/relations.md +5 -1
- package/docs/schema.md +12 -5
- package/docs/sqlite.md +24 -10
- package/docs/transactions.md +13 -2
- package/package.json +4 -2
package/dist/runtime/errors.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { type QueryErrorCodeValue, type SchemaErrorCodeValue } from "./error-codes.js";
|
|
1
2
|
export type QueryOperation = "select" | "insert" | "update" | "delete" | "upsert" | "findOrCreate" | "raw";
|
|
2
3
|
/** Context attached to {@link NeoOrmQueryError}. */
|
|
3
4
|
export type QueryErrorContext = {
|
|
4
5
|
operation: QueryOperation;
|
|
6
|
+
code: QueryErrorCodeValue;
|
|
5
7
|
tableAccessor?: string;
|
|
6
8
|
tableSqlName?: string;
|
|
7
9
|
columnTsName?: string;
|
|
@@ -11,12 +13,12 @@ export type QueryErrorContext = {
|
|
|
11
13
|
constraint?: string;
|
|
12
14
|
detail?: string;
|
|
13
15
|
migrationHint?: string;
|
|
14
|
-
code?: string;
|
|
15
16
|
phase?: "compile" | "runtime";
|
|
16
17
|
suggestions?: string[];
|
|
17
18
|
};
|
|
18
19
|
/** Context attached to {@link NeoOrmSchemaError}. */
|
|
19
20
|
export type SchemaErrorContext = {
|
|
21
|
+
code: SchemaErrorCodeValue;
|
|
20
22
|
schemaPath?: string;
|
|
21
23
|
tableAccessor?: string;
|
|
22
24
|
tableSqlName?: string;
|
|
@@ -25,29 +27,74 @@ export type SchemaErrorContext = {
|
|
|
25
27
|
sqlPath?: string;
|
|
26
28
|
statement?: string;
|
|
27
29
|
detail?: string;
|
|
28
|
-
code?: string;
|
|
29
30
|
suggestions?: string[];
|
|
30
31
|
};
|
|
31
32
|
/** Format a query error context into a multi-line message. */
|
|
32
33
|
export declare function formatQueryError(context: QueryErrorContext): string;
|
|
33
34
|
/** Format a schema error context into a multi-line message. */
|
|
34
35
|
export declare function formatSchemaError(context: SchemaErrorContext): string;
|
|
36
|
+
/** Base class for all NeoOrm errors. */
|
|
37
|
+
export declare abstract class NeoOrmError extends Error {
|
|
38
|
+
abstract readonly code: string;
|
|
39
|
+
readonly cause: unknown;
|
|
40
|
+
constructor(message: string, cause?: unknown);
|
|
41
|
+
}
|
|
35
42
|
/** Thrown when a query fails at compile time or at the database. */
|
|
36
|
-
export declare class NeoOrmQueryError extends
|
|
43
|
+
export declare class NeoOrmQueryError extends NeoOrmError {
|
|
37
44
|
readonly context: QueryErrorContext;
|
|
38
|
-
readonly
|
|
45
|
+
readonly code: QueryErrorCodeValue;
|
|
46
|
+
constructor(context: QueryErrorContext, cause?: unknown);
|
|
47
|
+
}
|
|
48
|
+
/** Thrown when a query fails at compile time (query builder mistakes). */
|
|
49
|
+
export declare class QueryCompileError extends NeoOrmQueryError {
|
|
39
50
|
constructor(context: QueryErrorContext, cause?: unknown);
|
|
40
51
|
}
|
|
52
|
+
/** Thrown when a unique constraint is violated at the database. */
|
|
53
|
+
export declare class UniqueViolationError extends NeoOrmQueryError {
|
|
54
|
+
constructor(context: QueryErrorContext, cause?: unknown);
|
|
55
|
+
}
|
|
56
|
+
/** Thrown when a foreign key constraint is violated at the database. */
|
|
57
|
+
export declare class ForeignKeyViolationError extends NeoOrmQueryError {
|
|
58
|
+
constructor(context: QueryErrorContext, cause?: unknown);
|
|
59
|
+
}
|
|
60
|
+
/** Thrown when a not-null constraint is violated at the database. */
|
|
61
|
+
export declare class NotNullViolationError extends NeoOrmQueryError {
|
|
62
|
+
constructor(context: QueryErrorContext, cause?: unknown);
|
|
63
|
+
}
|
|
64
|
+
/** Thrown when a check constraint is violated at the database. */
|
|
65
|
+
export declare class CheckViolationError extends NeoOrmQueryError {
|
|
66
|
+
constructor(context: QueryErrorContext, cause?: unknown);
|
|
67
|
+
}
|
|
68
|
+
/** Thrown when the database rejects a value due to invalid input/type. */
|
|
69
|
+
export declare class InvalidInputError extends NeoOrmQueryError {
|
|
70
|
+
constructor(context: QueryErrorContext, cause?: unknown);
|
|
71
|
+
}
|
|
72
|
+
/** Thrown when a table or column is missing (schema drift). */
|
|
73
|
+
export declare class SchemaDriftError extends NeoOrmQueryError {
|
|
74
|
+
constructor(context: QueryErrorContext, cause?: unknown);
|
|
75
|
+
}
|
|
76
|
+
/** Pick the appropriate query error subclass for a context. */
|
|
77
|
+
export declare function createQueryError(context: QueryErrorContext, cause?: unknown): NeoOrmQueryError;
|
|
41
78
|
/** Thrown when schema compilation or migration fails. */
|
|
42
|
-
export declare class NeoOrmSchemaError extends
|
|
79
|
+
export declare class NeoOrmSchemaError extends NeoOrmError {
|
|
43
80
|
readonly context: SchemaErrorContext;
|
|
44
|
-
readonly
|
|
81
|
+
readonly code: SchemaErrorCodeValue;
|
|
45
82
|
constructor(context: SchemaErrorContext, cause?: unknown);
|
|
46
83
|
}
|
|
47
84
|
/** Thrown when the database driver rejects a statement. */
|
|
48
|
-
export declare class NeoOrmDriverError extends
|
|
85
|
+
export declare class NeoOrmDriverError extends NeoOrmError {
|
|
49
86
|
readonly statement: string;
|
|
50
|
-
readonly
|
|
87
|
+
readonly code: "driver_error";
|
|
51
88
|
constructor(statement: string, cause: unknown);
|
|
52
89
|
}
|
|
90
|
+
export declare function isNeoOrmError(err: unknown): err is NeoOrmError;
|
|
91
|
+
export declare function isQueryError(err: unknown): err is NeoOrmQueryError;
|
|
92
|
+
export declare function isSchemaError(err: unknown): err is NeoOrmSchemaError;
|
|
93
|
+
export declare function isQueryCompileError(err: unknown): err is QueryCompileError;
|
|
94
|
+
export declare function isUniqueViolation(err: unknown): err is UniqueViolationError;
|
|
95
|
+
export declare function isForeignKeyViolation(err: unknown): err is ForeignKeyViolationError;
|
|
96
|
+
export declare function isNotNullViolation(err: unknown): err is NotNullViolationError;
|
|
97
|
+
export declare function isCheckViolation(err: unknown): err is CheckViolationError;
|
|
98
|
+
export declare function isInvalidInput(err: unknown): err is InvalidInputError;
|
|
99
|
+
export declare function isSchemaDriftError(err: unknown): err is SchemaDriftError;
|
|
53
100
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/runtime/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACvB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,KAAK,CAAC;AAET,oDAAoD;AACpD,MAAM,MAAM,iBAAiB,GAAG;IAC/B,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;IACvB,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/runtime/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,cAAc,GACvB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,KAAK,CAAC;AAET,oDAAoD;AACpD,MAAM,MAAM,iBAAiB,GAAG;IAC/B,SAAS,EAAE,cAAc,CAAC;IAC1B,IAAI,EAAE,mBAAmB,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;IACvB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AA+BF,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAuDnE;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAiDrE;AAED,wCAAwC;AACxC,8BAAsB,WAAY,SAAQ,KAAK;IAC9C,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,SAAkB,KAAK,EAAE,OAAO,CAAC;IAEjC,YAAY,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAI3C;CACD;AAED,oEAAoE;AACpE,qBAAa,gBAAiB,SAAQ,WAAW;IAChD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IAEnC,YAAY,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,OAAO,EAKtD;CACD;AAED,0EAA0E;AAC1E,qBAAa,iBAAkB,SAAQ,gBAAgB;IACtD,YAAY,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,OAAO,EAGtD;CACD;AAED,mEAAmE;AACnE,qBAAa,oBAAqB,SAAQ,gBAAgB;IACzD,YAAY,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,OAAO,EAUtD;CACD;AAED,wEAAwE;AACxE,qBAAa,wBAAyB,SAAQ,gBAAgB;IAC7D,YAAY,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,OAAO,EAUtD;CACD;AAED,qEAAqE;AACrE,qBAAa,qBAAsB,SAAQ,gBAAgB;IAC1D,YAAY,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,OAAO,EAUtD;CACD;AAED,kEAAkE;AAClE,qBAAa,mBAAoB,SAAQ,gBAAgB;IACxD,YAAY,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,OAAO,EAUtD;CACD;AAED,0EAA0E;AAC1E,qBAAa,iBAAkB,SAAQ,gBAAgB;IACtD,YAAY,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,OAAO,EAUtD;CACD;AAED,+DAA+D;AAC/D,qBAAa,gBAAiB,SAAQ,gBAAgB;IACrD,YAAY,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,OAAO,EAGtD;CACD;AAED,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,iBAAiB,EAC1B,KAAK,CAAC,EAAE,OAAO,GACb,gBAAgB,CAsBlB;AAED,yDAAyD;AACzD,qBAAa,iBAAkB,SAAQ,WAAW;IACjD,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IAEpC,YAAY,OAAO,EAAE,kBAAkB,EAAE,KAAK,CAAC,EAAE,OAAO,EAKvD;CACD;AAED,2DAA2D;AAC3D,qBAAa,iBAAkB,SAAQ,WAAW;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,iBAA+B;IAE5C,YAAY,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAK5C;CACD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAE9D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,gBAAgB,CAElE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,iBAAiB,CAEpE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,iBAAiB,CAE1E;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,oBAAoB,CAE3E;AAED,wBAAgB,qBAAqB,CACpC,GAAG,EAAE,OAAO,GACV,GAAG,IAAI,wBAAwB,CAEjC;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,qBAAqB,CAE7E;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,mBAAmB,CAEzE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,iBAAiB,CAErE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,gBAAgB,CAExE"}
|
package/dist/runtime/errors.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { QueryErrorCode, } from "./error-codes.js";
|
|
1
2
|
const OPERATION_LABEL = {
|
|
2
3
|
select: "Select",
|
|
3
4
|
insert: "Insert",
|
|
@@ -118,38 +119,168 @@ export function formatSchemaError(context) {
|
|
|
118
119
|
appendSuggestions(lines, context.suggestions);
|
|
119
120
|
return lines.join("\n").trimEnd();
|
|
120
121
|
}
|
|
122
|
+
/** Base class for all NeoOrm errors. */
|
|
123
|
+
export class NeoOrmError extends Error {
|
|
124
|
+
cause;
|
|
125
|
+
constructor(message, cause) {
|
|
126
|
+
super(message);
|
|
127
|
+
this.name = "NeoOrmError";
|
|
128
|
+
this.cause = cause;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
121
131
|
/** Thrown when a query fails at compile time or at the database. */
|
|
122
|
-
export class NeoOrmQueryError extends
|
|
132
|
+
export class NeoOrmQueryError extends NeoOrmError {
|
|
123
133
|
context;
|
|
124
|
-
|
|
134
|
+
code;
|
|
125
135
|
constructor(context, cause) {
|
|
126
|
-
super(formatQueryError(context));
|
|
136
|
+
super(formatQueryError(context), cause);
|
|
127
137
|
this.name = "NeoOrmQueryError";
|
|
128
138
|
this.context = context;
|
|
129
|
-
this.
|
|
139
|
+
this.code = context.code;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/** Thrown when a query fails at compile time (query builder mistakes). */
|
|
143
|
+
export class QueryCompileError extends NeoOrmQueryError {
|
|
144
|
+
constructor(context, cause) {
|
|
145
|
+
super({ ...context, phase: "compile" }, cause);
|
|
146
|
+
this.name = "QueryCompileError";
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/** Thrown when a unique constraint is violated at the database. */
|
|
150
|
+
export class UniqueViolationError extends NeoOrmQueryError {
|
|
151
|
+
constructor(context, cause) {
|
|
152
|
+
super({
|
|
153
|
+
...context,
|
|
154
|
+
code: QueryErrorCode.unique_violation,
|
|
155
|
+
phase: "runtime",
|
|
156
|
+
}, cause);
|
|
157
|
+
this.name = "UniqueViolationError";
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/** Thrown when a foreign key constraint is violated at the database. */
|
|
161
|
+
export class ForeignKeyViolationError extends NeoOrmQueryError {
|
|
162
|
+
constructor(context, cause) {
|
|
163
|
+
super({
|
|
164
|
+
...context,
|
|
165
|
+
code: QueryErrorCode.foreign_key_violation,
|
|
166
|
+
phase: "runtime",
|
|
167
|
+
}, cause);
|
|
168
|
+
this.name = "ForeignKeyViolationError";
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/** Thrown when a not-null constraint is violated at the database. */
|
|
172
|
+
export class NotNullViolationError extends NeoOrmQueryError {
|
|
173
|
+
constructor(context, cause) {
|
|
174
|
+
super({
|
|
175
|
+
...context,
|
|
176
|
+
code: QueryErrorCode.not_null_violation,
|
|
177
|
+
phase: "runtime",
|
|
178
|
+
}, cause);
|
|
179
|
+
this.name = "NotNullViolationError";
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/** Thrown when a check constraint is violated at the database. */
|
|
183
|
+
export class CheckViolationError extends NeoOrmQueryError {
|
|
184
|
+
constructor(context, cause) {
|
|
185
|
+
super({
|
|
186
|
+
...context,
|
|
187
|
+
code: QueryErrorCode.check_violation,
|
|
188
|
+
phase: "runtime",
|
|
189
|
+
}, cause);
|
|
190
|
+
this.name = "CheckViolationError";
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/** Thrown when the database rejects a value due to invalid input/type. */
|
|
194
|
+
export class InvalidInputError extends NeoOrmQueryError {
|
|
195
|
+
constructor(context, cause) {
|
|
196
|
+
super({
|
|
197
|
+
...context,
|
|
198
|
+
code: QueryErrorCode.invalid_input,
|
|
199
|
+
phase: "runtime",
|
|
200
|
+
}, cause);
|
|
201
|
+
this.name = "InvalidInputError";
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/** Thrown when a table or column is missing (schema drift). */
|
|
205
|
+
export class SchemaDriftError extends NeoOrmQueryError {
|
|
206
|
+
constructor(context, cause) {
|
|
207
|
+
super({ ...context, phase: "runtime" }, cause);
|
|
208
|
+
this.name = "SchemaDriftError";
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/** Pick the appropriate query error subclass for a context. */
|
|
212
|
+
export function createQueryError(context, cause) {
|
|
213
|
+
if (context.phase === "compile") {
|
|
214
|
+
return new QueryCompileError(context, cause);
|
|
215
|
+
}
|
|
216
|
+
switch (context.code) {
|
|
217
|
+
case QueryErrorCode.unique_violation:
|
|
218
|
+
return new UniqueViolationError(context, cause);
|
|
219
|
+
case QueryErrorCode.foreign_key_violation:
|
|
220
|
+
return new ForeignKeyViolationError(context, cause);
|
|
221
|
+
case QueryErrorCode.not_null_violation:
|
|
222
|
+
return new NotNullViolationError(context, cause);
|
|
223
|
+
case QueryErrorCode.check_violation:
|
|
224
|
+
return new CheckViolationError(context, cause);
|
|
225
|
+
case QueryErrorCode.invalid_input:
|
|
226
|
+
return new InvalidInputError(context, cause);
|
|
227
|
+
case QueryErrorCode.relation_not_found:
|
|
228
|
+
case QueryErrorCode.column_not_found:
|
|
229
|
+
return new SchemaDriftError(context, cause);
|
|
230
|
+
default:
|
|
231
|
+
return new NeoOrmQueryError(context, cause);
|
|
130
232
|
}
|
|
131
233
|
}
|
|
132
234
|
/** Thrown when schema compilation or migration fails. */
|
|
133
|
-
export class NeoOrmSchemaError extends
|
|
235
|
+
export class NeoOrmSchemaError extends NeoOrmError {
|
|
134
236
|
context;
|
|
135
|
-
|
|
237
|
+
code;
|
|
136
238
|
constructor(context, cause) {
|
|
137
|
-
super(formatSchemaError(context));
|
|
239
|
+
super(formatSchemaError(context), cause);
|
|
138
240
|
this.name = "NeoOrmSchemaError";
|
|
139
241
|
this.context = context;
|
|
140
|
-
this.
|
|
242
|
+
this.code = context.code;
|
|
141
243
|
}
|
|
142
244
|
}
|
|
143
245
|
/** Thrown when the database driver rejects a statement. */
|
|
144
|
-
export class NeoOrmDriverError extends
|
|
246
|
+
export class NeoOrmDriverError extends NeoOrmError {
|
|
145
247
|
statement;
|
|
146
|
-
|
|
248
|
+
code = QueryErrorCode.driver_error;
|
|
147
249
|
constructor(statement, cause) {
|
|
148
250
|
const detail = cause instanceof Error ? cause.message : String(cause);
|
|
149
|
-
super(detail);
|
|
251
|
+
super(detail, cause);
|
|
150
252
|
this.name = "NeoOrmDriverError";
|
|
151
253
|
this.statement = statement;
|
|
152
|
-
this.cause = cause;
|
|
153
254
|
}
|
|
154
255
|
}
|
|
256
|
+
export function isNeoOrmError(err) {
|
|
257
|
+
return err instanceof NeoOrmError;
|
|
258
|
+
}
|
|
259
|
+
export function isQueryError(err) {
|
|
260
|
+
return err instanceof NeoOrmQueryError;
|
|
261
|
+
}
|
|
262
|
+
export function isSchemaError(err) {
|
|
263
|
+
return err instanceof NeoOrmSchemaError;
|
|
264
|
+
}
|
|
265
|
+
export function isQueryCompileError(err) {
|
|
266
|
+
return err instanceof QueryCompileError;
|
|
267
|
+
}
|
|
268
|
+
export function isUniqueViolation(err) {
|
|
269
|
+
return err instanceof UniqueViolationError;
|
|
270
|
+
}
|
|
271
|
+
export function isForeignKeyViolation(err) {
|
|
272
|
+
return err instanceof ForeignKeyViolationError;
|
|
273
|
+
}
|
|
274
|
+
export function isNotNullViolation(err) {
|
|
275
|
+
return err instanceof NotNullViolationError;
|
|
276
|
+
}
|
|
277
|
+
export function isCheckViolation(err) {
|
|
278
|
+
return err instanceof CheckViolationError;
|
|
279
|
+
}
|
|
280
|
+
export function isInvalidInput(err) {
|
|
281
|
+
return err instanceof InvalidInputError;
|
|
282
|
+
}
|
|
283
|
+
export function isSchemaDriftError(err) {
|
|
284
|
+
return err instanceof SchemaDriftError;
|
|
285
|
+
}
|
|
155
286
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/runtime/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/runtime/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../../src/runtime/errors.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { emptyManifest } from "../codegen/diff-manifest.js";
|
|
3
|
+
import { QueryErrorCode } from "./error-codes.js";
|
|
4
|
+
import { createQueryError, isNeoOrmError, isQueryCompileError, isUniqueViolation, NeoOrmDriverError, QueryCompileError, UniqueViolationError, } from "./errors.js";
|
|
5
|
+
import { enrichPgError, isPgError } from "./pg-error.js";
|
|
6
|
+
import { requireTable } from "./query/table-index.js";
|
|
7
|
+
import { assertUniqueWhere } from "./query/unique.js";
|
|
8
|
+
import { enrichSqliteError, isSqliteError } from "./sqlite-error.js";
|
|
9
|
+
describe("createQueryError", () => {
|
|
10
|
+
it("returns UniqueViolationError for unique_violation code", () => {
|
|
11
|
+
const err = createQueryError({
|
|
12
|
+
operation: "insert",
|
|
13
|
+
code: QueryErrorCode.unique_violation,
|
|
14
|
+
phase: "runtime",
|
|
15
|
+
sql: "INSERT INTO users",
|
|
16
|
+
detail: "duplicate key",
|
|
17
|
+
});
|
|
18
|
+
expect(err).toBeInstanceOf(UniqueViolationError);
|
|
19
|
+
expect(err.code).toBe(QueryErrorCode.unique_violation);
|
|
20
|
+
});
|
|
21
|
+
it("returns QueryCompileError for compile phase", () => {
|
|
22
|
+
const err = createQueryError({
|
|
23
|
+
operation: "select",
|
|
24
|
+
code: QueryErrorCode.unknown_column,
|
|
25
|
+
phase: "compile",
|
|
26
|
+
sql: "",
|
|
27
|
+
detail: "bad column",
|
|
28
|
+
});
|
|
29
|
+
expect(err).toBeInstanceOf(QueryCompileError);
|
|
30
|
+
expect(isQueryCompileError(err)).toBe(true);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe("isPgError", () => {
|
|
34
|
+
it("accepts Postgres SQLSTATE codes", () => {
|
|
35
|
+
expect(isPgError({ code: "23505" })).toBe(true);
|
|
36
|
+
expect(isPgError({ code: "42P01" })).toBe(true);
|
|
37
|
+
});
|
|
38
|
+
it("rejects NeoOrmDriverError.code and SQLite ERR_ codes", () => {
|
|
39
|
+
expect(isPgError({ code: "driver_error" })).toBe(false);
|
|
40
|
+
expect(isPgError({ code: "ERR_SQLITE_ERROR" })).toBe(false);
|
|
41
|
+
expect(isPgError(new NeoOrmDriverError("INSERT INTO users", new Error("UNIQUE constraint failed: users.email")))).toBe(false);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
describe("PG error enrichment", () => {
|
|
45
|
+
it("maps unique violation to shared code and subclass", () => {
|
|
46
|
+
const context = enrichPgError({
|
|
47
|
+
code: "23505",
|
|
48
|
+
constraint: "users_email_key",
|
|
49
|
+
column: "email",
|
|
50
|
+
detail: "Key (email)=(a@b.com) already exists.",
|
|
51
|
+
}, emptyManifest(), { operation: "insert", sql: "INSERT INTO users" });
|
|
52
|
+
expect(context.code).toBe(QueryErrorCode.unique_violation);
|
|
53
|
+
const err = createQueryError(context);
|
|
54
|
+
expect(isUniqueViolation(err)).toBe(true);
|
|
55
|
+
expect(err.context.constraint).toBe("users_email_key");
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
describe("SQLite error enrichment", () => {
|
|
59
|
+
it("maps unique constraint message to shared code", () => {
|
|
60
|
+
const context = enrichSqliteError({
|
|
61
|
+
message: "UNIQUE constraint failed: users.email",
|
|
62
|
+
}, emptyManifest(), { operation: "insert", sql: "INSERT INTO users" });
|
|
63
|
+
expect(context.code).toBe(QueryErrorCode.unique_violation);
|
|
64
|
+
const err = createQueryError(context);
|
|
65
|
+
expect(isUniqueViolation(err)).toBe(true);
|
|
66
|
+
});
|
|
67
|
+
it("does not treat NeoOrmDriverError as a Postgres error", () => {
|
|
68
|
+
const err = new NeoOrmDriverError("INSERT INTO users", new Error("UNIQUE constraint failed: users.email"));
|
|
69
|
+
expect(isPgError(err)).toBe(false);
|
|
70
|
+
expect(isSqliteError(err)).toBe(true);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
describe("compile errors", () => {
|
|
74
|
+
it("requireTable throws QueryCompileError with unknown_table", () => {
|
|
75
|
+
const manifest = emptyManifest();
|
|
76
|
+
expect(() => requireTable(manifest, "missing", "select")).toThrow(QueryCompileError);
|
|
77
|
+
try {
|
|
78
|
+
requireTable(manifest, "missing", "select");
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
expect(isNeoOrmError(err)).toBe(true);
|
|
82
|
+
expect(err.code).toBe(QueryErrorCode.unknown_table);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
it("assertUniqueWhere throws QueryCompileError with unique_where_invalid", () => {
|
|
86
|
+
const manifest = emptyManifest();
|
|
87
|
+
const usersTable = {
|
|
88
|
+
accessor: "users",
|
|
89
|
+
sqlName: "users",
|
|
90
|
+
primaryKey: ["id"],
|
|
91
|
+
columns: [
|
|
92
|
+
{
|
|
93
|
+
tsName: "id",
|
|
94
|
+
sqlName: "id",
|
|
95
|
+
kind: "serial",
|
|
96
|
+
primary: true,
|
|
97
|
+
unique: false,
|
|
98
|
+
nullable: false,
|
|
99
|
+
defaultNow: false,
|
|
100
|
+
},
|
|
101
|
+
],
|
|
102
|
+
indexes: [],
|
|
103
|
+
relations: [],
|
|
104
|
+
};
|
|
105
|
+
manifest.tables.users = usersTable;
|
|
106
|
+
expect(() => assertUniqueWhere(usersTable, { name: "x" }, "update")).toThrow(QueryCompileError);
|
|
107
|
+
try {
|
|
108
|
+
assertUniqueWhere(usersTable, { name: "x" }, "update");
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
expect(err.code).toBe(QueryErrorCode.unique_where_invalid);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
//# sourceMappingURL=errors.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../src/runtime/errors.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,29 @@
|
|
|
1
1
|
import type { Pool } from "pg";
|
|
2
2
|
import type { CompiledQuery } from "../dialect/types.js";
|
|
3
|
+
import { type DatabaseClient, type SqliteDatabaseLike } from "./driver.js";
|
|
3
4
|
import type { TransactionOptions } from "./types.js";
|
|
4
|
-
import { type SqliteDatabaseLike } from "./driver.js";
|
|
5
5
|
export type ExecuteResult<T = Record<string, unknown>> = {
|
|
6
6
|
rows: T[];
|
|
7
7
|
rowCount: number;
|
|
8
8
|
};
|
|
9
|
+
export type QueryMethod = "query" | "queryOne" | "execute";
|
|
10
|
+
/** Fired immediately before a data query runs (not BEGIN/COMMIT/SAVEPOINT). */
|
|
11
|
+
export type QueryEvent = {
|
|
12
|
+
sql: string;
|
|
13
|
+
params: unknown[];
|
|
14
|
+
method: QueryMethod;
|
|
15
|
+
inTransaction: boolean;
|
|
16
|
+
};
|
|
17
|
+
/** Fired after a data query succeeds or fails. */
|
|
18
|
+
export type QueryResultEvent = QueryEvent & {
|
|
19
|
+
durationMs: number;
|
|
20
|
+
rowCount?: number;
|
|
21
|
+
error?: unknown;
|
|
22
|
+
};
|
|
23
|
+
export type QueryHooks = {
|
|
24
|
+
beforeQuery?: (event: QueryEvent) => void | Promise<void>;
|
|
25
|
+
afterQuery?: (event: QueryResultEvent) => void | Promise<void>;
|
|
26
|
+
};
|
|
9
27
|
export type Executor = {
|
|
10
28
|
readonly inTransaction?: boolean;
|
|
11
29
|
query<T = Record<string, unknown>>(text: string, params?: unknown[]): Promise<T[]>;
|
|
@@ -15,8 +33,9 @@ export type Executor = {
|
|
|
15
33
|
};
|
|
16
34
|
export type ExecutorOptions = {
|
|
17
35
|
preparedStatements?: boolean;
|
|
18
|
-
};
|
|
36
|
+
} & QueryHooks;
|
|
19
37
|
export declare function createExecutor(pool: Pool, options?: ExecutorOptions): Executor;
|
|
38
|
+
/** Same compiler as `neoorm/sql` (`sqlTag`): values, fragments, and `sqlId`. */
|
|
20
39
|
export declare function compileQuery(parts: TemplateStringsArray, values: unknown[]): CompiledQuery;
|
|
21
|
-
export declare function createSqliteExecutor(db: SqliteDatabaseLike,
|
|
40
|
+
export declare function createSqliteExecutor(db: SqliteDatabaseLike | DatabaseClient, options?: ExecutorOptions): Executor;
|
|
22
41
|
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,IAAI,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,IAAI,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,kBAAkB,EAEvB,MAAM,aAAa,CAAC;AAQrB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACxD,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAE3D,+EAA+E;AAC/E,MAAM,MAAM,UAAU,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,kDAAkD;AAClD,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACxB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,EAAE,GAChB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAChB,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,EAAE,GAChB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACrB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,EAAE,GAChB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,WAAW,CAAC,CAAC,EACZ,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,EAChC,OAAO,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,UAAU,CAAC;AAwLf,wBAAgB,cAAc,CAC7B,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,eAAe,GACvB,QAAQ,CA4BV;AA2CD,gFAAgF;AAChF,wBAAgB,YAAY,CAC3B,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,OAAO,EAAE,GACf,aAAa,CAEf;AAuDD,wBAAgB,oBAAoB,CACnC,EAAE,EAAE,kBAAkB,GAAG,cAAc,EACvC,OAAO,CAAC,EAAE,eAAe,GACvB,QAAQ,CAGV"}
|