drizzle-orm 0.12.0-beta.3 → 0.12.0-beta.4

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/column.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { ColumnData, ColumnDriverParam, ColumnHasDefault, ColumnNotNull, TableName, Unwrap } from './branded-types';
2
2
  import { ColumnBuilder } from './column-builder';
3
- import { BoundParamValue, ParamValueMapper } from './sql';
3
+ import { BoundParamValue, DriverValueMapper } from './sql';
4
4
  import { AnyTable } from './table';
5
- export declare abstract class Column<TTableName extends TableName<string>, TData extends ColumnData, TDriverParam extends ColumnDriverParam, TNotNull extends ColumnNotNull<boolean>, THasDefault extends ColumnHasDefault<boolean>> implements ParamValueMapper<any, any> {
5
+ export declare abstract class Column<TTableName extends TableName<string>, TData extends ColumnData, TDriverParam extends ColumnDriverParam, TNotNull extends ColumnNotNull<boolean>, THasDefault extends ColumnHasDefault<boolean>> implements DriverValueMapper<Unwrap<TData>, Unwrap<TDriverParam>> {
6
6
  readonly table: AnyTable<TTableName>;
7
7
  protected typeKeeper: {
8
8
  brand: 'Column';
@@ -17,17 +17,12 @@ export declare abstract class Column<TTableName extends TableName<string>, TData
17
17
  readonly notNull: TNotNull;
18
18
  readonly default: TData | undefined;
19
19
  constructor(table: AnyTable<TTableName>, builder: ColumnBuilder<TData, TDriverParam, TNotNull, THasDefault>);
20
- mapFromDriverValue: (value: any) => any;
21
- mapToDriverValue: (value: any) => any;
22
20
  abstract getSQLType(): string;
23
- }
24
- export declare abstract class ColumnWithMapper<TTableName extends TableName<string>, TData extends ColumnData, TDriverParam extends ColumnDriverParam, TNotNull extends ColumnNotNull<boolean>, THasDefault extends ColumnHasDefault<boolean>> extends Column<TTableName, TData, TDriverParam, TNotNull, THasDefault> implements ParamValueMapper<TData, TDriverParam> {
25
- mapFromDriverValue: (value: Unwrap<TDriverParam>) => Unwrap<TData>;
26
- mapToDriverValue: (value: Unwrap<TData>) => Unwrap<TDriverParam>;
21
+ mapFromDriverValue(value: Unwrap<TDriverParam>): Unwrap<TData>;
22
+ mapToDriverValue(value: Unwrap<TData>): Unwrap<TDriverParam>;
27
23
  }
28
24
  export declare type AnyColumn<TTableName extends TableName = TableName, TData extends ColumnData = any, TDriverParam extends ColumnDriverParam = any, TNotNull extends ColumnNotNull = ColumnNotNull, THasDefault extends ColumnHasDefault = ColumnHasDefault> = Column<TTableName, TData, TDriverParam, TNotNull, THasDefault>;
29
- export declare type AnyColumnWithMapper<TTableName extends TableName = TableName, TData extends ColumnData = any, TDriverParam extends ColumnDriverParam = any, TNotNull extends ColumnNotNull = ColumnNotNull, THasDefault extends ColumnHasDefault = ColumnHasDefault> = ColumnWithMapper<TTableName, TData, TDriverParam, TNotNull, THasDefault>;
30
- export declare function param<TDataType extends ColumnData, TDriverType extends ColumnDriverParam>(value: Unwrap<TDataType>, column: AnyColumn<any, TDataType, TDriverType>): BoundParamValue<TDataType, TDriverType>;
25
+ export declare function param<TData extends ColumnData, TDriver extends ColumnDriverParam>(value: Unwrap<TData>, mapper: DriverValueMapper<Unwrap<TData>, Unwrap<TDriver>>): BoundParamValue<TData, TDriver>;
31
26
  export declare type GetColumnData<TColumn, TInferMode extends 'query' | 'raw' = 'query'> = TColumn extends Column<any, infer TData, any, infer TNotNull, any> ? TInferMode extends 'raw' ? Unwrap<TData> : TNotNull extends true ? Unwrap<TData> : Unwrap<TData> | null : never;
32
27
  export declare type InferColumnDriverParam<TColumn extends AnyColumn> = TColumn extends Column<TableName, ColumnData, infer TDriverType, ColumnNotNull, ColumnHasDefault> ? Unwrap<TDriverType> : never;
33
28
  export declare type InferColumnsDataTypes<TColumns extends Record<string, AnyColumn>> = {
package/column.js CHANGED
@@ -1,41 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.param = exports.ColumnWithMapper = exports.Column = void 0;
3
+ exports.param = exports.Column = void 0;
4
4
  const sql_1 = require("./sql");
5
5
  class Column {
6
6
  constructor(table, builder) {
7
7
  this.table = table;
8
- /*
9
- mapFromDriverValue and mapToDriverValue are provided just as a runtime fallback - if you need to override them,
10
- extend the ColumnWithMapper class instead for proper type-checking.
11
- */
12
- this.mapFromDriverValue = (value) => {
13
- return value;
14
- };
15
- this.mapToDriverValue = (value) => {
16
- return value;
17
- };
18
8
  this.name = builder.name;
19
9
  this.notNull = builder._notNull;
20
10
  this.default = builder._default;
21
11
  this.primary = builder._primaryKey;
22
12
  }
23
- }
24
- exports.Column = Column;
25
- class ColumnWithMapper extends Column {
26
- constructor() {
27
- super(...arguments);
28
- this.mapFromDriverValue = (value) => {
29
- return value;
30
- };
31
- this.mapToDriverValue = (value) => {
32
- return value;
33
- };
13
+ mapFromDriverValue(value) {
14
+ return value;
15
+ }
16
+ mapToDriverValue(value) {
17
+ return value;
34
18
  }
35
19
  }
36
- exports.ColumnWithMapper = ColumnWithMapper;
37
- function param(value, column) {
38
- return new sql_1.BoundParamValue(value, column);
20
+ exports.Column = Column;
21
+ function param(value, mapper) {
22
+ return new sql_1.BoundParamValue(value, mapper);
39
23
  }
40
24
  exports.param = param;
41
25
  //# sourceMappingURL=column.js.map
package/column.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"column.js","sourceRoot":"","sources":["../src/column.ts"],"names":[],"mappings":";;;AAEA,+BAA0D;AAG1D,MAAsB,MAAM;IAqB3B,YACU,KAA2B,EACpC,OAAkE;QADzD,UAAK,GAAL,KAAK,CAAsB;QASrC;;;UAGE;QACF,uBAAkB,GAAG,CAAC,KAAU,EAAO,EAAE;YACxC,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;QAEF,qBAAgB,GAAG,CAAC,KAAU,EAAO,EAAE;YACtC,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;QAhBD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IACpC,CAAC;CAeD;AA5CD,wBA4CC;AAED,MAAsB,gBAMpB,SAAQ,MAA8D;IANxE;;QASU,uBAAkB,GAAG,CAAC,KAA2B,EAAiB,EAAE;YAC5E,OAAO,KAAY,CAAC;QACrB,CAAC,CAAC;QAEO,qBAAgB,GAAG,CAAC,KAAoB,EAAwB,EAAE;YAC1E,OAAO,KAAY,CAAC;QACrB,CAAC,CAAC;IACH,CAAC;CAAA;AAhBD,4CAgBC;AAkBD,SAAgB,KAAK,CACpB,KAAwB,EACxB,MAA8C;IAE9C,OAAO,IAAI,qBAAe,CAAC,KAAkB,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AALD,sBAKC"}
1
+ {"version":3,"file":"column.js","sourceRoot":"","sources":["../src/column.ts"],"names":[],"mappings":";;;AAEA,+BAA2D;AAG3D,MAAsB,MAAM;IAqB3B,YACU,KAA2B,EACpC,OAAkE;QADzD,UAAK,GAAL,KAAK,CAAsB;QAGpC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IACpC,CAAC;IAID,kBAAkB,CAAC,KAA2B;QAC7C,OAAO,KAAY,CAAC;IACrB,CAAC;IAED,gBAAgB,CAAC,KAAoB;QACpC,OAAO,KAAY,CAAC;IACrB,CAAC;CACD;AAxCD,wBAwCC;AAUD,SAAgB,KAAK,CACpB,KAAoB,EACpB,MAAyD;IAEzD,OAAO,IAAI,qBAAe,CAAC,KAAc,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AALD,sBAKC"}
package/operations.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import { ColumnData, ColumnDriverParam, TableName } from './branded-types';
2
2
  import { AnyColumn, Column } from './column';
3
- import { AnySQLResponse, SQLResponse } from './sql';
3
+ import { AnySQL, AnySQLResponse, SQL, SQLResponse } from './sql';
4
4
  export declare type RequiredKeyOnly<TKey extends string, T extends AnyColumn> = T extends Column<any, any, any, infer TNotNull, infer THasDefault> ? [TNotNull, THasDefault] extends [true, false] | [] ? TKey : never : never;
5
5
  export declare type OptionalKeyOnly<TKey extends string, T extends AnyColumn> = TKey extends RequiredKeyOnly<TKey, T> ? never : TKey;
6
6
  export declare type SelectFields<TTableName extends TableName, TColumnDriverParam extends ColumnDriverParam = ColumnDriverParam> = {
7
- [key: string]: SQLResponse<TTableName, ColumnData> | AnyColumn<TTableName, any, TColumnDriverParam>;
7
+ [key: string]: SQL<TTableName> | SQLResponse<TTableName, ColumnData> | AnyColumn<TTableName, any, TColumnDriverParam>;
8
8
  };
9
9
  export declare type SelectFieldsOrdered = {
10
10
  name: string;
11
11
  resultTableName: string;
12
- column: AnyColumn | AnySQLResponse;
12
+ column: AnyColumn | AnySQL | AnySQLResponse;
13
13
  }[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-orm",
3
- "version": "0.12.0-beta.3",
3
+ "version": "0.12.0-beta.4",
4
4
  "description": "Drizzle ORM package for SQL databases",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -1,12 +1,13 @@
1
1
  import { ColumnNotNull, TableName } from '../../branded-types';
2
2
  import { AnyColumn, GetColumnData } from '../../column';
3
3
  import { GetTableName } from '../../utils';
4
- import { SQL, SQLWrapper } from '..';
4
+ import { AnySQL, SQL, SQLWrapper } from '..';
5
5
  export declare function eq<TColumn extends AnyColumn>(column: TColumn, value: GetColumnData<TColumn, 'raw'>): SQL<GetTableName<TColumn>>;
6
6
  export declare function eq<TLeftTableName extends TableName, TRightTableName extends TableName>(left: AnyColumn<TLeftTableName>, right: AnyColumn<TRightTableName>): SQL<TLeftTableName | TRightTableName>;
7
7
  export declare function ne<TColumn extends AnyColumn>(column: TColumn, value: GetColumnData<TColumn>): SQL<GetTableName<TColumn>>;
8
8
  export declare function ne<TLeftTableName extends TableName, TRightTableName extends TableName>(left: AnyColumn<TLeftTableName>, right: AnyColumn<TRightTableName>): SQL<TLeftTableName | TRightTableName>;
9
- export declare function and<TTableName extends TableName>(...conditions: (SQL<TTableName> | undefined)[]): SQL<TTableName> | undefined;
9
+ declare type GetSQLListTableNames<T extends (AnySQL | undefined)[]> = T[number] extends SQL<infer TTableName> ? TTableName : never;
10
+ export declare function and<TSQL extends (AnySQL | undefined)[]>(...conditions: TSQL): SQL<GetSQLListTableNames<TSQL>> | undefined;
10
11
  export declare function or<TTableName extends TableName>(...conditions: (SQL<TTableName> | undefined)[]): SQL<TTableName> | undefined;
11
12
  export declare function not<TTableName extends TableName>(condition: SQL<TTableName>): SQL<TTableName>;
12
13
  export declare function gt<TColumn extends AnyColumn>(column: TColumn, value: GetColumnData<TColumn>): SQL<GetTableName<TColumn>>;
@@ -31,3 +32,4 @@ export declare function like<TTableName extends TableName, TColumn extends AnyCo
31
32
  export declare function notLike<TTableName extends TableName, TColumn extends AnyColumn<TTableName>>(column: TColumn, value: string): SQL<TTableName>;
32
33
  export declare function ilike<TTableName extends TableName, TColumn extends AnyColumn<TTableName>>(column: TColumn, value: string): SQL<TTableName>;
33
34
  export declare function notIlike<TTableName extends TableName, TColumn extends AnyColumn<TTableName>>(column: TColumn, value: string): SQL<TTableName>;
35
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../../src/sql/expressions/conditions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../../src/sql/expressions/conditions.ts"],"names":[],"mappings":"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"}
package/sql/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { ColumnData, ColumnDriverParam, TableName, Unwrap } from '../branded-types';
2
- import { AnyColumn, GetColumnData } from '../column';
2
+ import { AnyColumn } from '../column';
3
3
  import { AnyTable } from '../table';
4
- import { GetTableName } from '../utils';
5
4
  export declare class Param<TData = ColumnData | PrimitiveDriverParam> {
6
5
  readonly value: TData;
7
6
  constructor(value: TData);
@@ -28,7 +27,10 @@ export declare class SQL<TTableName extends TableName> implements SQLWrapper {
28
27
  constructor(queryChunks: Chunk<TTableName>[]);
29
28
  toQuery<TDriverParamType = unknown>({ escapeName, escapeParam }: BuildQueryConfig): PreparedQuery<ColumnDriverParam<TDriverParamType>>;
30
29
  getSQL(): AnySQL<TTableName>;
30
+ as<TDecoder extends DriverValueDecoder<any, any> | DriverValueDecoder<any, any>['mapFromDriverValue']>(decoder: TDecoder): SQLResponse<TTableName, GetDecoderColumnData<TDecoder>>;
31
+ as<TData>(): SQLResponse<TTableName, ColumnData<TData>>;
31
32
  }
33
+ export declare type GetDecoderColumnData<T> = T extends DriverValueDecoder<infer TData, any> ? ColumnData<TData> : T extends DriverValueDecoder<infer TData, any>['mapFromDriverValue'] ? ColumnData<TData> : never;
32
34
  export declare type AnySQL<TTableName extends TableName = TableName> = SQL<TTableName>;
33
35
  /**
34
36
  * Any DB name (table, column, index etc.)
@@ -38,15 +40,17 @@ export declare class Name {
38
40
  protected brand: 'Name';
39
41
  constructor(value: string);
40
42
  }
41
- export declare type ParamValueDecoder<TData extends ColumnData, TDriverParam extends ColumnDriverParam> = (value: Unwrap<TDriverParam>) => Unwrap<TData>;
42
- export declare const noopDecoder: ParamValueDecoder<any, any>;
43
- export declare type ParamValueEncoder<TData extends ColumnData, TDriverParam extends ColumnDriverParam> = (value: Unwrap<TData>) => Unwrap<TDriverParam>;
44
- export declare const noopEncoder: ParamValueEncoder<any, any>;
45
- export interface ParamValueMapper<TData extends ColumnData, TDriverParam extends ColumnDriverParam> {
46
- mapFromDriverValue: ParamValueDecoder<TData, TDriverParam>;
47
- mapToDriverValue: ParamValueEncoder<TData, TDriverParam>;
43
+ export interface DriverValueDecoder<TData, TDriverParam> {
44
+ mapFromDriverValue(value: TDriverParam): TData;
48
45
  }
49
- export declare const noopMapper: ParamValueMapper<any, any>;
46
+ export interface DriverValueEncoder<TData, TDriverParam> {
47
+ mapToDriverValue(value: TData): TDriverParam;
48
+ }
49
+ export declare const noopDecoder: DriverValueDecoder<any, any>;
50
+ export declare const noopEncoder: DriverValueEncoder<any, any>;
51
+ export interface DriverValueMapper<TData, TDriverParam> extends DriverValueDecoder<TData, TDriverParam>, DriverValueEncoder<TData, TDriverParam> {
52
+ }
53
+ export declare const noopMapper: DriverValueMapper<any, any>;
50
54
  /**
51
55
  * Parameter value that is bound to a specific mapper (usually, a column of a specific type)
52
56
  * @param value - Parameter value to bind
@@ -54,9 +58,9 @@ export declare const noopMapper: ParamValueMapper<any, any>;
54
58
  */
55
59
  export declare class BoundParamValue<TDataType extends ColumnData, TDriverParamType extends ColumnDriverParam> {
56
60
  readonly value: TDataType;
57
- readonly mapper: ParamValueMapper<TDataType, TDriverParamType>;
61
+ readonly mapper: DriverValueMapper<Unwrap<TDataType>, Unwrap<TDriverParamType>>;
58
62
  protected brand: 'BoundParamValue';
59
- constructor(value: TDataType, mapper: ParamValueMapper<TDataType, TDriverParamType>);
63
+ constructor(value: TDataType, mapper: DriverValueMapper<Unwrap<TDataType>, Unwrap<TDriverParamType>>);
60
64
  }
61
65
  export declare type AnyBoundParamValue = BoundParamValue<any, any>;
62
66
  export declare type SQLSourceParam<TTableName extends TableName> = SQLSourceParam<TTableName>[] | ColumnData | SQLWrapper | AnySQL<TTableName> | AnyTable<TTableName> | AnyColumn<TTableName> | AnyBoundParamValue | Name | PrimitiveDriverParam | undefined;
@@ -66,18 +70,6 @@ export declare function sql<TTableName extends string>(strings: TemplateStringsA
66
70
  export declare namespace sql {
67
71
  function empty(): AnySQL;
68
72
  function fromList<TTableName extends TableName = TableName>(list: SQLSourceParam<TTableName>[]): SQL<TTableName>;
69
- function response<TTableName extends TableName>(strings: TemplateStringsArray, ...params: (BoundParamValue<any, any> | ColumnData | SQLWrapper | PrimitiveDriverParam)[]): SQLResponse<TTableName, ColumnData>;
70
- function response<TColumn extends AnyColumn>(strings: TemplateStringsArray, ...params: (TColumn | BoundParamValue<any, any> | ColumnData | SQLWrapper | PrimitiveDriverParam)[]): SQLResponse<GetTableName<TColumn>, ColumnData<GetColumnData<TColumn>>>;
71
- namespace response {
72
- interface SQLResponseFunc<TData extends ColumnData> {
73
- <TTableName extends string>(strings: TemplateStringsArray, ...params: (SQLSourceParam<TableName<TTableName>> | ColumnData | PrimitiveDriverParam)[]): SQLResponse<TableName<TTableName>, TData>;
74
- }
75
- export function as<TData extends ColumnData>(): SQLResponseFunc<TData>;
76
- export function as<TData>(): SQLResponseFunc<ColumnData<TData>>;
77
- export function as<TData extends ColumnData>(decoder: AnyColumn<TableName, TData> | ParamValueDecoder<TData, ColumnDriverParam>): SQLResponseFunc<TData>;
78
- export function as<TData>(decoder: AnyColumn<TableName, ColumnData<TData>> | ParamValueDecoder<ColumnData<TData>, ColumnDriverParam>): SQLResponseFunc<ColumnData<TData>>;
79
- export {};
80
- }
81
73
  /**
82
74
  * Convenience function to create an SQL query from a raw string.
83
75
  * @param str The raw SQL query string.
@@ -86,12 +78,12 @@ export declare namespace sql {
86
78
  }
87
79
  export declare class SQLResponse<TTableName extends TableName, TValue extends ColumnData> {
88
80
  readonly sql: SQL<TTableName>;
89
- readonly decoder: ParamValueDecoder<TValue, any>;
81
+ readonly decoder: DriverValueDecoder<TValue, any>;
90
82
  protected typeKeeper: {
91
83
  brand: 'SQLResponse';
92
84
  tableName: TTableName;
93
85
  value: TValue;
94
86
  };
95
- constructor(sql: SQL<TTableName>, decoder: ParamValueDecoder<TValue, any>);
87
+ constructor(sql: SQL<TTableName>, decoder: DriverValueDecoder<TValue, any>);
96
88
  }
97
89
  export declare type AnySQLResponse<TTableName extends TableName = TableName> = SQLResponse<TTableName, any>;
package/sql/index.js CHANGED
@@ -53,6 +53,9 @@ class SQL {
53
53
  getSQL() {
54
54
  return this;
55
55
  }
56
+ as(decoder = exports.noopDecoder) {
57
+ return new SQLResponse(this, typeof decoder === 'function' ? { mapFromDriverValue: decoder } : decoder);
58
+ }
56
59
  }
57
60
  exports.SQL = SQL;
58
61
  /**
@@ -64,14 +67,13 @@ class Name {
64
67
  }
65
68
  }
66
69
  exports.Name = Name;
67
- const noopDecoder = (value) => value;
68
- exports.noopDecoder = noopDecoder;
69
- const noopEncoder = (value) => value;
70
- exports.noopEncoder = noopEncoder;
71
- exports.noopMapper = {
72
- mapFromDriverValue: exports.noopDecoder,
73
- mapToDriverValue: exports.noopEncoder,
70
+ exports.noopDecoder = {
71
+ mapFromDriverValue: (value) => value,
72
+ };
73
+ exports.noopEncoder = {
74
+ mapToDriverValue: (value) => value,
74
75
  };
76
+ exports.noopMapper = Object.assign(Object.assign({}, exports.noopDecoder), exports.noopEncoder);
75
77
  /**
76
78
  * Parameter value that is bound to a specific mapper (usually, a column of a specific type)
77
79
  * @param value - Parameter value to bind
@@ -138,21 +140,6 @@ exports.sql = sql;
138
140
  return new SQL(list.map(buildChunksFromParam).flat(1));
139
141
  }
140
142
  sql.fromList = fromList;
141
- function response(strings, ...params) {
142
- var _a, _b;
143
- const column = (_b = (_a = params.find((p) => p instanceof column_1.Column)) === null || _a === void 0 ? void 0 : _a.mapFromDriverValue) !== null && _b !== void 0 ? _b : exports.noopDecoder;
144
- return new SQLResponse(sql(strings, ...params), column);
145
- }
146
- sql.response = response;
147
- (function (response) {
148
- function as(decoder = exports.noopDecoder) {
149
- const responseSql = (strings, ...params) => {
150
- return new SQLResponse(sql(strings, ...params), decoder instanceof column_1.Column ? decoder.mapFromDriverValue : decoder);
151
- };
152
- return responseSql;
153
- }
154
- response.as = as;
155
- })(response = sql.response || (sql.response = {}));
156
143
  /**
157
144
  * Convenience function to create an SQL query from a raw string.
158
145
  * @param str The raw SQL query string.
package/sql/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sql/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sql/index.ts"],"names":[],"mappings":"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"}
package/utils.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mapResultRow = exports.getTableName = exports.tableColumns = exports.tableName = void 0;
4
4
  const column_1 = require("./column");
5
+ const sql_1 = require("./sql");
5
6
  /** @internal */
6
7
  exports.tableName = Symbol('tableName');
7
8
  /** @internal */
@@ -14,7 +15,10 @@ function mapResultRow(columns, row, joinsNotNullable) {
14
15
  const result = columns.reduce((res, { name, resultTableName, column: columnOrResponse }, index) => {
15
16
  let decoder;
16
17
  if (columnOrResponse instanceof column_1.Column) {
17
- decoder = columnOrResponse.mapFromDriverValue;
18
+ decoder = columnOrResponse;
19
+ }
20
+ else if (columnOrResponse instanceof sql_1.SQL) {
21
+ decoder = sql_1.noopDecoder;
18
22
  }
19
23
  else {
20
24
  decoder = columnOrResponse.decoder;
@@ -23,7 +27,7 @@ function mapResultRow(columns, row, joinsNotNullable) {
23
27
  res[resultTableName] = {};
24
28
  }
25
29
  const rawValue = row[index];
26
- res[resultTableName][name] = rawValue === null ? null : decoder(rawValue);
30
+ res[resultTableName][name] = rawValue === null ? null : decoder.mapFromDriverValue(rawValue);
27
31
  return res;
28
32
  }, {});
29
33
  if (Object.keys(result).length === 1) {
package/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AACA,qCAA6C;AAI7C,gBAAgB;AACH,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAE7C,gBAAgB;AACH,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAEnD,SAAgB,YAAY,CAA+B,KAA2B;IACrF,OAAO,KAAK,CAAC,iBAAS,CAAC,CAAC;AACzB,CAAC;AAFD,oCAEC;AAED,SAAgB,YAAY,CAC3B,OAA4B,EAC5B,GAAwB,EACxB,gBAA0C;IAE1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAC5B,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,EAAE;QACnE,IAAI,OAAO,CAAC;QACZ,IAAI,gBAAgB,YAAY,eAAM,EAAE;YACvC,OAAO,GAAG,gBAAgB,CAAC,kBAAkB,CAAC;SAC9C;aAAM;YACN,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;SACnC;QACD,IAAI,CAAC,CAAC,eAAe,IAAI,GAAG,CAAC,EAAE;YAC9B,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC;SAC1B;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAE,CAAC;QAC7B,GAAG,CAAC,eAAe,CAAE,CAAC,IAAI,CAAC,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAe,CAAC;QACzF,OAAO,GAAG,CAAC;IACZ,CAAC,EACD,EAAE,CACF,CAAC;IAEF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACrC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAY,CAAC;KAC3C;IAED,IAAI,CAAC,gBAAgB,EAAE;QACtB,OAAO,MAAiB,CAAC;KACzB;IAED,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE;QACvD,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;YACjC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;YAC9E,IAAI,CAAC,UAAU,EAAE;gBAChB,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;aACzB;SACD;QACD,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACjC,CAAC,CAAC,CACS,CAAC;AACd,CAAC;AA1CD,oCA0CC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AACA,qCAA6C;AAE7C,+BAAyC;AAGzC,gBAAgB;AACH,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAE7C,gBAAgB;AACH,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAEnD,SAAgB,YAAY,CAA+B,KAA2B;IACrF,OAAO,KAAK,CAAC,iBAAS,CAAC,CAAC;AACzB,CAAC;AAFD,oCAEC;AAED,SAAgB,YAAY,CAC3B,OAA4B,EAC5B,GAAwB,EACxB,gBAA0C;IAE1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAC5B,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,EAAE;QACnE,IAAI,OAAO,CAAC;QACZ,IAAI,gBAAgB,YAAY,eAAM,EAAE;YACvC,OAAO,GAAG,gBAAgB,CAAC;SAC3B;aAAM,IAAI,gBAAgB,YAAY,SAAG,EAAE;YAC3C,OAAO,GAAG,iBAAW,CAAC;SACtB;aAAM;YACN,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;SACnC;QACD,IAAI,CAAC,CAAC,eAAe,IAAI,GAAG,CAAC,EAAE;YAC9B,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC;SAC1B;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAE,CAAC;QAC7B,GAAG,CAAC,eAAe,CAAE,CAAC,IAAI,CAAC,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC9F,OAAO,GAAG,CAAC;IACZ,CAAC,EACD,EAAE,CACF,CAAC;IAEF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACrC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAY,CAAC;KAC3C;IAED,IAAI,CAAC,gBAAgB,EAAE;QACtB,OAAO,MAAiB,CAAC;KACzB;IAED,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE;QACvD,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;YACjC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;YAC9E,IAAI,CAAC,UAAU,EAAE;gBAChB,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;aACzB;SACD;QACD,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACjC,CAAC,CAAC,CACS,CAAC;AACd,CAAC;AA5CD,oCA4CC"}