@casekit/orm 0.0.1-alpha.8 → 0.0.1-alpha.9

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 (102) hide show
  1. package/lib/queries/clauses/ReturningClause.d.ts +2 -3
  2. package/lib/queries/clauses/ReturningClause.d.ts.map +1 -1
  3. package/lib/queries/clauses/SelectClause.d.ts +2 -3
  4. package/lib/queries/clauses/SelectClause.d.ts.map +1 -1
  5. package/lib/queries/clauses/WhereClause.d.ts +1 -1
  6. package/lib/queries/clauses/WhereClause.d.ts.map +1 -1
  7. package/lib/queries/clauses/helpers/OptionalColumn.d.ts +4 -5
  8. package/lib/queries/clauses/helpers/OptionalColumn.d.ts.map +1 -1
  9. package/lib/queries/clauses/helpers/OptionalParams.d.ts +2 -2
  10. package/lib/queries/clauses/helpers/OptionalParams.d.ts.map +1 -1
  11. package/lib/queries/clauses/helpers/RequiredColumn.d.ts +2 -3
  12. package/lib/queries/clauses/helpers/RequiredColumn.d.ts.map +1 -1
  13. package/lib/queries/clauses/helpers/RequiredParams.d.ts +2 -2
  14. package/lib/queries/clauses/helpers/RequiredParams.d.ts.map +1 -1
  15. package/lib/queries/clauses/where/types/WhereClauseValue.d.ts +1 -1
  16. package/lib/queries/clauses/where/types/WhereClauseValue.d.ts.map +1 -1
  17. package/lib/queries/create/types/CreateManyParams.d.ts +1 -1
  18. package/lib/queries/create/types/CreateManyParams.d.ts.map +1 -1
  19. package/lib/queries/create/types/CreateManyResult.d.ts +1 -1
  20. package/lib/queries/create/types/CreateManyResult.d.ts.map +1 -1
  21. package/lib/queries/create/types/CreateOneParams.d.ts +1 -1
  22. package/lib/queries/create/types/CreateOneParams.d.ts.map +1 -1
  23. package/lib/queries/create/types/CreateOneResult.d.ts +1 -1
  24. package/lib/queries/create/types/CreateOneResult.d.ts.map +1 -1
  25. package/lib/queries/delete/types/DeleteManyResult.d.ts +1 -1
  26. package/lib/queries/delete/types/DeleteManyResult.d.ts.map +1 -1
  27. package/lib/queries/delete/types/DeleteOneResult.d.ts +1 -1
  28. package/lib/queries/delete/types/DeleteOneResult.d.ts.map +1 -1
  29. package/lib/queries/delete/types/DeleteParams.d.ts +1 -1
  30. package/lib/queries/delete/types/DeleteParams.d.ts.map +1 -1
  31. package/lib/queries/find/types/FindManyParams.d.ts +2 -2
  32. package/lib/queries/find/types/FindManyParams.d.ts.map +1 -1
  33. package/lib/queries/find/types/FindOneParams.d.ts +1 -1
  34. package/lib/queries/find/types/FindOneParams.d.ts.map +1 -1
  35. package/lib/queries/update/types/UpdateManyResult.d.ts +1 -1
  36. package/lib/queries/update/types/UpdateManyResult.d.ts.map +1 -1
  37. package/lib/queries/update/types/UpdateOneResult.d.ts +1 -1
  38. package/lib/queries/update/types/UpdateOneResult.d.ts.map +1 -1
  39. package/lib/queries/update/types/UpdateParams.d.ts +1 -1
  40. package/lib/queries/update/types/UpdateParams.d.ts.map +1 -1
  41. package/lib/queries/update/types/UpdateValues.d.ts +1 -1
  42. package/lib/queries/update/types/UpdateValues.d.ts.map +1 -1
  43. package/lib/schema/types/helpers/ColumnName.d.ts +2 -3
  44. package/lib/schema/types/helpers/ColumnName.d.ts.map +1 -1
  45. package/lib/schema/types/helpers/ColumnType.d.ts +2 -2
  46. package/lib/schema/types/helpers/ColumnType.d.ts.map +1 -1
  47. package/lib/schema/types/helpers/Columns.d.ts +2 -3
  48. package/lib/schema/types/helpers/Columns.d.ts.map +1 -1
  49. package/lib/schema/types/helpers/HasDefault.d.ts +2 -3
  50. package/lib/schema/types/helpers/HasDefault.d.ts.map +1 -1
  51. package/lib/schema/types/helpers/IsNullable.d.ts +2 -3
  52. package/lib/schema/types/helpers/IsNullable.d.ts.map +1 -1
  53. package/lib/schema/types/helpers/IsProvided.d.ts +2 -3
  54. package/lib/schema/types/helpers/IsProvided.d.ts.map +1 -1
  55. package/lib/schema/types/helpers/IsSerial.d.ts +2 -3
  56. package/lib/schema/types/helpers/IsSerial.d.ts.map +1 -1
  57. package/lib/schema/types/relations/ManyToManyRelation.d.ts +2 -2
  58. package/lib/schema/types/relations/ManyToManyRelation.d.ts.map +1 -1
  59. package/lib/schema/types/relations/ManyToOneRelation.d.ts +1 -1
  60. package/lib/schema/types/relations/ManyToOneRelation.d.ts.map +1 -1
  61. package/lib/schema/types/relations/OneToManyRelation.d.ts +1 -1
  62. package/lib/schema/types/relations/OneToManyRelation.d.ts.map +1 -1
  63. package/lib/types/ModelType.d.ts +10 -3
  64. package/lib/types/ModelType.d.ts.map +1 -1
  65. package/package.json +1 -1
  66. package/src/queries/clauses/ReturningClause.ts +4 -6
  67. package/src/queries/clauses/SelectClause.ts +4 -6
  68. package/src/queries/clauses/WhereClause.ts +1 -1
  69. package/src/queries/clauses/helpers/OptionalColumn.ts +7 -11
  70. package/src/queries/clauses/helpers/OptionalParams.ts +2 -2
  71. package/src/queries/clauses/helpers/RequiredColumn.ts +5 -6
  72. package/src/queries/clauses/helpers/RequiredParams.ts +2 -2
  73. package/src/queries/clauses/where/types/WhereClauseValue.ts +1 -1
  74. package/src/queries/create/types/CreateManyParams.ts +1 -1
  75. package/src/queries/create/types/CreateManyResult.ts +1 -1
  76. package/src/queries/create/types/CreateOneParams.ts +1 -1
  77. package/src/queries/create/types/CreateOneResult.ts +1 -1
  78. package/src/queries/delete/types/DeleteManyResult.ts +1 -1
  79. package/src/queries/delete/types/DeleteOneResult.ts +1 -1
  80. package/src/queries/delete/types/DeleteParams.ts +1 -1
  81. package/src/queries/find/types/FindManyParams.ts +2 -2
  82. package/src/queries/find/types/FindOneParams.ts +1 -1
  83. package/src/queries/update/types/UpdateManyResult.ts +1 -1
  84. package/src/queries/update/types/UpdateOneResult.ts +1 -1
  85. package/src/queries/update/types/UpdateParams.ts +1 -1
  86. package/src/queries/update/types/UpdateValues.ts +1 -1
  87. package/src/schema/types/helpers/ColumnName.ts +5 -6
  88. package/src/schema/types/helpers/ColumnType.ts +2 -2
  89. package/src/schema/types/helpers/Columns.ts +2 -6
  90. package/src/schema/types/helpers/HasDefault.ts +5 -7
  91. package/src/schema/types/helpers/IsNullable.ts +4 -6
  92. package/src/schema/types/helpers/IsProvided.ts +4 -6
  93. package/src/schema/types/helpers/IsSerial.ts +4 -6
  94. package/src/schema/types/relations/ManyToManyRelation.ts +2 -2
  95. package/src/schema/types/relations/ManyToOneRelation.ts +1 -1
  96. package/src/schema/types/relations/OneToManyRelation.ts +1 -1
  97. package/src/types/ModelType.ts +16 -3
  98. package/lib/queries/clauses/helpers/ModelValues.d.ts +0 -8
  99. package/lib/queries/clauses/helpers/ModelValues.d.ts.map +0 -1
  100. package/lib/queries/clauses/helpers/ModelValues.js +0 -2
  101. package/lib/queries/clauses/helpers/ModelValues.js.map +0 -1
  102. package/src/queries/clauses/helpers/ModelValues.ts +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"OneToManyRelation.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/relations/OneToManyRelation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,MAAM,MAAM,iBAAiB,CAAC,MAAM,SAAS,qBAAqB,IAAI;KACjE,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG;QACvB,KAAK,EAAE,EAAE,CAAC;QACV,IAAI,EAAE,KAAK,CAAC;QACZ,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;KACtB;CACJ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"OneToManyRelation.d.ts","sourceRoot":"","sources":["../../../../src/schema/types/relations/OneToManyRelation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,MAAM,MAAM,iBAAiB,CAAC,MAAM,SAAS,qBAAqB,IAAI;KACjE,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG;QACvB,KAAK,EAAE,EAAE,CAAC;QACV,IAAI,EAAE,KAAK,CAAC;QACZ,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;KACtB;CACJ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC"}
@@ -1,7 +1,14 @@
1
+ import { IsNullable } from "../schema/types/helpers/IsNullable";
1
2
  import { LooseModelDefinition } from "../schema/types/loose/LooseModelDefinition";
2
3
  import { ColumnName } from "./ColumnName";
3
4
  import { ColumnType } from "./ColumnType";
4
- export type ModelType<Model extends LooseModelDefinition> = {
5
- [C in ColumnName<Model>]: ColumnType<Model, C>;
6
- };
5
+ import { Simplify } from "./util/Simplify";
6
+ export type NullableColumn<Model extends LooseModelDefinition> = {
7
+ [C in ColumnName<Model>]: IsNullable<Model, C> extends true ? C : never;
8
+ }[ColumnName<Model>];
9
+ export type ModelType<Model extends LooseModelDefinition> = Simplify<{
10
+ [C in Exclude<ColumnName<Model>, NullableColumn<Model>>]: ColumnType<Model, C>;
11
+ } & {
12
+ [C in NullableColumn<Model>]?: ColumnType<Model, C>;
13
+ }>;
7
14
  //# sourceMappingURL=ModelType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelType.d.ts","sourceRoot":"","sources":["../../src/types/ModelType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,oBAAoB,IAAI;KACvD,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;CACjD,CAAC"}
1
+ {"version":3,"file":"ModelType.d.ts","sourceRoot":"","sources":["../../src/types/ModelType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,oBAAoB,IAAI;KAC5D,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK;CAC1E,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAErB,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,oBAAoB,IAAI,QAAQ,CAChE;KACK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAChE,KAAK,EACL,CAAC,CACJ;CACJ,GAAG;KACC,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;CACtD,CACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@casekit/orm",
3
- "version": "0.0.1-alpha.8",
3
+ "version": "0.0.1-alpha.9",
4
4
  "description": "A simple ORM",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -1,9 +1,7 @@
1
1
  import { ColumnName } from "../../schema/types/helpers/ColumnName";
2
- import { ModelName } from "../../schema/types/helpers/ModelName";
3
- import { LooseModelDefinitions } from "../../schema/types/loose/LooseModelDefinitions";
2
+ import { LooseModelDefinition } from "../../schema/types/loose/LooseModelDefinition";
4
3
  import { NonEmptyArray } from "../../types/util/NonEmptyArray";
5
4
 
6
- export type ReturningClause<
7
- Models extends LooseModelDefinitions,
8
- M extends ModelName<Models>,
9
- > = NonEmptyArray<ColumnName<Models, M>>;
5
+ export type ReturningClause<Model extends LooseModelDefinition> = NonEmptyArray<
6
+ ColumnName<Model>
7
+ >;
@@ -1,9 +1,7 @@
1
1
  import { ColumnName } from "../../schema/types/helpers/ColumnName";
2
- import { ModelName } from "../../schema/types/helpers/ModelName";
3
- import { LooseModelDefinitions } from "../../schema/types/loose/LooseModelDefinitions";
2
+ import { LooseModelDefinition } from "../../schema/types/loose/LooseModelDefinition";
4
3
  import { NonEmptyArray } from "../../types/util/NonEmptyArray";
5
4
 
6
- export type SelectClause<
7
- Models extends LooseModelDefinitions,
8
- M extends ModelName<Models>,
9
- > = NonEmptyArray<ColumnName<Models, M>>;
5
+ export type SelectClause<Model extends LooseModelDefinition> = NonEmptyArray<
6
+ ColumnName<Model>
7
+ >;
@@ -8,7 +8,7 @@ export type WhereClause<
8
8
  Models extends LooseModelDefinitions,
9
9
  M extends ModelName<Models>,
10
10
  > = {
11
- [C in ColumnName<Models, M>]?: WhereClauseValue<Models, M, C>;
11
+ [C in ColumnName<Models[M]>]?: WhereClauseValue<Models, M, C>;
12
12
  } & {
13
13
  [$and]?: WhereClause<Models, M>[];
14
14
  [$or]?: WhereClause<Models, M>[];
@@ -3,20 +3,16 @@ import { HasDefault } from "../../../schema/types/helpers/HasDefault";
3
3
  import { IsNullable } from "../../../schema/types/helpers/IsNullable";
4
4
  import { IsProvided } from "../../../schema/types/helpers/IsProvided";
5
5
  import { IsSerial } from "../../../schema/types/helpers/IsSerial";
6
- import { ModelName } from "../../../schema/types/helpers/ModelName";
7
- import { LooseModelDefinitions } from "../../../schema/types/loose/LooseModelDefinitions";
6
+ import { LooseModelDefinition } from "../../../schema/types/loose/LooseModelDefinition";
8
7
 
9
- export type OptionalColumn<
10
- Models extends LooseModelDefinitions,
11
- M extends ModelName<Models>,
12
- > = {
13
- [C in ColumnName<Models, M>]: IsNullable<Models, M, C> extends true
8
+ export type OptionalColumn<Model extends LooseModelDefinition> = {
9
+ [C in ColumnName<Model>]: IsNullable<Model, C> extends true
14
10
  ? C
15
- : IsSerial<Models, M, C> extends true
11
+ : IsSerial<Model, C> extends true
16
12
  ? C
17
- : HasDefault<Models, M, C> extends true
13
+ : HasDefault<Model, C> extends true
18
14
  ? C
19
- : IsProvided<Models, M, C> extends true
15
+ : IsProvided<Model, C> extends true
20
16
  ? C
21
17
  : never;
22
- }[ColumnName<Models, M>];
18
+ }[ColumnName<Model>];
@@ -7,8 +7,8 @@ export type OptionalParams<
7
7
  Models extends LooseModelDefinitions,
8
8
  M extends ModelName<Models>,
9
9
  > =
10
- OptionalColumn<Models, M> extends never
10
+ OptionalColumn<Models[M]> extends never
11
11
  ? unknown
12
12
  : {
13
- [C in OptionalColumn<Models, M>]?: ColumnType<Models, M, C>;
13
+ [C in OptionalColumn<Models[M]>]?: ColumnType<Models, M, C>;
14
14
  };
@@ -1,9 +1,8 @@
1
1
  import { ColumnName } from "../../../schema/types/helpers/ColumnName";
2
- import { ModelName } from "../../../schema/types/helpers/ModelName";
3
- import { LooseModelDefinitions } from "../../../schema/types/loose/LooseModelDefinitions";
2
+ import { LooseModelDefinition } from "../../../schema/types/loose/LooseModelDefinition";
4
3
  import { OptionalColumn } from "./OptionalColumn";
5
4
 
6
- export type RequiredColumn<
7
- Models extends LooseModelDefinitions,
8
- M extends ModelName<Models>,
9
- > = Exclude<ColumnName<Models, M>, OptionalColumn<Models, M>>;
5
+ export type RequiredColumn<Model extends LooseModelDefinition> = Exclude<
6
+ ColumnName<Model>,
7
+ OptionalColumn<Model>
8
+ >;
@@ -7,8 +7,8 @@ export type RequiredParams<
7
7
  Models extends LooseModelDefinitions,
8
8
  M extends ModelName<Models>,
9
9
  > =
10
- RequiredColumn<Models, M> extends never
10
+ RequiredColumn<Models[M]> extends never
11
11
  ? unknown
12
12
  : {
13
- [C in RequiredColumn<Models, M>]: ColumnType<Models, M, C>;
13
+ [C in RequiredColumn<Models[M]>]: ColumnType<Models, M, C>;
14
14
  };
@@ -19,7 +19,7 @@ import {
19
19
  export type WhereClauseValue<
20
20
  Models extends LooseModelDefinitions,
21
21
  M extends ModelName<Models>,
22
- C extends ColumnName<Models, M>,
22
+ C extends ColumnName<Models[M]>,
23
23
  T = ColumnType<Models, M, C>,
24
24
  > =
25
25
  | ColumnType<Models, M, C>
@@ -8,7 +8,7 @@ export type CreateManyParams<
8
8
  M extends ModelName<Models>,
9
9
  > = {
10
10
  values: CreateValues<Models, M>[];
11
- returning?: ReturningClause<Models, M>;
11
+ returning?: ReturningClause<Models[M]>;
12
12
  onConflict?: {
13
13
  do: "nothing";
14
14
  };
@@ -10,7 +10,7 @@ export type CreateManyResult<
10
10
  M extends ModelName<Models>,
11
11
  P extends CreateOneParams<Models, M> | CreateManyParams<Models, M>,
12
12
  > =
13
- P["returning"] extends ReturningClause<Models, M>
13
+ P["returning"] extends ReturningClause<Models[M]>
14
14
  ? Readonly<{
15
15
  [C in P["returning"][number]]: ColumnType<Models, M, C>;
16
16
  }>[]
@@ -15,7 +15,7 @@ export type CreateOneParams<
15
15
  M extends ModelName<Models>,
16
16
  > = {
17
17
  values: CreateValues<Models, M>;
18
- returning?: ReturningClause<Models, M>;
18
+ returning?: ReturningClause<Models[M]>;
19
19
  onConflict?: {
20
20
  do: "nothing";
21
21
  };
@@ -10,7 +10,7 @@ export type CreateOneResult<
10
10
  M extends ModelName<Models>,
11
11
  P extends CreateOneParams<Models, M> | CreateManyParams<Models, M>,
12
12
  > =
13
- P["returning"] extends SelectClause<Models, M>
13
+ P["returning"] extends SelectClause<Models[M]>
14
14
  ? Readonly<{
15
15
  [C in P["returning"][number]]: ColumnType<Models, M, C>;
16
16
  }>
@@ -9,7 +9,7 @@ export type DeleteManyResult<
9
9
  M extends ModelName<Models>,
10
10
  P extends DeleteParams<Models, M>,
11
11
  > =
12
- P["returning"] extends ReturningClause<Models, M>
12
+ P["returning"] extends ReturningClause<Models[M]>
13
13
  ? Readonly<{
14
14
  [C in P["returning"][number]]: ColumnType<Models, M, C>;
15
15
  }>[]
@@ -9,7 +9,7 @@ export type DeleteOneResult<
9
9
  M extends ModelName<Models>,
10
10
  P extends DeleteParams<Models, M>,
11
11
  > =
12
- P["returning"] extends ReturningClause<Models, M>
12
+ P["returning"] extends ReturningClause<Models[M]>
13
13
  ? Readonly<{
14
14
  [C in P["returning"][number]]: ColumnType<Models, M, C>;
15
15
  }>
@@ -8,5 +8,5 @@ export type DeleteParams<
8
8
  M extends ModelName<Models>,
9
9
  > = {
10
10
  where: WhereClause<Models, M>;
11
- returning?: ReturningClause<Models, M>;
11
+ returning?: ReturningClause<Models[M]>;
12
12
  };
@@ -12,12 +12,12 @@ export type FindManyParams<
12
12
  Relations extends LooseRelationsDefinitions<Models>,
13
13
  M extends ModelName<Models>,
14
14
  > = {
15
- select: SelectClause<Models, M>;
15
+ select: SelectClause<Models[M]>;
16
16
  include?: IncludeClause<Models, Relations, M>;
17
17
  where?: WhereClause<Models, M>;
18
18
  limit?: number;
19
19
  offset?: number;
20
20
  orderBy?: NonEmptyArray<
21
- ColumnName<Models, M> | [ColumnName<Models, M>, "asc" | "desc"]
21
+ ColumnName<Models[M]> | [ColumnName<Models[M]>, "asc" | "desc"]
22
22
  >;
23
23
  };
@@ -10,7 +10,7 @@ export type FindOneParams<
10
10
  Relations extends LooseRelationsDefinitions<Models>,
11
11
  M extends ModelName<Models>,
12
12
  > = {
13
- select: SelectClause<Models, M>;
13
+ select: SelectClause<Models[M]>;
14
14
  where?: WhereClause<Models, M>;
15
15
  include?: IncludeClause<Models, Relations, M>;
16
16
  };
@@ -9,7 +9,7 @@ export type UpdateManyResult<
9
9
  M extends ModelName<Models>,
10
10
  P extends UpdateParams<Models, M>,
11
11
  > =
12
- P["returning"] extends ReturningClause<Models, M>
12
+ P["returning"] extends ReturningClause<Models[M]>
13
13
  ? Readonly<{
14
14
  [C in P["returning"][number]]: ColumnType<Models, M, C>;
15
15
  }>[]
@@ -9,7 +9,7 @@ export type UpdateOneResult<
9
9
  M extends ModelName<Models>,
10
10
  P extends UpdateParams<Models, M>,
11
11
  > =
12
- P["returning"] extends ReturningClause<Models, M>
12
+ P["returning"] extends ReturningClause<Models[M]>
13
13
  ? Readonly<{
14
14
  [C in P["returning"][number]]: ColumnType<Models, M, C>;
15
15
  }>
@@ -10,5 +10,5 @@ export type UpdateParams<
10
10
  > = {
11
11
  values: UpdateValues<Models, M>;
12
12
  where: WhereClause<Models, M>;
13
- returning?: ReturningClause<Models, M>;
13
+ returning?: ReturningClause<Models[M]>;
14
14
  };
@@ -8,5 +8,5 @@ export type UpdateValues<
8
8
  Models extends LooseModelDefinitions,
9
9
  M extends ModelName<Models>,
10
10
  > = Simplify<{
11
- [C in ColumnName<Models, M>]?: ColumnType<Models, M, C>;
11
+ [C in ColumnName<Models[M]>]?: ColumnType<Models, M, C>;
12
12
  }>;
@@ -1,7 +1,6 @@
1
- import { LooseModelDefinitions } from "../loose/LooseModelDefinitions";
2
- import { ModelName } from "./ModelName";
1
+ import { LooseModelDefinition } from "../loose/LooseModelDefinition";
3
2
 
4
- export type ColumnName<
5
- Models extends LooseModelDefinitions,
6
- M extends ModelName<Models>,
7
- > = Extract<keyof Models[M]["columns"], string>;
3
+ export type ColumnName<Model extends LooseModelDefinition> = Extract<
4
+ keyof Model["columns"],
5
+ string
6
+ >;
@@ -8,7 +8,7 @@ import { ModelName } from "./ModelName";
8
8
  type NonNullableColumnType<
9
9
  Models extends LooseModelDefinitions,
10
10
  M extends ModelName<Models>,
11
- C extends ColumnName<Models, M>,
11
+ C extends ColumnName<Models[M]>,
12
12
  > =
13
13
  Models[M]["columns"][C]["zodSchema"] extends z.ZodType<unknown>
14
14
  ? z.infer<Models[M]["columns"][C]["zodSchema"]>
@@ -17,7 +17,7 @@ type NonNullableColumnType<
17
17
  export type ColumnType<
18
18
  Models extends LooseModelDefinitions,
19
19
  M extends ModelName<Models>,
20
- C extends ColumnName<Models, M>,
20
+ C extends ColumnName<Models[M]>,
21
21
  > = Models[M]["columns"][C]["nullable"] extends true
22
22
  ? NonNullableColumnType<Models, M, C> | null
23
23
  : NonNullableColumnType<Models, M, C>;
@@ -1,7 +1,3 @@
1
- import { LooseModelDefinitions } from "../loose/LooseModelDefinitions";
2
- import { ModelName } from "./ModelName";
1
+ import { LooseModelDefinition } from "../loose/LooseModelDefinition";
3
2
 
4
- export type Columns<
5
- Models extends LooseModelDefinitions,
6
- M extends ModelName<Models>,
7
- > = Models[M]["columns"];
3
+ export type Columns<Model extends LooseModelDefinition> = Model["columns"];
@@ -1,13 +1,11 @@
1
- import { LooseModelDefinitions } from "../loose/LooseModelDefinitions";
1
+ import { LooseModelDefinition } from "../loose/LooseModelDefinition";
2
2
  import { Columns } from "./Columns";
3
- import { ModelName } from "./ModelName";
4
3
 
5
4
  export type HasDefault<
6
- Models extends LooseModelDefinitions,
7
- M extends ModelName<Models>,
8
- C extends keyof Columns<Models, M>,
9
- > = null extends Columns<Models, M>[C]["default"]
5
+ Model extends LooseModelDefinition,
6
+ C extends keyof Columns<Model>,
7
+ > = null extends Columns<Model>[C]["default"]
10
8
  ? false
11
- : undefined extends Columns<Models, M>[C]["default"]
9
+ : undefined extends Columns<Model>[C]["default"]
12
10
  ? false
13
11
  : true;
@@ -1,9 +1,7 @@
1
- import { LooseModelDefinitions } from "../loose/LooseModelDefinitions";
1
+ import { LooseModelDefinition } from "../loose/LooseModelDefinition";
2
2
  import { Columns } from "./Columns";
3
- import { ModelName } from "./ModelName";
4
3
 
5
4
  export type IsNullable<
6
- Models extends LooseModelDefinitions,
7
- M extends ModelName<Models>,
8
- C extends keyof Columns<Models, M>,
9
- > = Columns<Models, M>[C]["nullable"] extends true ? true : false;
5
+ Model extends LooseModelDefinition,
6
+ C extends keyof Columns<Model>,
7
+ > = Columns<Model>[C]["nullable"] extends true ? true : false;
@@ -1,10 +1,8 @@
1
- import { LooseModelDefinitions } from "../loose/LooseModelDefinitions";
1
+ import { LooseModelDefinition } from "../loose/LooseModelDefinition";
2
2
  import { ColumnName } from "./ColumnName";
3
3
  import { Columns } from "./Columns";
4
- import { ModelName } from "./ModelName";
5
4
 
6
5
  export type IsProvided<
7
- Models extends LooseModelDefinitions,
8
- M extends ModelName<Models>,
9
- C extends ColumnName<Models, M>,
10
- > = Columns<Models, M>[C]["provided"];
6
+ Model extends LooseModelDefinition,
7
+ C extends ColumnName<Model>,
8
+ > = Columns<Model>[C]["provided"];
@@ -1,12 +1,10 @@
1
- import { LooseModelDefinitions } from "../loose/LooseModelDefinitions";
1
+ import { LooseModelDefinition } from "../loose/LooseModelDefinition";
2
2
  import { ColumnName } from "./ColumnName";
3
3
  import { Columns } from "./Columns";
4
- import { ModelName } from "./ModelName";
5
4
 
6
5
  export type IsSerial<
7
- Models extends LooseModelDefinitions,
8
- M extends ModelName<Models>,
9
- C extends ColumnName<Models, M>,
10
- > = Columns<Models, M>[C]["type"] extends "serial" | "bigserial" | "smallserial"
6
+ Model extends LooseModelDefinition,
7
+ C extends ColumnName<Model>,
8
+ > = Columns<Model>[C]["type"] extends "serial" | "bigserial" | "smallserial"
11
9
  ? true
12
10
  : false;
@@ -8,8 +8,8 @@ export type ManyToManyRelation<Models extends LooseModelDefinitions> = {
8
8
  model: M2;
9
9
  through: J;
10
10
  type: "N:N";
11
- foreignKey: ColumnName<Models, J> | ColumnName<Models, J>[];
12
- otherKey: ColumnName<Models, J> | ColumnName<Models, J>[];
11
+ foreignKey: ColumnName<Models[J]> | ColumnName<Models[J]>[];
12
+ otherKey: ColumnName<Models[J]> | ColumnName<Models[J]>[];
13
13
  };
14
14
  };
15
15
  }[ModelName<Models>][ModelName<Models>];
@@ -9,6 +9,6 @@ export type ManyToOneRelation<
9
9
  [M2 in ModelName<Models>]: {
10
10
  model: M2;
11
11
  type: "N:1";
12
- foreignKey: ColumnName<Models, M> | ColumnName<Models, M>[];
12
+ foreignKey: ColumnName<Models[M]> | ColumnName<Models[M]>[];
13
13
  };
14
14
  }[ModelName<Models>];
@@ -6,7 +6,7 @@ export type OneToManyRelation<Models extends LooseModelDefinitions> = {
6
6
  [M2 in ModelName<Models>]: {
7
7
  model: M2;
8
8
  type: "1:N";
9
- foreignKey: ColumnName<Models, M2> | ColumnName<Models, M2>[];
9
+ foreignKey: ColumnName<Models[M2]> | ColumnName<Models[M2]>[];
10
10
  optional?: boolean;
11
11
  };
12
12
  }[ModelName<Models>];
@@ -1,7 +1,20 @@
1
+ import { IsNullable } from "../schema/types/helpers/IsNullable";
1
2
  import { LooseModelDefinition } from "../schema/types/loose/LooseModelDefinition";
2
3
  import { ColumnName } from "./ColumnName";
3
4
  import { ColumnType } from "./ColumnType";
5
+ import { Simplify } from "./util/Simplify";
4
6
 
5
- export type ModelType<Model extends LooseModelDefinition> = {
6
- [C in ColumnName<Model>]: ColumnType<Model, C>;
7
- };
7
+ export type NullableColumn<Model extends LooseModelDefinition> = {
8
+ [C in ColumnName<Model>]: IsNullable<Model, C> extends true ? C : never;
9
+ }[ColumnName<Model>];
10
+
11
+ export type ModelType<Model extends LooseModelDefinition> = Simplify<
12
+ {
13
+ [C in Exclude<ColumnName<Model>, NullableColumn<Model>>]: ColumnType<
14
+ Model,
15
+ C
16
+ >;
17
+ } & {
18
+ [C in NullableColumn<Model>]?: ColumnType<Model, C>;
19
+ }
20
+ >;
@@ -1,8 +0,0 @@
1
- import { ColumnName } from "../../../schema/types/helpers/ColumnName";
2
- import { ColumnType } from "../../../schema/types/helpers/ColumnType";
3
- import { ModelName } from "../../../schema/types/helpers/ModelName";
4
- import { LooseModelDefinitions } from "../../../schema/types/loose/LooseModelDefinitions";
5
- export type ModelValues<Models extends LooseModelDefinitions, M extends ModelName<Models>> = {
6
- [C in ColumnName<Models, M>]: ColumnType<Models, M, C>;
7
- };
8
- //# sourceMappingURL=ModelValues.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModelValues.d.ts","sourceRoot":"","sources":["../../../../src/queries/clauses/helpers/ModelValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAE1F,MAAM,MAAM,WAAW,CACnB,MAAM,SAAS,qBAAqB,EACpC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,IAC3B;KAAG,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;CAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ModelValues.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModelValues.js","sourceRoot":"","sources":["../../../../src/queries/clauses/helpers/ModelValues.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import { ColumnName } from "../../../schema/types/helpers/ColumnName";
2
- import { ColumnType } from "../../../schema/types/helpers/ColumnType";
3
- import { ModelName } from "../../../schema/types/helpers/ModelName";
4
- import { LooseModelDefinitions } from "../../../schema/types/loose/LooseModelDefinitions";
5
-
6
- export type ModelValues<
7
- Models extends LooseModelDefinitions,
8
- M extends ModelName<Models>,
9
- > = { [C in ColumnName<Models, M>]: ColumnType<Models, M, C> };