@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.
Files changed (86) hide show
  1. package/{src/Config.ts → build/Config.d.ts} +1 -7
  2. package/build/Config.js +1 -0
  3. package/build/Logger.js +1 -0
  4. package/{src/definition/FieldDefinition.ts → build/definition/FieldDefinition.d.ts} +5 -18
  5. package/build/definition/FieldDefinition.js +1 -0
  6. package/build/definition/ForeignKeyDefinition.js +1 -0
  7. package/{src/definition/ModelDefinition.ts → build/definition/ModelDefinition.d.ts} +0 -7
  8. package/build/definition/ModelDefinition.js +1 -0
  9. package/{src/definition/ModelDefinitions.ts → build/definition/ModelDefinitions.d.ts} +0 -1
  10. package/build/definition/ModelDefinitions.js +1 -0
  11. package/{src/definition/OperatorDefinitions.ts → build/definition/OperatorDefinitions.d.ts} +0 -1
  12. package/build/definition/OperatorDefinitions.js +1 -0
  13. package/{src/definition/PostgresDataTypes.ts → build/definition/PostgresDataTypes.d.ts} +0 -3
  14. package/build/definition/PostgresDataTypes.js +1 -0
  15. package/{src/definition/RelationDefinition.ts → build/definition/RelationDefinition.d.ts} +1 -7
  16. package/build/definition/RelationDefinition.js +1 -0
  17. package/{src/definition/RelationDefinitions.ts → build/definition/RelationDefinitions.d.ts} +0 -1
  18. package/build/definition/RelationDefinitions.js +1 -0
  19. package/{src/definition/UniqueConstraintDefinition.ts → build/definition/UniqueConstraintDefinition.d.ts} +0 -1
  20. package/build/definition/UniqueConstraintDefinition.js +1 -0
  21. package/build/definition/WhereOperator.d.ts +5 -0
  22. package/build/definition/WhereOperator.js +1 -0
  23. package/build/helper/DefaultFieldType.d.ts +7 -0
  24. package/build/helper/DefaultFieldType.js +1 -0
  25. package/build/helper/DefaultFieldType.test-d.d.ts +1 -0
  26. package/build/helper/DefaultFieldType.test-d.js +57 -0
  27. package/{src/helper/FieldName.ts → build/helper/FieldName.d.ts} +0 -1
  28. package/build/helper/FieldName.js +1 -0
  29. package/build/helper/FieldName.test-d.d.ts +1 -0
  30. package/{src/helper/FieldName.test-d.ts → build/helper/FieldName.test-d.js} +2 -9
  31. package/build/helper/FieldType.d.ts +5 -0
  32. package/build/helper/FieldType.js +1 -0
  33. package/build/helper/FieldType.test-d.d.ts +1 -0
  34. package/build/helper/FieldType.test-d.js +59 -0
  35. package/{src/helper/FieldWithDefault.ts → build/helper/FieldWithDefault.d.ts} +1 -6
  36. package/build/helper/FieldWithDefault.js +1 -0
  37. package/build/helper/FieldWithDefault.test-d.d.ts +1 -0
  38. package/{src/helper/FieldWithDefault.test-d.ts → build/helper/FieldWithDefault.test-d.js} +6 -17
  39. package/{src/helper/ModelName.ts → build/helper/ModelName.d.ts} +1 -5
  40. package/build/helper/ModelName.js +1 -0
  41. package/build/helper/ModelName.test-d.d.ts +1 -0
  42. package/{src/helper/ModelName.test-d.ts → build/helper/ModelName.test-d.js} +2 -9
  43. package/{src/helper/ModelType.ts → build/helper/ModelType.d.ts} +0 -2
  44. package/build/helper/ModelType.js +1 -0
  45. package/build/helper/ModelType.test-d.d.ts +1 -0
  46. package/{src/helper/ModelType.test-d.ts → build/helper/ModelType.test-d.js} +2 -17
  47. package/{src/helper/NullableField.ts → build/helper/NullableField.d.ts} +1 -4
  48. package/build/helper/NullableField.js +1 -0
  49. package/build/helper/NullableField.test-d.d.ts +1 -0
  50. package/{src/helper/NullableField.test-d.ts → build/helper/NullableField.test-d.js} +6 -17
  51. package/{src/helper/OptionalField.ts → build/helper/OptionalField.d.ts} +1 -5
  52. package/build/helper/OptionalField.js +1 -0
  53. package/build/helper/OptionalField.test-d.d.ts +1 -0
  54. package/{src/helper/OptionalField.test-d.ts → build/helper/OptionalField.test-d.js} +6 -21
  55. package/{src/helper/ProvidedField.ts → build/helper/ProvidedField.d.ts} +1 -4
  56. package/build/helper/ProvidedField.js +1 -0
  57. package/build/helper/ProvidedField.test-d.d.ts +1 -0
  58. package/{src/helper/ProvidedField.test-d.ts → build/helper/ProvidedField.test-d.js} +6 -17
  59. package/build/helper/RelationModel.d.ts +4 -0
  60. package/build/helper/RelationModel.js +1 -0
  61. package/build/helper/RelationModel.test-d.d.ts +1 -0
  62. package/{src/helper/RelationModel.test-d.ts → build/helper/RelationModel.test-d.js} +6 -27
  63. package/build/helper/RelationName.d.ts +2 -0
  64. package/build/helper/RelationName.js +1 -0
  65. package/build/helper/RelationName.test-d.d.ts +1 -0
  66. package/{src/helper/RelationName.test-d.ts → build/helper/RelationName.test-d.js} +4 -14
  67. package/{src/helper/RequiredField.ts → build/helper/RequiredField.d.ts} +1 -8
  68. package/build/helper/RequiredField.js +1 -0
  69. package/build/helper/RequiredField.test-d.d.ts +1 -0
  70. package/{src/helper/RequiredField.test-d.ts → build/helper/RequiredField.test-d.js} +6 -19
  71. package/{src/helper/SerialField.ts → build/helper/SerialField.d.ts} +1 -7
  72. package/build/helper/SerialField.js +1 -0
  73. package/build/helper/SerialField.test-d.d.ts +1 -0
  74. package/{src/helper/SerialField.test-d.ts → build/helper/SerialField.test-d.js} +8 -23
  75. package/{src/index.ts → build/index.d.ts} +1 -8
  76. package/build/index.js +1 -0
  77. package/package.json +8 -8
  78. package/src/definition/WhereOperator.ts +0 -6
  79. package/src/helper/DefaultFieldType.test-d.ts +0 -60
  80. package/src/helper/DefaultFieldType.ts +0 -99
  81. package/src/helper/FieldType.test-d.ts +0 -81
  82. package/src/helper/FieldType.ts +0 -16
  83. package/src/helper/RelationModel.ts +0 -9
  84. package/src/helper/RelationName.ts +0 -4
  85. /package/{src/Logger.ts → build/Logger.d.ts} +0 -0
  86. /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
- });
@@ -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"]];
@@ -1,4 +0,0 @@
1
- import { ModelDefinition } from "#definition/ModelDefinition.js";
2
-
3
- export type RelationName<Model extends ModelDefinition> =
4
- keyof Model["relations"];
File without changes