@casekit/orm2-schema 1.0.0 → 1.0.1
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/{src/Config.ts → build/Config.d.ts} +1 -7
- package/build/Config.js +1 -0
- package/build/Logger.js +1 -0
- package/{src/definition/FieldDefinition.ts → build/definition/FieldDefinition.d.ts} +5 -18
- package/build/definition/FieldDefinition.js +1 -0
- package/build/definition/ForeignKeyDefinition.js +1 -0
- package/{src/definition/ModelDefinition.ts → build/definition/ModelDefinition.d.ts} +0 -7
- package/build/definition/ModelDefinition.js +1 -0
- package/{src/definition/ModelDefinitions.ts → build/definition/ModelDefinitions.d.ts} +0 -1
- package/build/definition/ModelDefinitions.js +1 -0
- package/{src/definition/OperatorDefinitions.ts → build/definition/OperatorDefinitions.d.ts} +0 -1
- package/build/definition/OperatorDefinitions.js +1 -0
- package/{src/definition/PostgresDataTypes.ts → build/definition/PostgresDataTypes.d.ts} +0 -3
- package/build/definition/PostgresDataTypes.js +1 -0
- package/{src/definition/RelationDefinition.ts → build/definition/RelationDefinition.d.ts} +1 -7
- package/build/definition/RelationDefinition.js +1 -0
- package/{src/definition/RelationDefinitions.ts → build/definition/RelationDefinitions.d.ts} +0 -1
- package/build/definition/RelationDefinitions.js +1 -0
- package/{src/definition/UniqueConstraintDefinition.ts → build/definition/UniqueConstraintDefinition.d.ts} +0 -1
- package/build/definition/UniqueConstraintDefinition.js +1 -0
- package/build/definition/WhereOperator.d.ts +5 -0
- package/build/definition/WhereOperator.js +1 -0
- package/build/helper/DefaultFieldType.d.ts +7 -0
- package/build/helper/DefaultFieldType.js +1 -0
- package/build/helper/DefaultFieldType.test-d.d.ts +1 -0
- package/build/helper/DefaultFieldType.test-d.js +57 -0
- package/{src/helper/FieldName.ts → build/helper/FieldName.d.ts} +0 -1
- package/build/helper/FieldName.js +1 -0
- package/build/helper/FieldName.test-d.d.ts +1 -0
- package/{src/helper/FieldName.test-d.ts → build/helper/FieldName.test-d.js} +2 -9
- package/build/helper/FieldType.d.ts +5 -0
- package/build/helper/FieldType.js +1 -0
- package/build/helper/FieldType.test-d.d.ts +1 -0
- package/build/helper/FieldType.test-d.js +59 -0
- package/{src/helper/FieldWithDefault.ts → build/helper/FieldWithDefault.d.ts} +1 -6
- package/build/helper/FieldWithDefault.js +1 -0
- package/build/helper/FieldWithDefault.test-d.d.ts +1 -0
- package/{src/helper/FieldWithDefault.test-d.ts → build/helper/FieldWithDefault.test-d.js} +6 -17
- package/{src/helper/ModelName.ts → build/helper/ModelName.d.ts} +1 -5
- package/build/helper/ModelName.js +1 -0
- package/build/helper/ModelName.test-d.d.ts +1 -0
- package/{src/helper/ModelName.test-d.ts → build/helper/ModelName.test-d.js} +2 -9
- package/{src/helper/ModelType.ts → build/helper/ModelType.d.ts} +0 -2
- package/build/helper/ModelType.js +1 -0
- package/build/helper/ModelType.test-d.d.ts +1 -0
- package/{src/helper/ModelType.test-d.ts → build/helper/ModelType.test-d.js} +2 -17
- package/{src/helper/NullableField.ts → build/helper/NullableField.d.ts} +1 -4
- package/build/helper/NullableField.js +1 -0
- package/build/helper/NullableField.test-d.d.ts +1 -0
- package/{src/helper/NullableField.test-d.ts → build/helper/NullableField.test-d.js} +6 -17
- package/{src/helper/OptionalField.ts → build/helper/OptionalField.d.ts} +1 -5
- package/build/helper/OptionalField.js +1 -0
- package/build/helper/OptionalField.test-d.d.ts +1 -0
- package/{src/helper/OptionalField.test-d.ts → build/helper/OptionalField.test-d.js} +6 -21
- package/{src/helper/ProvidedField.ts → build/helper/ProvidedField.d.ts} +1 -4
- package/build/helper/ProvidedField.js +1 -0
- package/build/helper/ProvidedField.test-d.d.ts +1 -0
- package/{src/helper/ProvidedField.test-d.ts → build/helper/ProvidedField.test-d.js} +6 -17
- package/build/helper/RelationModel.d.ts +4 -0
- package/build/helper/RelationModel.js +1 -0
- package/build/helper/RelationModel.test-d.d.ts +1 -0
- package/{src/helper/RelationModel.test-d.ts → build/helper/RelationModel.test-d.js} +6 -27
- package/build/helper/RelationName.d.ts +2 -0
- package/build/helper/RelationName.js +1 -0
- package/build/helper/RelationName.test-d.d.ts +1 -0
- package/{src/helper/RelationName.test-d.ts → build/helper/RelationName.test-d.js} +4 -14
- package/{src/helper/RequiredField.ts → build/helper/RequiredField.d.ts} +1 -8
- package/build/helper/RequiredField.js +1 -0
- package/build/helper/RequiredField.test-d.d.ts +1 -0
- package/{src/helper/RequiredField.test-d.ts → build/helper/RequiredField.test-d.js} +6 -19
- package/{src/helper/SerialField.ts → build/helper/SerialField.d.ts} +1 -7
- package/build/helper/SerialField.js +1 -0
- package/build/helper/SerialField.test-d.d.ts +1 -0
- package/{src/helper/SerialField.test-d.ts → build/helper/SerialField.test-d.js} +8 -23
- package/{src/index.ts → build/index.d.ts} +1 -8
- package/build/index.js +1 -0
- package/package.json +8 -8
- package/src/definition/WhereOperator.ts +0 -6
- package/src/helper/DefaultFieldType.test-d.ts +0 -60
- package/src/helper/DefaultFieldType.ts +0 -99
- package/src/helper/FieldType.test-d.ts +0 -81
- package/src/helper/FieldType.ts +0 -16
- package/src/helper/RelationModel.ts +0 -9
- package/src/helper/RelationName.ts +0 -4
- /package/{src/Logger.ts → build/Logger.d.ts} +0 -0
- /package/{src/definition/ForeignKeyDefinition.ts → build/definition/ForeignKeyDefinition.d.ts} +0 -0
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WARNING!!! The types in this file must be kept in sync
|
|
3
|
-
* with the zod schemas in packages/orm/src/config/defaultZodSchema.ts.
|
|
4
|
-
* If you make a change here, make sure to update the
|
|
5
|
-
* corresponding zod schema.
|
|
6
|
-
*/
|
|
7
|
-
export type DefaultFieldType<DataType extends string> =
|
|
8
|
-
DataType extends `${infer T extends string}[]`
|
|
9
|
-
? DefaultFieldType<T>[]
|
|
10
|
-
: Uppercase<DataType> extends "BIGINT" | "BIGSERIAL"
|
|
11
|
-
? bigint
|
|
12
|
-
: Uppercase<DataType> extends
|
|
13
|
-
| "DOUBLE PRECISION"
|
|
14
|
-
| "INTEGER"
|
|
15
|
-
| "OID"
|
|
16
|
-
| "REAL"
|
|
17
|
-
| "SMALLINT"
|
|
18
|
-
| "SMALLSERIAL"
|
|
19
|
-
| "SERIAL"
|
|
20
|
-
? number
|
|
21
|
-
: Uppercase<DataType> extends
|
|
22
|
-
| "BPCHAR"
|
|
23
|
-
| "BIT"
|
|
24
|
-
| "BOX"
|
|
25
|
-
| "CIDR"
|
|
26
|
-
| "CHAR"
|
|
27
|
-
| "DATERANGE"
|
|
28
|
-
| "DECIMAL"
|
|
29
|
-
| "INET"
|
|
30
|
-
| "INT4RANGE"
|
|
31
|
-
| "INT8RANGE"
|
|
32
|
-
| "INT2VECTOR"
|
|
33
|
-
| "PG_LSN"
|
|
34
|
-
| "REGCLASS"
|
|
35
|
-
| "REGCONFIG"
|
|
36
|
-
| "REGDICTIONARY"
|
|
37
|
-
| "REGNAMESPACE"
|
|
38
|
-
| "REGOPER"
|
|
39
|
-
| "REGOPERATOR"
|
|
40
|
-
| "REGPROC"
|
|
41
|
-
| "REGPROCEDURE"
|
|
42
|
-
| "REGROLE"
|
|
43
|
-
| "REGTYPE"
|
|
44
|
-
| "TID"
|
|
45
|
-
| "XID"
|
|
46
|
-
| "NUMRANGE"
|
|
47
|
-
| "TSRANGE"
|
|
48
|
-
| "TSTZRANGE"
|
|
49
|
-
| "LINE"
|
|
50
|
-
| "LSEG"
|
|
51
|
-
| "MACADDR"
|
|
52
|
-
| "MACADDR8"
|
|
53
|
-
| "MONEY"
|
|
54
|
-
| "PATH"
|
|
55
|
-
| "POLYGON"
|
|
56
|
-
| "TEXT"
|
|
57
|
-
| "TIME"
|
|
58
|
-
| "TIMETZ"
|
|
59
|
-
| "TSQUERY"
|
|
60
|
-
| "TSVECTOR"
|
|
61
|
-
| "TXID_SNAPSHOT"
|
|
62
|
-
| "XML"
|
|
63
|
-
| `BIT${string}`
|
|
64
|
-
| `CHARACTER${string}`
|
|
65
|
-
| `NUMERIC${string}`
|
|
66
|
-
| `TIME ${string}`
|
|
67
|
-
| `TIME(${string})`
|
|
68
|
-
| `VARCHAR`
|
|
69
|
-
| `VARCHAR ${string}`
|
|
70
|
-
? string
|
|
71
|
-
: Uppercase<DataType> extends "BYTEA"
|
|
72
|
-
? Buffer
|
|
73
|
-
: // : Uppercase<DataType> extends "CIRCLE"
|
|
74
|
-
// ? { x: number; y: number; radius: number }
|
|
75
|
-
// : Uppercase<DataType> extends "POINT"
|
|
76
|
-
// ? { x: number; y: number }
|
|
77
|
-
Uppercase<DataType> extends "JSON" | "JSONB"
|
|
78
|
-
? unknown
|
|
79
|
-
: Uppercase<DataType> extends "UUID"
|
|
80
|
-
? string
|
|
81
|
-
: Uppercase<DataType> extends "BOOLEAN"
|
|
82
|
-
? boolean
|
|
83
|
-
: Uppercase<DataType> extends
|
|
84
|
-
| "DATE"
|
|
85
|
-
| "TIMESTAMP"
|
|
86
|
-
| "TIMESTAMPTZ"
|
|
87
|
-
| `TIMESTAMP${string}`
|
|
88
|
-
? Date
|
|
89
|
-
: // : Uppercase<DataType> extends "INTERVAL"
|
|
90
|
-
// ? {
|
|
91
|
-
// years?: number;
|
|
92
|
-
// months?: number;
|
|
93
|
-
// days?: number;
|
|
94
|
-
// hours?: number;
|
|
95
|
-
// minutes?: number;
|
|
96
|
-
// seconds?: number;
|
|
97
|
-
// milliseconds?: number;
|
|
98
|
-
// }
|
|
99
|
-
unknown;
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { describe, expectTypeOf } from "vitest";
|
|
2
|
-
import { z } from "zod";
|
|
3
|
-
|
|
4
|
-
import type { ModelDefinition } from "#definition/ModelDefinition.js";
|
|
5
|
-
import type { FieldType } from "./FieldType.js";
|
|
6
|
-
|
|
7
|
-
const user = {
|
|
8
|
-
fields: {
|
|
9
|
-
email: {
|
|
10
|
-
type: "text",
|
|
11
|
-
zodSchema: z.email(),
|
|
12
|
-
},
|
|
13
|
-
id: {
|
|
14
|
-
type: "serial",
|
|
15
|
-
},
|
|
16
|
-
age: {
|
|
17
|
-
type: "integer",
|
|
18
|
-
zodSchema: z.number().min(0).max(150),
|
|
19
|
-
},
|
|
20
|
-
tags: {
|
|
21
|
-
type: "text[]",
|
|
22
|
-
zodSchema: z.array(z.string()),
|
|
23
|
-
},
|
|
24
|
-
status: {
|
|
25
|
-
type: "text",
|
|
26
|
-
zodSchema: z.enum(["active", "inactive", "pending"]),
|
|
27
|
-
},
|
|
28
|
-
createdAt: {
|
|
29
|
-
type: "timestamp with time zone",
|
|
30
|
-
},
|
|
31
|
-
deletedAt: {
|
|
32
|
-
type: "timestamp with time zone",
|
|
33
|
-
zodSchema: z.date().nullable(),
|
|
34
|
-
},
|
|
35
|
-
metadata: {
|
|
36
|
-
type: "jsonb",
|
|
37
|
-
default: "{}",
|
|
38
|
-
zodSchema: z.object({
|
|
39
|
-
foo: z.enum(["a", "b", "c"]),
|
|
40
|
-
bar: z.array(
|
|
41
|
-
z.object({
|
|
42
|
-
baz: z.enum(["good", "bad", "indifferent"]),
|
|
43
|
-
quux: z.boolean(),
|
|
44
|
-
}),
|
|
45
|
-
),
|
|
46
|
-
}),
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
} as const satisfies ModelDefinition;
|
|
50
|
-
|
|
51
|
-
type UserModel = typeof user;
|
|
52
|
-
|
|
53
|
-
describe("FieldType", () => {
|
|
54
|
-
describe("json field", () => {
|
|
55
|
-
expectTypeOf<FieldType<UserModel, "metadata">>().toEqualTypeOf<{
|
|
56
|
-
foo: "a" | "b" | "c";
|
|
57
|
-
bar: { baz: "good" | "bad" | "indifferent"; quux: boolean }[];
|
|
58
|
-
}>();
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
describe("fields with Zod schemas", () => {
|
|
62
|
-
expectTypeOf<FieldType<UserModel, "email">>().toBeString();
|
|
63
|
-
|
|
64
|
-
expectTypeOf<FieldType<UserModel, "age">>().toBeNumber();
|
|
65
|
-
|
|
66
|
-
expectTypeOf<FieldType<UserModel, "tags">>().toEqualTypeOf<string[]>();
|
|
67
|
-
|
|
68
|
-
expectTypeOf<FieldType<UserModel, "status">>().toEqualTypeOf<
|
|
69
|
-
"active" | "inactive" | "pending"
|
|
70
|
-
>();
|
|
71
|
-
|
|
72
|
-
expectTypeOf<
|
|
73
|
-
FieldType<UserModel, "deletedAt">
|
|
74
|
-
>().toEqualTypeOf<Date | null>();
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
describe("fields without Zod schemas (using DefaultFieldType)", () => {
|
|
78
|
-
expectTypeOf<FieldType<UserModel, "id">>().toBeNumber();
|
|
79
|
-
expectTypeOf<FieldType<UserModel, "createdAt">>().toEqualTypeOf<Date>();
|
|
80
|
-
});
|
|
81
|
-
});
|
package/src/helper/FieldType.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
|
|
3
|
-
import { ModelDefinition } from "#definition/ModelDefinition.js";
|
|
4
|
-
import { DefaultFieldType } from "./DefaultFieldType.js";
|
|
5
|
-
import { FieldName } from "./FieldName.js";
|
|
6
|
-
|
|
7
|
-
export type FieldType<
|
|
8
|
-
Model extends ModelDefinition,
|
|
9
|
-
C extends FieldName<Model>,
|
|
10
|
-
> = Model["fields"][C]["zodSchema"] extends z.ZodType
|
|
11
|
-
?
|
|
12
|
-
| z.infer<Model["fields"][C]["zodSchema"]>
|
|
13
|
-
| (Model["fields"][C]["nullable"] extends true ? null : never)
|
|
14
|
-
:
|
|
15
|
-
| DefaultFieldType<Model["fields"][C]["type"]>
|
|
16
|
-
| (Model["fields"][C]["nullable"] extends true ? null : never);
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ModelDefinitions } from "#definition/ModelDefinitions.js";
|
|
2
|
-
import { ModelName } from "./ModelName.js";
|
|
3
|
-
import { RelationName } from "./RelationName.js";
|
|
4
|
-
|
|
5
|
-
export type RelationModel<
|
|
6
|
-
Models extends ModelDefinitions,
|
|
7
|
-
M extends ModelName<Models>,
|
|
8
|
-
R extends RelationName<Models[M]>,
|
|
9
|
-
> = Models[NonNullable<Models[M]["relations"]>[R]["model"]];
|
|
File without changes
|
/package/{src/definition/ForeignKeyDefinition.ts → build/definition/ForeignKeyDefinition.d.ts}
RENAMED
|
File without changes
|