@mrnafisia/type-query 1.0.37 → 1.0.39

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 (49) hide show
  1. package/README.md +2 -2
  2. package/dist/U.d.ts +2 -2
  3. package/dist/U.js +27 -27
  4. package/dist/context.d.ts +987 -5
  5. package/dist/context.d.ts.map +1 -1
  6. package/dist/context.js +85 -85
  7. package/dist/dictionary.d.ts +12 -12
  8. package/dist/dictionary.js +179 -179
  9. package/dist/entity.d.ts +3474 -3306
  10. package/dist/entity.d.ts.map +1 -1
  11. package/dist/entity.js +961 -960
  12. package/dist/entity.js.map +1 -1
  13. package/dist/error.d.ts +4 -4
  14. package/dist/error.js +6 -6
  15. package/dist/index.d.ts +36 -36
  16. package/dist/index.js +60 -60
  17. package/dist/model.d.ts +1005 -1005
  18. package/dist/model.js +282 -282
  19. package/dist/parser.d.ts +11 -10
  20. package/dist/parser.d.ts.map +1 -1
  21. package/dist/parser.js +120 -120
  22. package/dist/parser.js.map +1 -1
  23. package/dist/pool.d.ts +5 -5
  24. package/dist/pool.js +121 -121
  25. package/dist/schema.d.ts +25 -25
  26. package/dist/schema.js +395 -395
  27. package/dist/testUtil.d.ts +4 -4
  28. package/dist/testUtil.js +330 -330
  29. package/dist/types/context.d.ts +55 -55
  30. package/dist/types/context.js +2 -2
  31. package/dist/types/entity.d.ts +70 -70
  32. package/dist/types/entity.js +2 -2
  33. package/dist/types/json.d.ts +8 -8
  34. package/dist/types/json.js +2 -2
  35. package/dist/types/model.d.ts +23 -23
  36. package/dist/types/model.js +2 -2
  37. package/dist/types/pool.d.ts +18 -18
  38. package/dist/types/pool.js +2 -2
  39. package/dist/types/postgres.d.ts +9 -9
  40. package/dist/types/postgres.js +2 -2
  41. package/dist/types/table.d.ts +234 -234
  42. package/dist/types/table.js +2 -2
  43. package/dist/types/testUtil.d.ts +26 -26
  44. package/dist/types/testUtil.js +2 -2
  45. package/dist/utils.d.ts +67 -67
  46. package/dist/utils.d.ts.map +1 -1
  47. package/dist/utils.js +220 -216
  48. package/dist/utils.js.map +1 -1
  49. package/package.json +39 -39
@@ -1,56 +1,56 @@
1
- import Decimal from 'decimal.js';
2
- import type Table from './table';
3
- import type { JSON } from './json';
4
- import type { ColumnTypeByColumns } from './postgres';
5
- import type { Expression, ValueExpression } from './entity';
6
- declare type Context<Columns extends Table['columns']> = {
7
- col: <columnKey extends keyof Columns & string>(column: columnKey, alias?: string) => ValueExpression<ColumnTypeByColumns<Columns, columnKey>>;
8
- colNull: <columnKey extends keyof Columns & string>(column: columnKey, op: null extends ColumnTypeByColumns<Columns, columnKey> ? NullOperator : never, alias?: string) => ValueExpression<boolean>;
9
- colBool: <columnKey extends keyof Columns & string>(column: columnKey, op: boolean extends ColumnTypeByColumns<Columns, columnKey> ? BooleanOperator : never, alias?: string) => ValueExpression<boolean>;
10
- colCmp: <columnKey extends keyof Columns & string>(column: columnKey, op: CompareOperatorCompatible<ColumnTypeByColumns<Columns, columnKey>, CompareOperator, never>, v: Expression<ColumnTypeByColumns<Columns, columnKey>>, alias?: string) => ValueExpression<boolean>;
11
- colList: <columnKey extends keyof Columns & string>(column: columnKey, op: ListOperatorCompatible<ColumnTypeByColumns<Columns, columnKey>, ListOperator, never>, v: Expression<ColumnTypeByColumns<Columns, columnKey>>[] | undefined, alias?: string) => ValueExpression<boolean>;
12
- colLike: <columnKey extends keyof Columns & string, Op extends (string extends ColumnTypeByColumns<Columns, columnKey> ? LikeOperator : never)>(column: columnKey, op: Op, v: Op extends 'like' ? Expression<ColumnTypeByColumns<Columns, columnKey>> : Expression<ColumnTypeByColumns<Columns, columnKey>>[] | undefined, alias?: string) => ValueExpression<boolean>;
13
- colJson: <columnKey extends keyof Columns & string, Op extends (JSON extends ColumnTypeByColumns<Columns, columnKey> ? JsonOperator : never)>(column: columnKey, op: Op, v: Op extends '@>' | '<@' ? Expression<ColumnTypeByColumns<Columns, columnKey>> : Op extends '?' ? Expression<string> : Op extends '?&' | '?|' ? Expression<string>[] | undefined : never, alias?: string) => ValueExpression<boolean>;
14
- colsAnd: ContextScope<Columns>;
15
- colsOr: ContextScope<Columns>;
16
- };
17
- declare type ContextScope<Columns extends Table['columns']> = (rules: {
18
- [columnKey in keyof Columns]?: [
19
- op: null extends ColumnTypeByColumns<Columns, columnKey> ? NullOperator : never
20
- ] | [
21
- op: ColumnTypeByColumns<Columns, columnKey> extends boolean ? BooleanOperator : never
22
- ] | [
23
- op: CompareOperatorCompatible<ColumnTypeByColumns<Columns, columnKey>, CompareOperator, never>,
24
- v: Expression<ColumnTypeByColumns<Columns, columnKey>>
25
- ] | [
26
- op: ListOperatorCompatible<ColumnTypeByColumns<Columns, columnKey>, ListOperator, never>,
27
- v: Expression<ColumnTypeByColumns<Columns, columnKey>>[] | undefined
28
- ] | [
29
- op: Extract<LikeOperator, 'like'>,
30
- v: ColumnTypeByColumns<Columns, columnKey> extends string ? Expression<ColumnTypeByColumns<Columns, columnKey>> : never
31
- ] | [
32
- op: Extract<LikeOperator, 'like some' | 'like all'>,
33
- v: ColumnTypeByColumns<Columns, columnKey> extends string ? Expression<ColumnTypeByColumns<Columns, columnKey>>[] | undefined : never
34
- ] | [
35
- op: Extract<JsonOperator, '@>' | '<@'>,
36
- v: ColumnTypeByColumns<Columns, columnKey> extends JSON ? Expression<ColumnTypeByColumns<Columns, columnKey>> : never
37
- ] | [
38
- op: Extract<JsonOperator, '?'>,
39
- v: ColumnTypeByColumns<Columns, columnKey> extends JSON ? Expression<string> : never
40
- ] | [
41
- op: Extract<JsonOperator, '?&' | '?|'>,
42
- v: ColumnTypeByColumns<Columns, columnKey> extends JSON ? Expression<string>[] | undefined : never
43
- ];
44
- }, alias?: string) => ValueExpression<boolean>;
45
- declare type CompareOperatorCompatible<T, True, False> = number extends T ? True : bigint extends T ? True : Decimal extends T ? True : string extends T ? True : Date extends T ? True : False;
46
- declare type ListOperatorCompatible<T, True, False> = number extends T ? True : bigint extends T ? True : Decimal extends T ? True : string extends T ? True : Date extends T ? True : False;
47
- declare type ArithmeticOperator = '+' | '-' | '*' | '/' | '**';
48
- declare type NullOperator = '= null' | '!= null';
49
- declare type BooleanOperator = '= true' | '= false';
50
- declare type CompareOperator = '=' | '!=' | '>' | '>=' | '<' | '<=';
51
- declare type ListOperator = 'in' | 'not in';
52
- declare type LikeOperator = 'like' | 'like all' | 'like some';
53
- declare type JsonOperator = '?' | '@>' | '<@' | '?|' | '?&';
54
- export type { Context, CompareOperatorCompatible, ListOperatorCompatible, ContextScope };
55
- export type { ArithmeticOperator, NullOperator, BooleanOperator, CompareOperator, ListOperator, LikeOperator, JsonOperator };
1
+ import Decimal from 'decimal.js';
2
+ import type Table from './table';
3
+ import type { JSON } from './json';
4
+ import type { ColumnTypeByColumns } from './postgres';
5
+ import type { Expression, ValueExpression } from './entity';
6
+ declare type Context<Columns extends Table['columns']> = {
7
+ col: <columnKey extends keyof Columns & string>(column: columnKey, alias?: string) => ValueExpression<ColumnTypeByColumns<Columns, columnKey>>;
8
+ colNull: <columnKey extends keyof Columns & string>(column: columnKey, op: null extends ColumnTypeByColumns<Columns, columnKey> ? NullOperator : never, alias?: string) => ValueExpression<boolean>;
9
+ colBool: <columnKey extends keyof Columns & string>(column: columnKey, op: boolean extends ColumnTypeByColumns<Columns, columnKey> ? BooleanOperator : never, alias?: string) => ValueExpression<boolean>;
10
+ colCmp: <columnKey extends keyof Columns & string>(column: columnKey, op: CompareOperatorCompatible<ColumnTypeByColumns<Columns, columnKey>, CompareOperator, never>, v: Expression<ColumnTypeByColumns<Columns, columnKey>>, alias?: string) => ValueExpression<boolean>;
11
+ colList: <columnKey extends keyof Columns & string>(column: columnKey, op: ListOperatorCompatible<ColumnTypeByColumns<Columns, columnKey>, ListOperator, never>, v: Expression<ColumnTypeByColumns<Columns, columnKey>>[] | undefined, alias?: string) => ValueExpression<boolean>;
12
+ colLike: <columnKey extends keyof Columns & string, Op extends (string extends ColumnTypeByColumns<Columns, columnKey> ? LikeOperator : never)>(column: columnKey, op: Op, v: Op extends 'like' ? Expression<ColumnTypeByColumns<Columns, columnKey>> : Expression<ColumnTypeByColumns<Columns, columnKey>>[] | undefined, alias?: string) => ValueExpression<boolean>;
13
+ colJson: <columnKey extends keyof Columns & string, Op extends (JSON extends ColumnTypeByColumns<Columns, columnKey> ? JsonOperator : never)>(column: columnKey, op: Op, v: Op extends '@>' | '<@' ? Expression<ColumnTypeByColumns<Columns, columnKey>> : Op extends '?' ? Expression<string> : Op extends '?&' | '?|' ? Expression<string>[] | undefined : never, alias?: string) => ValueExpression<boolean>;
14
+ colsAnd: ContextScope<Columns>;
15
+ colsOr: ContextScope<Columns>;
16
+ };
17
+ declare type ContextScope<Columns extends Table['columns']> = (rules: {
18
+ [columnKey in keyof Columns]?: [
19
+ op: null extends ColumnTypeByColumns<Columns, columnKey> ? NullOperator : never
20
+ ] | [
21
+ op: ColumnTypeByColumns<Columns, columnKey> extends boolean ? BooleanOperator : never
22
+ ] | [
23
+ op: CompareOperatorCompatible<ColumnTypeByColumns<Columns, columnKey>, CompareOperator, never>,
24
+ v: Expression<ColumnTypeByColumns<Columns, columnKey>>
25
+ ] | [
26
+ op: ListOperatorCompatible<ColumnTypeByColumns<Columns, columnKey>, ListOperator, never>,
27
+ v: Expression<ColumnTypeByColumns<Columns, columnKey>>[] | undefined
28
+ ] | [
29
+ op: Extract<LikeOperator, 'like'>,
30
+ v: ColumnTypeByColumns<Columns, columnKey> extends string ? Expression<ColumnTypeByColumns<Columns, columnKey>> : never
31
+ ] | [
32
+ op: Extract<LikeOperator, 'like some' | 'like all'>,
33
+ v: ColumnTypeByColumns<Columns, columnKey> extends string ? Expression<ColumnTypeByColumns<Columns, columnKey>>[] | undefined : never
34
+ ] | [
35
+ op: Extract<JsonOperator, '@>' | '<@'>,
36
+ v: ColumnTypeByColumns<Columns, columnKey> extends JSON ? Expression<ColumnTypeByColumns<Columns, columnKey>> : never
37
+ ] | [
38
+ op: Extract<JsonOperator, '?'>,
39
+ v: ColumnTypeByColumns<Columns, columnKey> extends JSON ? Expression<string> : never
40
+ ] | [
41
+ op: Extract<JsonOperator, '?&' | '?|'>,
42
+ v: ColumnTypeByColumns<Columns, columnKey> extends JSON ? Expression<string>[] | undefined : never
43
+ ];
44
+ }, alias?: string) => ValueExpression<boolean>;
45
+ declare type CompareOperatorCompatible<T, True, False> = number extends T ? True : bigint extends T ? True : Decimal extends T ? True : string extends T ? True : Date extends T ? True : False;
46
+ declare type ListOperatorCompatible<T, True, False> = number extends T ? True : bigint extends T ? True : Decimal extends T ? True : string extends T ? True : Date extends T ? True : False;
47
+ declare type ArithmeticOperator = '+' | '-' | '*' | '/' | '**';
48
+ declare type NullOperator = '= null' | '!= null';
49
+ declare type BooleanOperator = '= true' | '= false';
50
+ declare type CompareOperator = '=' | '!=' | '>' | '>=' | '<' | '<=';
51
+ declare type ListOperator = 'in' | 'not in';
52
+ declare type LikeOperator = 'like' | 'like all' | 'like some';
53
+ declare type JsonOperator = '?' | '@>' | '<@' | '?|' | '?&';
54
+ export type { Context, CompareOperatorCompatible, ListOperatorCompatible, ContextScope };
55
+ export type { ArithmeticOperator, NullOperator, BooleanOperator, CompareOperator, ListOperator, LikeOperator, JsonOperator };
56
56
  //# sourceMappingURL=context.d.ts.map
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=context.js.map
@@ -1,71 +1,71 @@
1
- import { JSON } from './json';
2
- import Decimal from 'decimal.js';
3
- import type Table from './table';
4
- import { Context } from './context';
5
- import type { ClientBase } from 'pg';
6
- import type { Result } from 'never-catch';
7
- import type { ColumnTypeByColumns } from './postgres';
8
- declare type JoinType = 'inner' | 'left' | 'right' | 'full';
9
- declare type Param = number | bigint | string;
10
- declare type QueryData = {
11
- sql: string;
12
- params: Param[];
13
- };
14
- declare type TableWithAlias = {
15
- table: Table;
16
- alias: string;
17
- };
18
- declare type JoinData = {
19
- joinType: JoinType;
20
- on: Expression<boolean> | ((contexts: {
21
- [k: string]: Context<Table['columns']>;
22
- }) => Expression<boolean>);
23
- };
24
- declare type Mode = [] | ['count', number] | ['get', 'one' | number];
25
- declare type CustomColumn<Exp extends Expression<ExpressionTypes>, As extends string> = {
26
- exp: Exp;
27
- as: As;
28
- };
29
- declare type NullableAndDefaultColumns<Columns extends Table['columns']> = {
30
- [columnKey in keyof Columns as true extends Columns[columnKey]['nullable'] ? columnKey : false extends Columns[columnKey]['default'] ? never : columnKey]: true extends Columns[columnKey]['nullable'] ? Columns[columnKey] : false extends Columns[columnKey]['default'] ? never : Columns[columnKey];
31
- };
32
- declare type AliasedColumns<Columns extends Table['columns'], Alias extends string> = {
33
- [key in keyof Columns as `${Alias}_${key & string}`]: Columns[key];
34
- };
35
- declare type TablesColumnsKeys<Tables extends {
36
- [key: string]: Table;
37
- }> = {
38
- [tableKey in keyof Tables & string]: `${tableKey}_${keyof Tables[tableKey]['columns'] & string}`;
39
- }[keyof {
40
- [tableKey in keyof Tables & string]: undefined;
41
- }];
42
- declare type ExpressionTypes = null | boolean | number | bigint | Decimal | string | Date | JSON;
43
- declare type Expression<ExpType extends ExpressionTypes> = ExpType | undefined | ValueExpression<ExpType> | QueryExpression<ExpType>;
44
- declare type ValueExpression<ExpType extends ExpressionTypes> = ['val', ExpType | undefined];
45
- declare type QueryExpression<ExpType extends ExpressionTypes> = ['qry', ExpType];
46
- declare type InsertValue<Columns extends Table['columns'], NullableAndDefaultCols extends readonly (keyof NullableAndDefaultColumns<Columns>)[]> = {
47
- [columnKey in Exclude<keyof Columns, keyof NullableAndDefaultColumns<Columns>>]: Expression<ColumnTypeByColumns<Columns, columnKey>>;
48
- } & {
49
- [columnKey in Exclude<keyof NullableAndDefaultCols, keyof unknown[]> as NullableAndDefaultCols[columnKey] & string]?: Expression<ColumnTypeByColumns<Columns, NullableAndDefaultCols[columnKey] & string>>;
50
- };
51
- declare type UpdateSets<Columns extends Table['columns']> = {
52
- [columnKey in keyof Columns & string]?: Expression<ColumnTypeByColumns<Columns, columnKey>>;
53
- };
54
- declare type Query<Columns extends Table['columns'], Returning extends readonly (keyof Columns | CustomColumn<Expression<ExpressionTypes>, string>)[]> = {
55
- getData: (params?: Param[]) => Result<QueryData, string>;
56
- exec: <M extends Mode>(client: ClientBase, mode: M, params?: Param[]) => Promise<Result<QueryResult<Columns, Returning, M>, unknown>>;
57
- };
58
- declare type QueryResult<Columns extends Table['columns'], Returning extends readonly (keyof Columns | CustomColumn<Expression<ExpressionTypes>, string>)[], M extends Mode> = M extends ['get', 'one'] ? QueryResultRow<Columns, Returning> : M extends ['get', number] | [] ? QueryResultRow<Columns, Returning>[] : M extends ['count', number] ? undefined : never;
59
- declare type QueryResultRow<Columns extends Table['columns'], Returning extends readonly (keyof Columns | CustomColumn<Expression<ExpressionTypes>, string>)[]> = {
60
- [key in Exclude<keyof Returning, keyof unknown[]> as Returning[key] extends CustomColumn<Expression<ExpressionTypes>, infer As> ? As : Returning[key] & string]: Returning[key] extends CustomColumn<infer Exp, string> ? Exp extends Expression<infer ExpType> ? ExpType : Exp : ColumnTypeByColumns<Columns, Returning[key] & keyof Columns>;
61
- };
62
- declare type PartialQuery = {
63
- text: string;
64
- params: Param[];
65
- };
66
- export type { JoinType, Param, QueryData, TableWithAlias, JoinData, Mode };
67
- export type { CustomColumn, NullableAndDefaultColumns, AliasedColumns, TablesColumnsKeys };
68
- export type { ExpressionTypes, Expression, ValueExpression, QueryExpression };
69
- export type { InsertValue, UpdateSets };
70
- export type { Query, QueryResult, QueryResultRow, PartialQuery };
1
+ import { JSON } from './json';
2
+ import Decimal from 'decimal.js';
3
+ import type Table from './table';
4
+ import { Context } from './context';
5
+ import type { ClientBase } from 'pg';
6
+ import type { Result } from 'never-catch';
7
+ import type { ColumnTypeByColumns } from './postgres';
8
+ declare type JoinType = 'inner' | 'left' | 'right' | 'full';
9
+ declare type Param = number | bigint | string;
10
+ declare type QueryData = {
11
+ sql: string;
12
+ params: Param[];
13
+ };
14
+ declare type TableWithAlias = {
15
+ table: Table;
16
+ alias: string;
17
+ };
18
+ declare type JoinData = {
19
+ joinType: JoinType;
20
+ on: Expression<boolean> | ((contexts: {
21
+ [k: string]: Context<Table['columns']>;
22
+ }) => Expression<boolean>);
23
+ };
24
+ declare type Mode = [] | ['count', number] | ['get', 'one' | number];
25
+ declare type CustomColumn<Exp extends Expression<ExpressionTypes>, As extends string> = {
26
+ exp: Exp;
27
+ as: As;
28
+ };
29
+ declare type NullableAndDefaultColumns<Columns extends Table['columns']> = {
30
+ [columnKey in keyof Columns as true extends Columns[columnKey]['nullable'] ? columnKey : false extends Columns[columnKey]['default'] ? never : columnKey]: true extends Columns[columnKey]['nullable'] ? Columns[columnKey] : false extends Columns[columnKey]['default'] ? never : Columns[columnKey];
31
+ };
32
+ declare type AliasedColumns<Columns extends Table['columns'], Alias extends string> = {
33
+ [key in keyof Columns as `${Alias}_${key & string}`]: Columns[key];
34
+ };
35
+ declare type TablesColumnsKeys<Tables extends {
36
+ [key: string]: Table;
37
+ }> = {
38
+ [tableKey in keyof Tables & string]: `${tableKey}_${keyof Tables[tableKey]['columns'] & string}`;
39
+ }[keyof {
40
+ [tableKey in keyof Tables & string]: undefined;
41
+ }];
42
+ declare type ExpressionTypes = null | boolean | number | bigint | Decimal | string | Date | JSON;
43
+ declare type Expression<ExpType extends ExpressionTypes> = ExpType | undefined | ValueExpression<ExpType> | QueryExpression<ExpType>;
44
+ declare type ValueExpression<ExpType extends ExpressionTypes> = ['val', ExpType | undefined];
45
+ declare type QueryExpression<ExpType extends ExpressionTypes> = ['qry', ExpType];
46
+ declare type InsertValue<Columns extends Table['columns'], NullableAndDefaultCols extends readonly (keyof NullableAndDefaultColumns<Columns>)[]> = {
47
+ [columnKey in Exclude<keyof Columns, keyof NullableAndDefaultColumns<Columns>>]: Expression<ColumnTypeByColumns<Columns, columnKey>>;
48
+ } & {
49
+ [columnKey in Exclude<keyof NullableAndDefaultCols, keyof unknown[]> as NullableAndDefaultCols[columnKey] & string]?: Expression<ColumnTypeByColumns<Columns, NullableAndDefaultCols[columnKey] & string>>;
50
+ };
51
+ declare type UpdateSets<Columns extends Table['columns']> = {
52
+ [columnKey in keyof Columns & string]?: Expression<ColumnTypeByColumns<Columns, columnKey>>;
53
+ };
54
+ declare type Query<Columns extends Table['columns'], Returning extends readonly (keyof Columns | CustomColumn<Expression<ExpressionTypes>, string>)[]> = {
55
+ getData: (params?: Param[]) => Result<QueryData, string>;
56
+ exec: <M extends Mode>(client: ClientBase, mode: M, params?: Param[]) => Promise<Result<QueryResult<Columns, Returning, M>, unknown>>;
57
+ };
58
+ declare type QueryResult<Columns extends Table['columns'], Returning extends readonly (keyof Columns | CustomColumn<Expression<ExpressionTypes>, string>)[], M extends Mode> = M extends ['get', 'one'] ? QueryResultRow<Columns, Returning> : M extends ['get', number] | [] ? QueryResultRow<Columns, Returning>[] : M extends ['count', number] ? undefined : never;
59
+ declare type QueryResultRow<Columns extends Table['columns'], Returning extends readonly (keyof Columns | CustomColumn<Expression<ExpressionTypes>, string>)[]> = {
60
+ [key in Exclude<keyof Returning, keyof unknown[]> as Returning[key] extends CustomColumn<Expression<ExpressionTypes>, infer As> ? As : Returning[key] & string]: Returning[key] extends CustomColumn<infer Exp, string> ? Exp extends Expression<infer ExpType> ? ExpType : Exp : ColumnTypeByColumns<Columns, Returning[key] & keyof Columns>;
61
+ };
62
+ declare type PartialQuery = {
63
+ text: string;
64
+ params: Param[];
65
+ };
66
+ export type { JoinType, Param, QueryData, TableWithAlias, JoinData, Mode };
67
+ export type { CustomColumn, NullableAndDefaultColumns, AliasedColumns, TablesColumnsKeys };
68
+ export type { ExpressionTypes, Expression, ValueExpression, QueryExpression };
69
+ export type { InsertValue, UpdateSets };
70
+ export type { Query, QueryResult, QueryResultRow, PartialQuery };
71
71
  //# sourceMappingURL=entity.d.ts.map
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=entity.js.map
@@ -1,9 +1,9 @@
1
- import Decimal from 'decimal.js';
2
- declare type JSON = JsonObject | JsonArray;
3
- declare type JsonObject = {
4
- [key: string]: BaseJsonValue;
5
- };
6
- declare type JsonArray = BaseJsonValue[];
7
- declare type BaseJsonValue = null | boolean | number | bigint | Decimal | string | Date | JsonObject | JsonArray;
8
- export type { JSON, JsonObject, JsonArray, BaseJsonValue };
1
+ import Decimal from 'decimal.js';
2
+ declare type JSON = JsonObject | JsonArray;
3
+ declare type JsonObject = {
4
+ [key: string]: BaseJsonValue;
5
+ };
6
+ declare type JsonArray = BaseJsonValue[];
7
+ declare type BaseJsonValue = null | boolean | number | bigint | Decimal | string | Date | JsonObject | JsonArray;
8
+ export type { JSON, JsonObject, JsonArray, BaseJsonValue };
9
9
  //# sourceMappingURL=json.d.ts.map
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=json.js.map
@@ -1,24 +1,24 @@
1
- import type Table from './table';
2
- import type { ColumnTypeByColumns } from './postgres';
3
- import { Result } from "never-catch";
4
- declare type SimpleModel<Columns extends Table['columns']> = {
5
- [col in keyof Columns & string]: ColumnTypeByColumns<Columns, col>;
6
- };
7
- declare type Model<Columns extends Table['columns'], Requires extends readonly (keyof Columns)[], Optionals extends readonly (keyof Columns)[]> = {
8
- [key in Exclude<keyof Requires, keyof unknown[]> as Requires[key] & string]: ColumnTypeByColumns<Columns, Requires[key] & keyof Columns>;
9
- } & {
10
- [key in Exclude<keyof Optionals, keyof unknown[]> as Optionals[key] & string]?: ColumnTypeByColumns<Columns, Optionals[key] & keyof Columns>;
11
- };
12
- declare type ModelUtils<Columns extends Table['columns']> = {
13
- Parse: <Requires extends readonly (keyof Columns)[], Optionals extends readonly (keyof Columns)[]>(data: {
14
- [key: string]: unknown;
15
- }, requires: Requires, optional: Optionals, validate?: boolean) => Result<Model<Columns, Requires, Optionals>, Requires[Exclude<keyof Requires, keyof unknown[]>] | Optionals[Exclude<keyof Optionals, keyof unknown[]>]>;
16
- Validate: <D extends Partial<SimpleModel<Columns>>>(data: D) => Result<undefined, keyof D>;
17
- } & {
18
- [key in keyof Columns]: {
19
- Parse: (v: unknown, validate?: boolean) => ColumnTypeByColumns<Columns, key> | undefined;
20
- Validate: (v: ColumnTypeByColumns<Columns, key>) => boolean;
21
- };
22
- };
23
- export type { SimpleModel, Model, ModelUtils };
1
+ import type Table from './table';
2
+ import type { ColumnTypeByColumns } from './postgres';
3
+ import { Result } from "never-catch";
4
+ declare type SimpleModel<Columns extends Table['columns']> = {
5
+ [col in keyof Columns & string]: ColumnTypeByColumns<Columns, col>;
6
+ };
7
+ declare type Model<Columns extends Table['columns'], Requires extends readonly (keyof Columns)[], Optionals extends readonly (keyof Columns)[]> = {
8
+ [key in Exclude<keyof Requires, keyof unknown[]> as Requires[key] & string]: ColumnTypeByColumns<Columns, Requires[key] & keyof Columns>;
9
+ } & {
10
+ [key in Exclude<keyof Optionals, keyof unknown[]> as Optionals[key] & string]?: ColumnTypeByColumns<Columns, Optionals[key] & keyof Columns>;
11
+ };
12
+ declare type ModelUtils<Columns extends Table['columns']> = {
13
+ Parse: <Requires extends readonly (keyof Columns)[], Optionals extends readonly (keyof Columns)[]>(data: {
14
+ [key: string]: unknown;
15
+ }, requires: Requires, optional: Optionals, validate?: boolean) => Result<Model<Columns, Requires, Optionals>, Requires[Exclude<keyof Requires, keyof unknown[]>] | Optionals[Exclude<keyof Optionals, keyof unknown[]>]>;
16
+ Validate: <D extends Partial<SimpleModel<Columns>>>(data: D) => Result<undefined, keyof D>;
17
+ } & {
18
+ [key in keyof Columns]: {
19
+ Parse: (v: unknown, validate?: boolean) => ColumnTypeByColumns<Columns, key> | undefined;
20
+ Validate: (v: ColumnTypeByColumns<Columns, key>) => boolean;
21
+ };
22
+ };
23
+ export type { SimpleModel, Model, ModelUtils };
24
24
  //# sourceMappingURL=model.d.ts.map
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=model.js.map
@@ -1,19 +1,19 @@
1
- import { Param } from './entity';
2
- import type { Pool as PgPool, PoolClient } from 'pg';
3
- import { Result } from "never-catch";
4
- declare type TransactionIsolationLevel = 'read-uncommitted' | 'read-committed' | 'repeatable-read' | 'serializable';
5
- declare type Pool = {
6
- $: PgPool;
7
- transaction: <R extends Result<unknown, unknown>>(callback: (client: PoolClient) => Promise<R>, isolationLevel?: TransactionIsolationLevel, readOnly?: boolean) => Promise<R>;
8
- };
9
- declare type OnSendQueryHook = (query: string, params: Param[]) => void;
10
- declare type AddHook = (hookAndEvent: {
11
- event: 'on-send-query';
12
- hook: OnSendQueryHook;
13
- }) => void;
14
- declare type RemoveHook = (hookAndEvent: {
15
- event: 'on-send-query';
16
- hook: OnSendQueryHook;
17
- }) => void;
18
- export type { TransactionIsolationLevel, Pool, OnSendQueryHook, AddHook, RemoveHook };
1
+ import { Param } from './entity';
2
+ import type { Pool as PgPool, PoolClient } from 'pg';
3
+ import { Result } from "never-catch";
4
+ declare type TransactionIsolationLevel = 'read-uncommitted' | 'read-committed' | 'repeatable-read' | 'serializable';
5
+ declare type Pool = {
6
+ $: PgPool;
7
+ transaction: <R extends Result<unknown, unknown>>(callback: (client: PoolClient) => Promise<R>, isolationLevel?: TransactionIsolationLevel, readOnly?: boolean) => Promise<R>;
8
+ };
9
+ declare type OnSendQueryHook = (query: string, params: Param[]) => void;
10
+ declare type AddHook = (hookAndEvent: {
11
+ event: 'on-send-query';
12
+ hook: OnSendQueryHook;
13
+ }) => void;
14
+ declare type RemoveHook = (hookAndEvent: {
15
+ event: 'on-send-query';
16
+ hook: OnSendQueryHook;
17
+ }) => void;
18
+ export type { TransactionIsolationLevel, Pool, OnSendQueryHook, AddHook, RemoveHook };
19
19
  //# sourceMappingURL=pool.d.ts.map
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=pool.js.map
@@ -1,10 +1,10 @@
1
- import Decimal from 'decimal.js';
2
- import type Table from './table';
3
- import type { JSON } from './json';
4
- declare type OrderDirection = 'asc' | 'desc';
5
- declare type PostgresType = 'boolean' | 'smallint' | 'integer' | 'bigint' | 'real' | 'double precision' | 'numeric' | 'character' | 'character varying' | 'text' | 'uuid' | 'date' | 'timestamp without time zone' | 'timestamp with time zone' | 'json' | 'jsonb';
6
- declare type PostgresTypeMapper<Type extends PostgresType, Nullable extends boolean> = Type extends 'boolean' ? (true extends Nullable ? null : never) | boolean : Type extends ('smallint' | 'integer' | 'real' | 'double precision') ? (true extends Nullable ? null : never) | number : Type extends 'bigint' ? (true extends Nullable ? null : never) | bigint : Type extends 'numeric' ? (true extends Nullable ? null : never) | Decimal : Type extends ('character' | 'character varying' | 'text' | 'uuid') ? (true extends Nullable ? null : never) | string : Type extends ('date' | 'timestamp without time zone' | 'timestamp with time zone') ? (true extends Nullable ? null : never) | Date : Type extends ('json' | 'jsonb') ? (true extends Nullable ? null : never) | JSON : never;
7
- declare type ColumnTypeByColumns<Columns extends Table['columns'], columnKey extends keyof Columns> = PostgresTypeMapper<Columns[columnKey]['type'], Columns[columnKey]['nullable']>;
8
- declare type ColumnTypeByTable<T extends Table, columnKey extends keyof T['columns']> = PostgresTypeMapper<T['columns'][columnKey]['type'], T['columns'][columnKey]['nullable']>;
9
- export type { OrderDirection, PostgresType, PostgresTypeMapper, ColumnTypeByColumns, ColumnTypeByTable };
1
+ import Decimal from 'decimal.js';
2
+ import type Table from './table';
3
+ import type { JSON } from './json';
4
+ declare type OrderDirection = 'asc' | 'desc';
5
+ declare type PostgresType = 'boolean' | 'smallint' | 'integer' | 'bigint' | 'real' | 'double precision' | 'numeric' | 'character' | 'character varying' | 'text' | 'uuid' | 'date' | 'timestamp without time zone' | 'timestamp with time zone' | 'json' | 'jsonb';
6
+ declare type PostgresTypeMapper<Type extends PostgresType, Nullable extends boolean> = Type extends 'boolean' ? (true extends Nullable ? null : never) | boolean : Type extends ('smallint' | 'integer' | 'real' | 'double precision') ? (true extends Nullable ? null : never) | number : Type extends 'bigint' ? (true extends Nullable ? null : never) | bigint : Type extends 'numeric' ? (true extends Nullable ? null : never) | Decimal : Type extends ('character' | 'character varying' | 'text' | 'uuid') ? (true extends Nullable ? null : never) | string : Type extends ('date' | 'timestamp without time zone' | 'timestamp with time zone') ? (true extends Nullable ? null : never) | Date : Type extends ('json' | 'jsonb') ? (true extends Nullable ? null : never) | JSON : never;
7
+ declare type ColumnTypeByColumns<Columns extends Table['columns'], columnKey extends keyof Columns> = PostgresTypeMapper<Columns[columnKey]['type'], Columns[columnKey]['nullable']>;
8
+ declare type ColumnTypeByTable<T extends Table, columnKey extends keyof T['columns']> = PostgresTypeMapper<T['columns'][columnKey]['type'], T['columns'][columnKey]['nullable']>;
9
+ export type { OrderDirection, PostgresType, PostgresTypeMapper, ColumnTypeByColumns, ColumnTypeByTable };
10
10
  //# sourceMappingURL=postgres.d.ts.map
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=postgres.js.map