drizzle-orm 0.12.0-beta.5 → 0.12.0-beta.7

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/alias.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ import { AnyColumn } from './column';
2
+ import { Table } from './table';
3
+ export declare class ColumnAliasProxyHandler<TColumn extends AnyColumn> implements ProxyHandler<TColumn> {
4
+ private table;
5
+ constructor(table: Table);
6
+ get(columnObj: TColumn, prop: string | symbol, receiver: any): any;
7
+ }
8
+ export declare class TableAliasProxyHandler implements ProxyHandler<Table> {
9
+ private alias;
10
+ constructor(alias: string);
11
+ get(tableObj: Table, prop: string | symbol, receiver: any): any;
12
+ }
package/alias.js ADDED
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TableAliasProxyHandler = exports.ColumnAliasProxyHandler = void 0;
4
+ const column_1 = require("./column");
5
+ const table_1 = require("./table");
6
+ class ColumnAliasProxyHandler {
7
+ constructor(table) {
8
+ this.table = table;
9
+ }
10
+ get(columnObj, prop, receiver) {
11
+ if (prop === 'table') {
12
+ return this.table;
13
+ }
14
+ return columnObj[prop];
15
+ }
16
+ }
17
+ exports.ColumnAliasProxyHandler = ColumnAliasProxyHandler;
18
+ class TableAliasProxyHandler {
19
+ constructor(alias) {
20
+ this.alias = alias;
21
+ }
22
+ get(tableObj, prop, receiver) {
23
+ if (prop === table_1.Table.Symbol.Name) {
24
+ return this.alias;
25
+ }
26
+ if (prop === table_1.Table.Symbol.Columns) {
27
+ const proxiedColumns = {};
28
+ Object.keys(tableObj[table_1.Table.Symbol.Columns]).map((key) => {
29
+ proxiedColumns[key] = new Proxy(tableObj[table_1.Table.Symbol.Columns][key], new ColumnAliasProxyHandler(new Proxy(tableObj, this)));
30
+ });
31
+ return proxiedColumns;
32
+ }
33
+ const value = tableObj[prop];
34
+ if (value instanceof column_1.Column) {
35
+ return new Proxy(value, new ColumnAliasProxyHandler(new Proxy(tableObj, this)));
36
+ }
37
+ return value;
38
+ }
39
+ }
40
+ exports.TableAliasProxyHandler = TableAliasProxyHandler;
41
+ //# sourceMappingURL=alias.js.map
package/alias.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alias.js","sourceRoot":"","sources":["../src/alias.ts"],"names":[],"mappings":";;;AAAA,qCAA6C;AAC7C,mCAAgC;AAEhC,MAAa,uBAAuB;IACnC,YAA2B,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAEpC,GAAG,CAAC,SAAkB,EAAE,IAAqB,EAAE,QAAa;QAClE,IAAI,IAAI,KAAK,OAAO,EAAE;YACrB,OAAO,IAAI,CAAC,KAAK,CAAC;SAClB;QACD,OAAO,SAAS,CAAC,IAAqB,CAAC,CAAC;IACzC,CAAC;CACD;AATD,0DASC;AAED,MAAa,sBAAsB;IAClC,YAA2B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAErC,GAAG,CAAC,QAAe,EAAE,IAAqB,EAAE,QAAa;QAC/D,IAAI,IAAI,KAAK,aAAK,CAAC,MAAM,CAAC,IAAI,EAAE;YAC/B,OAAO,IAAI,CAAC,KAAK,CAAC;SAClB;QACD,IAAI,IAAI,KAAK,aAAK,CAAC,MAAM,CAAC,OAAO,EAAE;YAClC,MAAM,cAAc,GAA2B,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvD,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,CAC9B,QAAQ,CAAC,aAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAE,EACpC,IAAI,uBAAuB,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CACtD,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,cAAc,CAAC;SACtB;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAmB,CAAC,CAAC;QAC5C,IAAI,KAAK,YAAY,eAAM,EAAE;YAC5B,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,uBAAuB,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;SAChF;QAED,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AAzBD,wDAyBC"}
@@ -1,15 +1,31 @@
1
- import { ColumnData, ColumnDriverParam, ColumnHasDefault, ColumnNotNull, Unwrap } from './branded-types';
2
- import { AnySQL } from './sql';
3
- export declare abstract class ColumnBuilder<TData extends ColumnData, TDriverParam extends ColumnDriverParam, TNotNull extends ColumnNotNull<boolean>, THasDefault extends ColumnHasDefault<boolean>> {
4
- protected typeKeeper: {
5
- brand: 'ColumnBuilder';
6
- data: TData;
7
- driverParam: TDriverParam;
8
- notNull: TNotNull;
9
- default: THasDefault;
1
+ import { SQL } from './sql';
2
+ import { RequiredKeys } from './utils';
3
+ export interface ColumnBuilderBaseConfig {
4
+ data: unknown;
5
+ driverParam: unknown;
6
+ notNull: boolean;
7
+ hasDefault: boolean;
8
+ }
9
+ export declare type ColumnBuilderConfig<TPartial extends Partial<ColumnBuilderBaseConfig> = {}> = UpdateColumnBuilderConfig<ColumnBuilderBaseConfig & {
10
+ notNull: false;
11
+ hasDefault: false;
12
+ }, TPartial>;
13
+ export declare type UpdateColumnBuilderConfig<T extends ColumnBuilderBaseConfig, TUpdate extends Partial<ColumnBuilderBaseConfig>> = {} extends TUpdate ? T : RequiredKeys<Omit<T, keyof TUpdate> & Pick<TUpdate, keyof ColumnBuilderBaseConfig>>;
14
+ export declare abstract class ColumnBuilder<T extends ColumnBuilderBaseConfig> {
15
+ protected $config: T;
16
+ protected $brand: {
17
+ type: 'ColumnBuilder';
18
+ subtype: string;
10
19
  };
11
20
  constructor(name: string);
12
- notNull(): ColumnBuilder<TData, TDriverParam, ColumnNotNull<true>, THasDefault>;
13
- default(value: Unwrap<TData> | AnySQL): ColumnBuilder<TData, TDriverParam, TNotNull, ColumnHasDefault<true>>;
14
- primaryKey(): ColumnBuilder<TData, TDriverParam, ColumnNotNull<true>, THasDefault>;
21
+ notNull(): ColumnBuilder<UpdateColumnBuilderConfig<T, {
22
+ notNull: true;
23
+ }>>;
24
+ default(value: T['data'] | SQL): ColumnBuilder<UpdateColumnBuilderConfig<T, {
25
+ hasDefault: true;
26
+ }>>;
27
+ primaryKey(): ColumnBuilder<UpdateColumnBuilderConfig<T, {
28
+ notNull: true;
29
+ }>>;
15
30
  }
31
+ export declare type AnyColumnBuilder<TPartial extends Partial<ColumnBuilderBaseConfig> = {}> = ColumnBuilder<UpdateColumnBuilderConfig<ColumnBuilderBaseConfig, TPartial>>;
package/column-builder.js CHANGED
@@ -1,22 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ColumnBuilder = void 0;
4
+ // To understand how to use `ColumnBuilder` and `AnyColumnBuilder`, see `Column` and `AnyColumn` documentation.
4
5
  class ColumnBuilder {
5
6
  constructor(name) {
6
- /** @internal */ this._notNull = false;
7
- /** @internal */ this._primaryKey = false;
8
- this.name = name;
7
+ this.config = {
8
+ name,
9
+ notNull: false,
10
+ default: undefined,
11
+ primaryKey: false,
12
+ };
9
13
  }
10
14
  notNull() {
11
- this._notNull = true;
15
+ this.config.notNull = true;
12
16
  return this;
13
17
  }
14
18
  default(value) {
15
- this._default = value;
19
+ this.config.default = value;
16
20
  return this;
17
21
  }
18
22
  primaryKey() {
19
- this._primaryKey = true;
23
+ this.config.primaryKey = true;
20
24
  return this;
21
25
  }
22
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"column-builder.js","sourceRoot":"","sources":["../src/column-builder.ts"],"names":[],"mappings":";;;AAKA,MAAsB,aAAa;IAmBlC,YAAY,IAAY;QALxB,gBAAgB,CAAC,aAAQ,GAAG,KAAiB,CAAC;QAE9C,gBAAgB,CAAC,gBAAW,GAAG,KAAK,CAAC;QAIpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,OAAO;QACN,IAAI,CAAC,QAAQ,GAAG,IAAgB,CAAC;QACjC,OAAO,IAAmC,CAAC;IAC5C,CAAC;IAED,OAAO,CACN,KAA6B;QAE7B,IAAI,CAAC,QAAQ,GAAG,KAAc,CAAC;QAC/B,OAAO,IAAmC,CAAC;IAC5C,CAAC;IAED,UAAU;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,IAAsC,CAAC;IAC/C,CAAC;CAMD;AA5CD,sCA4CC"}
1
+ {"version":3,"file":"column-builder.js","sourceRoot":"","sources":["../src/column-builder.ts"],"names":[],"mappings":";;;AAuBA,+GAA+G;AAC/G,MAAsB,aAAa;IAelC,YAAY,IAAY;QACvB,IAAI,CAAC,MAAM,GAAG;YACb,IAAI;YACJ,OAAO,EAAE,KAAqB;YAC9B,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,KAAK;SACjB,CAAC;IACH,CAAC;IAED,OAAO;QACN,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAoB,CAAC;QAC3C,OAAO,IAAmC,CAAC;IAC5C,CAAC;IAED,OAAO,CACN,KAAsB;QAEtB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;QAC5B,OAAO,IAAmC,CAAC;IAC5C,CAAC;IAED,UAAU;QACT,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QAC9B,OAAO,IAAsC,CAAC;IAC/C,CAAC;CACD;AAxCD,sCAwCC"}
package/column.d.ts CHANGED
@@ -1,31 +1,43 @@
1
- import { ColumnData, ColumnDriverParam, ColumnHasDefault, ColumnNotNull, TableName, Unwrap } from './branded-types';
2
- import { ColumnBuilder } from './column-builder';
3
- import { BoundParamValue, DriverValueMapper } from './sql';
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 DriverValueMapper<Unwrap<TData>, Unwrap<TDriverParam>> {
6
- readonly table: AnyTable<TTableName>;
7
- protected typeKeeper: {
8
- brand: 'Column';
9
- tableName: TTableName;
10
- type: TData;
11
- driverType: TDriverParam;
12
- notNull: TNotNull;
13
- default: THasDefault;
14
- };
1
+ import { ColumnBuilder, ColumnBuilderBaseConfig, ColumnBuilderConfig } from './column-builder';
2
+ import { DriverValueMapper, SQL } from './sql';
3
+ import { Table } from './table';
4
+ import { RequiredKeys } from './utils';
5
+ export interface ColumnBaseConfig extends ColumnBuilderBaseConfig {
6
+ tableName: string;
7
+ }
8
+ export declare type ColumnConfig<TPartial extends Partial<ColumnBaseConfig> = {}> = UpdateColumnConfig<ColumnBuilderConfig & {
9
+ tableName: string;
10
+ }, TPartial>;
11
+ export declare type UpdateColumnConfig<T extends ColumnBaseConfig, TUpdate extends Partial<ColumnBaseConfig>> = {} extends TUpdate ? T : RequiredKeys<Omit<T, keyof TUpdate> & Pick<TUpdate, keyof ColumnBaseConfig>>;
12
+ export declare abstract class Column<T extends ColumnBaseConfig> implements DriverValueMapper<T['data'], T['driverParam']> {
13
+ readonly table: Table<T['tableName']>;
14
+ protected $brand: 'Column';
15
+ protected $config: T;
16
+ protected $data: T['data'];
17
+ protected $driverParam: T['driverParam'];
18
+ protected $notNull: T['notNull'];
19
+ protected $hasDefault: T['hasDefault'];
15
20
  readonly name: string;
16
21
  readonly primary: boolean;
17
- readonly notNull: TNotNull;
18
- readonly default: TData | undefined;
19
- constructor(table: AnyTable<TTableName>, builder: ColumnBuilder<TData, TDriverParam, TNotNull, THasDefault>);
22
+ readonly notNull: boolean;
23
+ readonly default: T['data'] | SQL | undefined;
24
+ constructor(table: Table<T['tableName']>, builder: ColumnBuilder<Omit<T, 'tableName'>>);
20
25
  abstract getSQLType(): string;
21
- mapFromDriverValue(value: Unwrap<TDriverParam>): Unwrap<TData>;
22
- mapToDriverValue(value: Unwrap<TData>): Unwrap<TDriverParam>;
26
+ mapFromDriverValue(value: T['driverParam']): T['data'];
27
+ mapToDriverValue(value: T['data']): T['driverParam'];
23
28
  }
24
- export declare type AnyColumn<TTableName extends TableName = TableName, TData extends ColumnData = ColumnData, TDriverParam extends ColumnDriverParam = ColumnDriverParam, TNotNull extends ColumnNotNull = ColumnNotNull, THasDefault extends ColumnHasDefault = ColumnHasDefault> = Column<TTableName, TData, TDriverParam, TNotNull, THasDefault>;
25
- export declare function param<TData extends ColumnData, TDriver extends ColumnDriverParam>(value: Unwrap<TData>, mapper: DriverValueMapper<Unwrap<TData>, Unwrap<TDriver>>): BoundParamValue<TData, TDriver>;
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;
27
- export declare type InferColumnDriverParam<TColumn extends AnyColumn> = TColumn extends Column<TableName, ColumnData, infer TDriverType, ColumnNotNull, ColumnHasDefault> ? Unwrap<TDriverType> : never;
29
+ export declare type AnyColumn<TPartial extends Partial<ColumnBaseConfig> = {}> = Column<UpdateColumnConfig<ColumnBaseConfig, TPartial>>;
30
+ export declare type GetColumnData<TColumn extends AnyColumn, TInferMode extends 'query' | 'raw' = 'query'> = TColumn extends AnyColumn<{
31
+ data: infer TData;
32
+ notNull: infer TNotNull extends boolean;
33
+ }> ? TInferMode extends 'raw' ? TData : TNotNull extends true ? TData : TData | null : never;
34
+ /**
35
+ `GetColumnConfig` can be used to infer either the full config of the column or a single parameter.
36
+ @example
37
+ type TConfig = GetColumnConfig<typeof column>;
38
+ type TNotNull = GetColumnConfig<typeof column, 'notNull'>;
39
+ */
40
+ export declare type GetColumnConfig<TColumn extends AnyColumn, TParam extends keyof ColumnBaseConfig | undefined = undefined> = TColumn extends Column<infer TConfig> ? TParam extends keyof ColumnBaseConfig ? TConfig[TParam] : TConfig : never;
28
41
  export declare type InferColumnsDataTypes<TColumns extends Record<string, AnyColumn>> = {
29
42
  [Key in keyof TColumns]: GetColumnData<TColumns[Key], 'query'>;
30
43
  };
31
- export declare type InferColumnTable<T extends AnyColumn> = T extends AnyColumn<infer TTable> ? TTable : never;
package/column.js CHANGED
@@ -1,14 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.param = exports.Column = void 0;
4
- const sql_1 = require("./sql");
3
+ exports.Column = void 0;
4
+ /*
5
+ `Column` only accepts a full `ColumnConfig` as its generic.
6
+ To infer parts of the config, use `AnyColumn` that accepts a partial config.
7
+ See `GetColumnData` for example usage of inferring.
8
+ */
5
9
  class Column {
6
10
  constructor(table, builder) {
7
11
  this.table = table;
8
- this.name = builder.name;
9
- this.notNull = builder._notNull;
10
- this.default = builder._default;
11
- this.primary = builder._primaryKey;
12
+ this.name = builder.config.name;
13
+ this.notNull = builder.config.notNull;
14
+ this.default = builder.config.default;
15
+ this.primary = builder.config.primaryKey;
12
16
  }
13
17
  mapFromDriverValue(value) {
14
18
  return value;
@@ -18,8 +22,4 @@ class Column {
18
22
  }
19
23
  }
20
24
  exports.Column = Column;
21
- function param(value, mapper) {
22
- return new sql_1.BoundParamValue(value, mapper);
23
- }
24
- exports.param = param;
25
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,+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"}
1
+ {"version":3,"file":"column.js","sourceRoot":"","sources":["../src/column.ts"],"names":[],"mappings":";;;AAqBA;;;;EAIE;AACF,MAAsB,MAAM;IAa3B,YAAqB,KAA4B,EAAE,OAA4C;QAA1E,UAAK,GAAL,KAAK,CAAuB;QAChD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;IAC1C,CAAC;IAID,kBAAkB,CAAC,KAAuB;QACzC,OAAO,KAAY,CAAC;IACrB,CAAC;IAED,gBAAgB,CAAC,KAAgB;QAChC,OAAO,KAAY,CAAC;IACrB,CAAC;CACD;AA7BD,wBA6BC"}
package/connection.d.ts CHANGED
@@ -3,9 +3,6 @@ export declare type MigrationMeta = {
3
3
  folderMillis: number;
4
4
  hash: string;
5
5
  };
6
- export interface Session<TQueryParam, TQueryResponse> {
7
- query(query: string, params: TQueryParam[]): TQueryResponse;
8
- }
9
6
  export interface Logger {
10
7
  logQuery(query: string, params: unknown[]): void;
11
8
  }
@@ -15,18 +12,6 @@ export declare class DefaultLogger implements Logger {
15
12
  export declare class NoopLogger implements Logger {
16
13
  logQuery(): void;
17
14
  }
18
- export interface Driver<TSession> {
19
- connect(): Promise<TSession>;
20
- }
21
- export interface Dialect<TSession, TDatabase> {
22
- createDB(session: TSession): TDatabase;
23
- migrate(migrations: MigrationMeta[], session: TSession): Promise<void>;
24
- }
25
- export interface Connector<TSession, TOperations> {
26
- dialect: Dialect<TSession, TOperations>;
27
- driver: Driver<TSession>;
28
- }
29
- export declare function connect<TSession, TDatabase>(connector: Connector<TSession, TDatabase>): Promise<TDatabase>;
30
15
  export interface KitConfig {
31
16
  out: string;
32
17
  schema: string;
@@ -34,5 +19,4 @@ export interface KitConfig {
34
19
  export interface MigrationConfig {
35
20
  migrationsFolder: string;
36
21
  }
37
- export declare function migrate<TSession, TDatabase>(connector: Connector<TSession, TDatabase>, config: string): Promise<void>;
38
- export declare function migrate<TSession, TDatabase>(connector: Connector<TSession, TDatabase>, config: MigrationConfig): Promise<void>;
22
+ export declare function readMigrationFiles(config: string | MigrationConfig): MigrationMeta[];
package/connection.js CHANGED
@@ -22,17 +22,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
25
  Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.migrate = exports.connect = exports.NoopLogger = exports.DefaultLogger = void 0;
26
+ exports.readMigrationFiles = exports.NoopLogger = exports.DefaultLogger = void 0;
36
27
  const crypto = __importStar(require("crypto"));
37
28
  const fs = __importStar(require("fs"));
38
29
  const path = __importStar(require("path"));
@@ -46,56 +37,46 @@ class NoopLogger {
46
37
  logQuery() { }
47
38
  }
48
39
  exports.NoopLogger = NoopLogger;
49
- function connect(connector) {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- const session = yield connector.driver.connect();
52
- return connector.dialect.createDB(session);
53
- });
54
- }
55
- exports.connect = connect;
56
- function migrate(connector, config) {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- let migrationFolderTo;
59
- if (typeof config === 'string') {
60
- const configAsString = fs.readFileSync(path.resolve('.', config), 'utf8');
61
- const jsonConfig = JSON.parse(configAsString);
62
- migrationFolderTo = jsonConfig.out;
63
- }
64
- else {
65
- migrationFolderTo = config.migrationsFolder;
66
- }
67
- if (!migrationFolderTo) {
68
- throw Error('no migration folder defined');
69
- }
70
- const files1 = fs.readdirSync(migrationFolderTo);
71
- const migrationQueries = [];
72
- for (const migrationFolder of files1) {
73
- if (migrationFolder === '.DS_Store') {
74
- continue;
75
- }
76
- const migrationFiles = fs.readdirSync(`${migrationFolderTo}/${migrationFolder}`);
77
- const migrationFile = migrationFiles.filter((file) => file === 'migration.sql')[0];
78
- const query = fs
79
- .readFileSync(`${migrationFolderTo}/${migrationFolder}/${migrationFile}`)
80
- .toString();
81
- const year = Number(migrationFolder.slice(0, 4));
82
- // second param for Date() is month index, that started from 0, so we need
83
- // to decrement a value for month
84
- const month = Number(migrationFolder.slice(4, 6)) - 1;
85
- const day = Number(migrationFolder.slice(6, 8));
86
- const hour = Number(migrationFolder.slice(8, 10));
87
- const min = Number(migrationFolder.slice(10, 12));
88
- const sec = Number(migrationFolder.slice(12, 14));
89
- const folderAsMillis = Date.UTC(year, month, day, hour, min, sec);
90
- migrationQueries.push({
91
- sql: query,
92
- folderMillis: folderAsMillis,
93
- hash: crypto.createHash('sha256').update(query).digest('hex'),
94
- });
40
+ function readMigrationFiles(config) {
41
+ let migrationFolderTo;
42
+ if (typeof config === 'string') {
43
+ const configAsString = fs.readFileSync(path.resolve('.', config), 'utf8');
44
+ const jsonConfig = JSON.parse(configAsString);
45
+ migrationFolderTo = jsonConfig.out;
46
+ }
47
+ else {
48
+ migrationFolderTo = config.migrationsFolder;
49
+ }
50
+ if (!migrationFolderTo) {
51
+ throw Error('no migration folder defined');
52
+ }
53
+ const files1 = fs.readdirSync(migrationFolderTo);
54
+ const migrationQueries = [];
55
+ for (const migrationFolder of files1) {
56
+ if (migrationFolder === '.DS_Store') {
57
+ continue;
95
58
  }
96
- const session = yield connector.driver.connect();
97
- yield connector.dialect.migrate(migrationQueries, session);
98
- });
59
+ const migrationFiles = fs.readdirSync(`${migrationFolderTo}/${migrationFolder}`);
60
+ const migrationFile = migrationFiles.filter((file) => file === 'migration.sql')[0];
61
+ const query = fs
62
+ .readFileSync(`${migrationFolderTo}/${migrationFolder}/${migrationFile}`)
63
+ .toString();
64
+ const year = Number(migrationFolder.slice(0, 4));
65
+ // second param for Date() is month index, that started from 0, so we need
66
+ // to decrement a value for month
67
+ const month = Number(migrationFolder.slice(4, 6)) - 1;
68
+ const day = Number(migrationFolder.slice(6, 8));
69
+ const hour = Number(migrationFolder.slice(8, 10));
70
+ const min = Number(migrationFolder.slice(10, 12));
71
+ const sec = Number(migrationFolder.slice(12, 14));
72
+ const folderAsMillis = Date.UTC(year, month, day, hour, min, sec);
73
+ migrationQueries.push({
74
+ sql: query,
75
+ folderMillis: folderAsMillis,
76
+ hash: crypto.createHash('sha256').update(query).digest('hex'),
77
+ });
78
+ }
79
+ return migrationQueries;
99
80
  }
100
- exports.migrate = migrate;
81
+ exports.readMigrationFiles = readMigrationFiles;
101
82
  //# sourceMappingURL=connection.js.map
package/connection.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { sql } from './sql';
2
- export * from './table';
3
1
  export * from './column';
4
2
  export * from './connection';
3
+ export { param, sql } from './sql';
4
+ export { Table } from './table';
package/index.js CHANGED
@@ -14,10 +14,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.sql = void 0;
18
- var sql_1 = require("./sql");
19
- Object.defineProperty(exports, "sql", { enumerable: true, get: function () { return sql_1.sql; } });
20
- __exportStar(require("./table"), exports);
17
+ exports.Table = exports.sql = exports.param = void 0;
21
18
  __exportStar(require("./column"), exports);
22
19
  __exportStar(require("./connection"), exports);
20
+ var sql_1 = require("./sql");
21
+ Object.defineProperty(exports, "param", { enumerable: true, get: function () { return sql_1.param; } });
22
+ Object.defineProperty(exports, "sql", { enumerable: true, get: function () { return sql_1.sql; } });
23
+ var table_1 = require("./table");
24
+ Object.defineProperty(exports, "Table", { enumerable: true, get: function () { return table_1.Table; } });
23
25
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AACZ,0CAAwB;AACxB,2CAAyB;AACzB,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+CAA6B;AAC7B,6BAAmC;AAA1B,4FAAA,KAAK,OAAA;AAAE,0FAAA,GAAG,OAAA;AACnB,iCAAgC;AAAvB,8FAAA,KAAK,OAAA"}
package/operations.d.ts CHANGED
@@ -1,13 +1,18 @@
1
- import { ColumnData, ColumnDriverParam, TableName } from './branded-types';
2
- import { AnyColumn, Column } from './column';
3
- import { AnySQL, AnySQLResponse, SQL, SQLResponse } from './sql';
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;
1
+ import { AnyColumn } from './column';
2
+ import { SQL, SQLResponse } from './sql';
3
+ export declare type RequiredKeyOnly<TKey extends string, T extends AnyColumn> = T extends AnyColumn<{
4
+ notNull: true;
5
+ hasDefault: false;
6
+ }> ? TKey : never;
5
7
  export declare type OptionalKeyOnly<TKey extends string, T extends AnyColumn> = TKey extends RequiredKeyOnly<TKey, T> ? never : TKey;
6
- export declare type SelectFields<TTableName extends TableName, TColumnDriverParam extends ColumnDriverParam = ColumnDriverParam> = {
7
- [key: string]: SQL<TTableName> | SQLResponse<TTableName, ColumnData> | AnyColumn<TTableName, any, TColumnDriverParam>;
8
+ export declare type SelectFields<TTableName extends string, TColumnDriverParam> = {
9
+ [key: string]: SQL | SQLResponse | AnyColumn<{
10
+ tableName: TTableName;
11
+ driverParam: TColumnDriverParam;
12
+ }>;
8
13
  };
9
14
  export declare type SelectFieldsOrdered = {
10
15
  name: string;
11
16
  resultTableName: string;
12
- column: AnyColumn | AnySQL | AnySQLResponse;
17
+ field: AnyColumn | SQL | SQLResponse;
13
18
  }[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-orm",
3
- "version": "0.12.0-beta.5",
3
+ "version": "0.12.0-beta.7",
4
4
  "description": "Drizzle ORM package for SQL databases",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -68,6 +68,7 @@
68
68
  "build": "tsc",
69
69
  "pack": "cp package.json dist/ && (cd dist && pnpm pack --pack-destination ..) && rm -f package.tgz && mv *.tgz package.tgz",
70
70
  "publish:beta": "pnpm publish package.tgz --tag beta --git-checks false",
71
+ "release:beta": "pnpm build && pnpm version prerelease && pnpm run pack && pnpm publish:beta",
71
72
  "build:int": "pnpm build && pnpm run pack"
72
73
  }
73
74
  }
@@ -1,35 +1,33 @@
1
- import { ColumnNotNull, TableName } from '../../branded-types';
2
1
  import { AnyColumn, GetColumnData } from '../../column';
3
- import { GetTableName } from '../../utils';
4
- import { AnySQL, SQL, SQLWrapper } from '..';
5
- export declare function eq<TColumn extends AnyColumn>(column: TColumn, value: GetColumnData<TColumn, 'raw'>): SQL<GetTableName<TColumn>>;
6
- export declare function eq<TLeftTableName extends TableName, TRightTableName extends TableName>(left: AnyColumn<TLeftTableName>, right: AnyColumn<TRightTableName>): SQL<TLeftTableName | TRightTableName>;
7
- export declare function ne<TColumn extends AnyColumn>(column: TColumn, value: GetColumnData<TColumn>): SQL<GetTableName<TColumn>>;
8
- export declare function ne<TLeftTableName extends TableName, TRightTableName extends TableName>(left: AnyColumn<TLeftTableName>, right: AnyColumn<TRightTableName>): SQL<TLeftTableName | TRightTableName>;
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;
11
- export declare function or<TTableName extends TableName>(...conditions: (SQL<TTableName> | undefined)[]): SQL<TTableName> | undefined;
12
- export declare function not<TTableName extends TableName>(condition: SQL<TTableName>): SQL<TTableName>;
13
- export declare function gt<TColumn extends AnyColumn>(column: TColumn, value: GetColumnData<TColumn>): SQL<GetTableName<TColumn>>;
14
- export declare function gt<TLeftTableName extends TableName, TRightTableName extends TableName>(left: AnyColumn<TLeftTableName>, right: AnyColumn<TRightTableName>): SQL<TLeftTableName | TRightTableName>;
15
- export declare function gte<TColumn extends AnyColumn>(column: TColumn, value: GetColumnData<TColumn> extends AnyColumn ? never : GetColumnData<TColumn>): SQL<GetTableName<TColumn>>;
16
- export declare function gte<TLeftTableName extends TableName, TRightTableName extends TableName>(left: AnyColumn<TLeftTableName>, right: AnyColumn<TRightTableName>): SQL<TLeftTableName | TRightTableName>;
17
- export declare function lt<TColumn extends AnyColumn>(column: TColumn, value: GetColumnData<TColumn> extends AnyColumn ? never : GetColumnData<TColumn>): SQL<GetTableName<TColumn>>;
18
- export declare function lt<TLeftTableName extends TableName, TRightTableName extends TableName>(left: AnyColumn<TLeftTableName>, right: AnyColumn<TRightTableName>): SQL<TLeftTableName | TRightTableName>;
19
- export declare function lte<TColumn extends AnyColumn>(column: TColumn, value: GetColumnData<TColumn> extends AnyColumn ? never : GetColumnData<TColumn>): SQL<GetTableName<TColumn>>;
20
- export declare function lte<TLeftTableName extends TableName, TRightTableName extends TableName>(left: AnyColumn<TLeftTableName>, right: AnyColumn<TRightTableName>): SQL<TLeftTableName | TRightTableName>;
21
- export declare function inArray<TColumn extends AnyColumn>(column: TColumn, values: GetColumnData<TColumn>[]): SQL<GetTableName<TColumn>>;
22
- export declare function inArray<TColumn extends AnyColumn>(column: TColumn, subquery: SQLWrapper): SQL<GetTableName<TColumn>>;
23
- export declare function notInArray<TColumn extends AnyColumn>(column: TColumn, values: GetColumnData<TColumn>[]): SQL<GetTableName<TColumn>>;
24
- export declare function notInArray<TTableName extends TableName, TColumn extends AnyColumn<TTableName>>(column: TColumn, subquery: SQLWrapper): SQL<TTableName>;
25
- export declare function isNull<TColumn extends AnyColumn<any, any, any, ColumnNotNull<false>>>(column: TColumn): SQL<GetTableName<TColumn>>;
26
- export declare function isNotNull<TTableName extends TableName, TColumn extends AnyColumn<TTableName>>(column: TColumn): SQL<TTableName>;
27
- export declare function exists<TTableName extends TableName>(subquery: SQLWrapper): SQL<TTableName>;
28
- export declare function notExists<TTableName extends TableName>(subquery: SQLWrapper): SQL<TTableName>;
29
- export declare function between<TTableName extends TableName, TColumn extends AnyColumn<TTableName>>(column: TColumn, min: GetColumnData<TColumn, 'raw'>, max: GetColumnData<TColumn, 'raw'>): SQL<TTableName>;
30
- export declare function notBetween<TTableName extends TableName, TColumn extends AnyColumn<TTableName>>(column: TColumn, min: GetColumnData<TColumn, 'raw'>, max: GetColumnData<TColumn, 'raw'>): SQL<TTableName>;
31
- export declare function like<TTableName extends TableName, TColumn extends AnyColumn<TTableName>>(column: TColumn, value: string): SQL<TTableName>;
32
- export declare function notLike<TTableName extends TableName, TColumn extends AnyColumn<TTableName>>(column: TColumn, value: string): SQL<TTableName>;
33
- export declare function ilike<TTableName extends TableName, TColumn extends AnyColumn<TTableName>>(column: TColumn, value: string): SQL<TTableName>;
34
- export declare function notIlike<TTableName extends TableName, TColumn extends AnyColumn<TTableName>>(column: TColumn, value: string): SQL<TTableName>;
35
- export {};
2
+ import { SQL, SQLWrapper } from '..';
3
+ export declare function eq<TColumn extends AnyColumn>(column: TColumn, value: GetColumnData<TColumn, 'raw'>): SQL;
4
+ export declare function eq(left: AnyColumn, right: AnyColumn): SQL;
5
+ export declare function ne<TColumn extends AnyColumn>(column: TColumn, value: GetColumnData<TColumn>): SQL;
6
+ export declare function ne(left: AnyColumn, right: AnyColumn): SQL;
7
+ export declare function and(...conditions: (SQL | undefined)[]): SQL | undefined;
8
+ export declare function or(...conditions: (SQL | undefined)[]): SQL | undefined;
9
+ export declare function not(condition: SQL): SQL;
10
+ export declare function gt<TColumn extends AnyColumn>(column: TColumn, value: GetColumnData<TColumn>): SQL;
11
+ export declare function gt(left: AnyColumn, right: AnyColumn): SQL;
12
+ export declare function gte<TColumn extends AnyColumn>(column: TColumn, value: GetColumnData<TColumn>): SQL;
13
+ export declare function gte(left: AnyColumn, right: AnyColumn): SQL;
14
+ export declare function lt<TColumn extends AnyColumn>(column: TColumn, value: GetColumnData<TColumn>): SQL;
15
+ export declare function lt(left: AnyColumn, right: AnyColumn): SQL;
16
+ export declare function lte<TColumn extends AnyColumn>(column: TColumn, value: GetColumnData<TColumn>): SQL;
17
+ export declare function lte(left: AnyColumn, right: AnyColumn): SQL;
18
+ export declare function inArray<TColumn extends AnyColumn>(column: TColumn, values: GetColumnData<TColumn>[]): SQL;
19
+ export declare function inArray(column: AnyColumn, subquery: SQLWrapper): SQL;
20
+ export declare function notInArray<TColumn extends AnyColumn>(column: TColumn, values: GetColumnData<TColumn>[]): SQL;
21
+ export declare function notInArray(column: AnyColumn, subquery: SQLWrapper): SQL;
22
+ export declare function isNull(column: AnyColumn<{
23
+ notNull: false;
24
+ }>): SQL;
25
+ export declare function isNotNull(column: AnyColumn): SQL;
26
+ export declare function exists(subquery: SQLWrapper): SQL;
27
+ export declare function notExists(subquery: SQLWrapper): SQL;
28
+ export declare function between<TColumn extends AnyColumn>(column: TColumn, min: GetColumnData<TColumn, 'raw'>, max: GetColumnData<TColumn, 'raw'>): SQL;
29
+ export declare function notBetween<TColumn extends AnyColumn>(column: TColumn, min: GetColumnData<TColumn, 'raw'>, max: GetColumnData<TColumn, 'raw'>): SQL;
30
+ export declare function like(column: AnyColumn, value: string): SQL;
31
+ export declare function notLike(column: AnyColumn, value: string): SQL;
32
+ export declare function ilike(column: AnyColumn, value: string): SQL;
33
+ export declare function notIlike(column: AnyColumn, value: string): SQL;
@@ -8,7 +8,7 @@ function bindIfParam(value, column) {
8
8
  return value;
9
9
  }
10
10
  else {
11
- return new __1.BoundParamValue(value, column);
11
+ return new __1.Param(value, column);
12
12
  }
13
13
  }
14
14
  function eq(left, right) {
@@ -84,7 +84,7 @@ function inArray(column, values) {
84
84
  if (values.length === 0) {
85
85
  throw new Error('inArray requires at least one value');
86
86
  }
87
- return (0, __1.sql) `${column} in ${values.map((v) => new __1.BoundParamValue(v, column))}`;
87
+ return (0, __1.sql) `${column} in ${values.map((v) => new __1.Param(v, column))}`;
88
88
  }
89
89
  exports.inArray = inArray;
90
90
  function notInArray(column, values) {
@@ -94,7 +94,7 @@ function notInArray(column, values) {
94
94
  if (values.length === 0) {
95
95
  throw new Error('notInArray requires at least one value');
96
96
  }
97
- return (0, __1.sql) `${column} not in ${values.map((v) => new __1.BoundParamValue(v, column))}`;
97
+ return (0, __1.sql) `${column} not in ${values.map((v) => new __1.Param(v, column))}`;
98
98
  }
99
99
  exports.notInArray = notInArray;
100
100
  function isNull(column) {
@@ -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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"}
@@ -1,5 +1,4 @@
1
- import { TableName } from '../../branded-types';
2
1
  import { AnyColumn } from '../../column';
3
2
  import { SQL } from '..';
4
- export declare function asc<TTableName extends TableName>(column: AnyColumn<TTableName>): SQL<TTableName>;
5
- export declare function desc<TTableName extends TableName>(column: AnyColumn<TTableName>): SQL<TTableName>;
3
+ export declare function asc(column: AnyColumn): SQL;
4
+ export declare function desc(column: AnyColumn): SQL;
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/sql/expressions/select.ts"],"names":[],"mappings":";;;AAEA,0BAA8B;AAE9B,SAAgB,GAAG,CAClB,MAA6B;IAE7B,OAAO,IAAA,OAAG,EAAA,GAAG,MAAM,MAAM,CAAC;AAC3B,CAAC;AAJD,kBAIC;AAED,SAAgB,IAAI,CACnB,MAA6B;IAE7B,OAAO,IAAA,OAAG,EAAA,GAAG,MAAM,OAAO,CAAC;AAC5B,CAAC;AAJD,oBAIC"}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/sql/expressions/select.ts"],"names":[],"mappings":";;;AACA,0BAA8B;AAE9B,SAAgB,GAAG,CAAC,MAAiB;IACpC,OAAO,IAAA,OAAG,EAAA,GAAG,MAAM,MAAM,CAAC;AAC3B,CAAC;AAFD,kBAEC;AAED,SAAgB,IAAI,CAAC,MAAiB;IACrC,OAAO,IAAA,OAAG,EAAA,GAAG,MAAM,OAAO,CAAC;AAC5B,CAAC;AAFD,oBAEC"}
package/sql/index.d.ts CHANGED
@@ -1,37 +1,35 @@
1
- import { ColumnData, ColumnDriverParam, TableName, Unwrap } from '../branded-types';
2
1
  import { AnyColumn } from '../column';
3
- import { AnyTable } from '../table';
4
- export declare class Param<TData = ColumnData | PrimitiveDriverParam> {
5
- readonly value: TData;
6
- constructor(value: TData);
2
+ import { Table } from '../table';
3
+ /**
4
+ * This class is used to indicate a primitive param value that is used in `sql` tag.
5
+ * It is only used on type level and is never instantiated at runtime.
6
+ * If you see a value of this type in the code, its runtime value is actually the primitive param value.
7
+ */
8
+ export declare class FakePrimitiveParam {
7
9
  }
8
- export declare type Chunk<TTableName extends TableName = TableName> = string | AnyTable<TTableName> | AnyColumn<TTableName> | Name | Param;
10
+ export declare type Chunk = string | Table | AnyColumn | Name | Param;
9
11
  export interface BuildQueryConfig {
10
12
  escapeName(name: string): string;
11
13
  escapeParam(num: number, value: unknown): string;
12
14
  }
13
- export interface PreparedQuery<TDriverParam extends ColumnDriverParam = ColumnDriverParam> {
15
+ export interface PreparedQuery {
14
16
  sql: string;
15
- params: TDriverParam[];
17
+ params: unknown[];
16
18
  }
17
19
  export interface SQLWrapper {
18
- getSQL(): AnySQL;
20
+ getSQL(): SQL;
19
21
  }
20
22
  export declare function isSQLWrapper(param: unknown): param is SQLWrapper;
21
- export declare class SQL<TTableName extends TableName> implements SQLWrapper {
22
- readonly queryChunks: Chunk<TTableName>[];
23
- protected typeKeeper: {
24
- brand: 'SQL';
25
- tableName: TTableName;
26
- };
27
- constructor(queryChunks: Chunk<TTableName>[]);
28
- toQuery<TDriverParamType = unknown>({ escapeName, escapeParam }: BuildQueryConfig): PreparedQuery<ColumnDriverParam<TDriverParamType>>;
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>>;
23
+ export declare class SQL implements SQLWrapper {
24
+ readonly queryChunks: Chunk[];
25
+ protected $brand: 'SQL';
26
+ constructor(queryChunks: Chunk[]);
27
+ toQuery({ escapeName, escapeParam }: BuildQueryConfig): PreparedQuery;
28
+ getSQL(): SQL;
29
+ as<TDecoder extends DriverValueDecoder<any, any> | DriverValueDecoder<any, any>['mapFromDriverValue']>(decoder: TDecoder): SQLResponse<GetDecoderColumnData<TDecoder>>;
30
+ as<TData>(): SQLResponse<TData>;
32
31
  }
33
- export declare type GetDecoderColumnData<T> = T extends DriverValueDecoder<infer TData, any> ? ColumnData<TData> : T extends DriverValueDecoder<infer TData, any>['mapFromDriverValue'] ? ColumnData<TData> : never;
34
- export declare type AnySQL<TTableName extends TableName = TableName> = SQL<TTableName>;
32
+ export declare type GetDecoderColumnData<T> = T extends DriverValueDecoder<infer TData, any> | DriverValueDecoder<infer TData, any>['mapFromDriverValue'] ? TData : never;
35
33
  /**
36
34
  * Any DB name (table, column, index etc.)
37
35
  */
@@ -51,39 +49,32 @@ export declare const noopEncoder: DriverValueEncoder<any, any>;
51
49
  export interface DriverValueMapper<TData, TDriverParam> extends DriverValueDecoder<TData, TDriverParam>, DriverValueEncoder<TData, TDriverParam> {
52
50
  }
53
51
  export declare const noopMapper: DriverValueMapper<any, any>;
54
- /**
55
- * Parameter value that is bound to a specific mapper (usually, a column of a specific type)
56
- * @param value - Parameter value to bind
57
- * @param mapper - Mapper to use to convert the value to/from the driver parameter
58
- */
59
- export declare class BoundParamValue<TDataType extends ColumnData, TDriverParamType extends ColumnDriverParam> {
52
+ /** Parameter value that is optionally bound to an encoder (for example, a column). */
53
+ export declare class Param<TDataType = unknown, TDriverParamType = TDataType> {
60
54
  readonly value: TDataType;
61
- readonly mapper: DriverValueMapper<Unwrap<TDataType>, Unwrap<TDriverParamType>>;
55
+ readonly encoder: DriverValueEncoder<TDataType, TDriverParamType>;
62
56
  protected brand: 'BoundParamValue';
63
- constructor(value: TDataType, mapper: DriverValueMapper<Unwrap<TDataType>, Unwrap<TDriverParamType>>);
57
+ /**
58
+ * @param value - Parameter value
59
+ * @param encoder - Encoder to convert the value to a driver parameter
60
+ */
61
+ constructor(value: TDataType, encoder?: DriverValueEncoder<TDataType, TDriverParamType>);
64
62
  }
65
- export declare type AnyBoundParamValue = BoundParamValue<any, any>;
66
- export declare type SQLSourceParam<TTableName extends TableName> = SQLSourceParam<TTableName>[] | ColumnData | SQLWrapper | AnySQL<TTableName> | AnyTable<TTableName> | AnyColumn<TTableName> | AnyBoundParamValue | Name | PrimitiveDriverParam | undefined;
67
- export declare type PrimitiveDriverParam = string | number | boolean | null;
68
- export declare function sql<TTableName extends TableName>(strings: TemplateStringsArray, ...params: (SQLSourceParam<TTableName> | PrimitiveDriverParam)[]): SQL<TTableName>;
69
- export declare function sql<TTableName extends string>(strings: TemplateStringsArray, ...params: (SQLSourceParam<TableName<TTableName>> | PrimitiveDriverParam)[]): SQL<TableName<TTableName>>;
63
+ export declare function param<TData, TDriver>(value: TData, encoder?: DriverValueEncoder<TData, TDriver>): Param<TData, TDriver>;
64
+ export declare type SQLSourceParam = SQLSourceParam[] | SQLWrapper | SQL | Table | AnyColumn | Param | Name | undefined | FakePrimitiveParam;
65
+ export declare function sql(strings: TemplateStringsArray, ...params: any[]): SQL;
70
66
  export declare namespace sql {
71
- function empty(): AnySQL;
72
- function fromList<TTableName extends TableName = TableName>(list: SQLSourceParam<TTableName>[]): SQL<TTableName>;
67
+ function empty(): SQL;
68
+ function fromList(list: SQLSourceParam[]): SQL;
73
69
  /**
74
70
  * Convenience function to create an SQL query from a raw string.
75
71
  * @param str The raw SQL query string.
76
72
  */
77
- function raw<TTableName extends TableName = TableName>(str: string): SQL<TTableName>;
73
+ function raw(str: string): SQL;
78
74
  }
79
- export declare class SQLResponse<TTableName extends TableName, TValue extends ColumnData> {
80
- readonly sql: SQL<TTableName>;
75
+ export declare class SQLResponse<TValue = unknown> {
76
+ readonly sql: SQL;
81
77
  readonly decoder: DriverValueDecoder<TValue, any>;
82
- protected typeKeeper: {
83
- brand: 'SQLResponse';
84
- tableName: TTableName;
85
- value: TValue;
86
- };
87
- constructor(sql: SQL<TTableName>, decoder: DriverValueDecoder<TValue, any>);
78
+ protected $brand: 'SQLResponse';
79
+ constructor(sql: SQL, decoder: DriverValueDecoder<TValue, any>);
88
80
  }
89
- export declare type AnySQLResponse<TTableName extends TableName = TableName> = SQLResponse<TTableName, any>;
package/sql/index.js CHANGED
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SQLResponse = exports.sql = exports.BoundParamValue = exports.noopMapper = exports.noopEncoder = exports.noopDecoder = exports.Name = exports.SQL = exports.isSQLWrapper = exports.Param = void 0;
3
+ exports.SQLResponse = exports.sql = exports.param = exports.Param = exports.noopMapper = exports.noopEncoder = exports.noopDecoder = exports.Name = exports.SQL = exports.isSQLWrapper = exports.FakePrimitiveParam = void 0;
4
4
  const column_1 = require("../column");
5
5
  const table_1 = require("../table");
6
- const utils_1 = require("../utils");
7
- class Param {
8
- constructor(value) {
9
- this.value = value;
10
- }
6
+ /**
7
+ * This class is used to indicate a primitive param value that is used in `sql` tag.
8
+ * It is only used on type level and is never instantiated at runtime.
9
+ * If you see a value of this type in the code, its runtime value is actually the primitive param value.
10
+ */
11
+ class FakePrimitiveParam {
11
12
  }
12
- exports.Param = Param;
13
+ exports.FakePrimitiveParam = FakePrimitiveParam;
13
14
  function isSQLWrapper(param) {
14
15
  return !!param && typeof param === 'object' && 'getSQL' in param;
15
16
  }
@@ -28,14 +29,14 @@ class SQL {
28
29
  return escapeName(chunk.value);
29
30
  }
30
31
  else if (chunk instanceof table_1.Table) {
31
- return escapeName(chunk[utils_1.tableName]);
32
+ return escapeName(chunk[table_1.Table.Symbol.Name]);
32
33
  }
33
34
  else if (chunk instanceof column_1.Column) {
34
- return escapeName(chunk.table[utils_1.tableName]) + '.' + escapeName(chunk.name);
35
+ return escapeName(chunk.table[table_1.Table.Symbol.Name]) + '.' + escapeName(chunk.name);
35
36
  }
36
37
  else if (chunk instanceof Param) {
37
- params.push(chunk.value);
38
- return escapeParam(params.length, chunk.value);
38
+ params.push(chunk.encoder.mapToDriverValue(chunk.value));
39
+ return escapeParam(params.length - 1, chunk.value);
39
40
  }
40
41
  else {
41
42
  const err = new Error('Unexpected chunk type!');
@@ -48,7 +49,7 @@ class SQL {
48
49
  .trim()
49
50
  .replace(/\s{2,}/g, ' ')
50
51
  .replace(/\n+/g, '');
51
- return { sql: sqlString, params: params };
52
+ return { sql: sqlString, params };
52
53
  }
53
54
  getSQL() {
54
55
  return this;
@@ -74,18 +75,22 @@ exports.noopEncoder = {
74
75
  mapToDriverValue: (value) => value,
75
76
  };
76
77
  exports.noopMapper = Object.assign(Object.assign({}, exports.noopDecoder), exports.noopEncoder);
77
- /**
78
- * Parameter value that is bound to a specific mapper (usually, a column of a specific type)
79
- * @param value - Parameter value to bind
80
- * @param mapper - Mapper to use to convert the value to/from the driver parameter
81
- */
82
- class BoundParamValue {
83
- constructor(value, mapper) {
78
+ /** Parameter value that is optionally bound to an encoder (for example, a column). */
79
+ class Param {
80
+ /**
81
+ * @param value - Parameter value
82
+ * @param encoder - Encoder to convert the value to a driver parameter
83
+ */
84
+ constructor(value, encoder = exports.noopEncoder) {
84
85
  this.value = value;
85
- this.mapper = mapper;
86
+ this.encoder = encoder;
86
87
  }
87
88
  }
88
- exports.BoundParamValue = BoundParamValue;
89
+ exports.Param = Param;
90
+ function param(value, encoder) {
91
+ return new Param(value, encoder);
92
+ }
93
+ exports.param = param;
89
94
  function buildChunksFromParam(param) {
90
95
  if (Array.isArray(param)) {
91
96
  const result = ['('];
@@ -104,21 +109,23 @@ function buildChunksFromParam(param) {
104
109
  else if (isSQLWrapper(param)) {
105
110
  return buildChunksFromParam(param.getSQL());
106
111
  }
107
- else if (param instanceof table_1.Table
108
- || param instanceof column_1.Column
109
- || param instanceof Name) {
112
+ else if (param instanceof table_1.Table || param instanceof column_1.Column || param instanceof Name || param instanceof Param) {
110
113
  return [param];
111
114
  }
112
- else if (param instanceof BoundParamValue) {
113
- return [new Param(param.mapper.mapToDriverValue(param.value))];
114
- }
115
- else if (typeof param !== 'undefined') {
115
+ else if (param !== undefined) {
116
116
  return [new Param(param)];
117
117
  }
118
118
  else {
119
119
  return [];
120
120
  }
121
121
  }
122
+ /*
123
+ The type of `params` is specified as `SQLSourceParam[]`, but that's slightly incorrect -
124
+ in runtime, users won't pass `FakePrimitiveParam` instances as `params` - they will pass primitive values
125
+ which will be wrapped in `Param` using `buildChunksFromParam(...)`. That's why the overload
126
+ specify `params` as `any[]` and not as `SQLSourceParam[]`. This type is used to make our lives easier and
127
+ the type checker happy.
128
+ */
122
129
  function sql(strings, ...params) {
123
130
  const queryChunks = [];
124
131
  if (params.length > 0 || (strings.length > 0 && strings[0] !== '')) {
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/table.d.ts CHANGED
@@ -1,10 +1,6 @@
1
- import { TableName } from './branded-types';
2
- export declare type TableExtraConfig = Record<string, unknown>;
3
- export declare class Table<TName extends TableName> {
4
- protected typeKeeper: {
5
- brand: 'Table';
6
- name: TName;
7
- };
1
+ export declare class Table<TName extends string = string> {
2
+ protected $brand: 'Table';
3
+ protected $name: TName;
8
4
  constructor(name: TName);
9
5
  }
10
- export declare type AnyTable<TName extends TableName = TableName> = Table<TName>;
6
+ export declare function getTableName<TTableName extends string>(table: Table<TTableName>): TTableName;
package/table.js CHANGED
@@ -1,11 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Table = void 0;
4
- const utils_1 = require("./utils");
3
+ exports.getTableName = exports.Table = exports.OriginalName = exports.Columns = exports.Name = void 0;
4
+ /** @internal */
5
+ exports.Name = Symbol('Name');
6
+ /** @internal */
7
+ exports.Columns = Symbol('Columns');
8
+ /** @internal */
9
+ exports.OriginalName = Symbol('OriginalName');
5
10
  class Table {
6
11
  constructor(name) {
7
- this[utils_1.tableName] = name;
12
+ this[exports.Name] = this[exports.OriginalName] = name;
8
13
  }
9
14
  }
10
15
  exports.Table = Table;
16
+ /** @internal */
17
+ Table.Symbol = {
18
+ Name: exports.Name,
19
+ OriginalName: exports.OriginalName,
20
+ Columns: exports.Columns,
21
+ };
22
+ function getTableName(table) {
23
+ return table[Table.Symbol.Name];
24
+ }
25
+ exports.getTableName = getTableName;
11
26
  //# sourceMappingURL=table.js.map
package/table.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":";;;AAEA,mCAAkD;AAIlD,MAAa,KAAK;IAYjB,YAAY,IAAW;QACtB,IAAI,CAAC,iBAAS,CAAC,GAAG,IAAI,CAAC;IACxB,CAAC;CACD;AAfD,sBAeC"}
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":";;;AAEA,gBAAgB;AACH,QAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAEnC,gBAAgB;AACH,QAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAEzC,gBAAgB;AACH,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAEnD,MAAa,KAAK;IA0BjB,YAAY,IAAW;QACtB,IAAI,CAAC,YAAI,CAAC,GAAG,IAAI,CAAC,oBAAY,CAAC,GAAG,IAAI,CAAC;IACxC,CAAC;;AA5BF,sBA6BC;AAzBA,gBAAgB;AACA,YAAM,GAAG;IACxB,IAAI,EAAE,YAAmB;IACzB,YAAY,EAAE,oBAAmC;IACjD,OAAO,EAAE,eAAyB;CAClC,CAAC;AAsBH,SAAgB,YAAY,CAA4B,KAAwB;IAC/E,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAFD,oCAEC"}
package/utils.d.ts CHANGED
@@ -1,7 +1,6 @@
1
- import { ColumnData, ColumnDriverParam, TableName } from './branded-types';
2
- import { AnyColumn } from './column';
3
1
  import { SelectFieldsOrdered } from './operations';
4
- import { AnyTable } from './table';
5
- export declare function getTableName<TTableName extends TableName>(table: AnyTable<TTableName>): TTableName;
6
- export declare function mapResultRow<TResult extends Record<string, ColumnData | null>>(columns: SelectFieldsOrdered, row: ColumnDriverParam[], joinsNotNullable?: Record<string, boolean>): TResult;
7
- export declare type GetTableName<T extends AnyTable | AnyColumn> = T extends AnyTable<infer TName> ? TName : T extends AnyColumn<infer TName> ? TName : never;
2
+ export declare function mapResultRow<TResult extends Record<string, unknown>>(columns: SelectFieldsOrdered, row: unknown[], joinsNotNullable?: Record<string, boolean>): TResult;
3
+ export declare type RequiredKeys<T> = {
4
+ [K in keyof T]-?: T[K];
5
+ };
6
+ export declare type OneOrMany<T> = T | T[];
package/utils.js CHANGED
@@ -1,18 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mapResultRow = exports.getTableName = exports.tableColumns = exports.tableName = void 0;
3
+ exports.mapResultRow = void 0;
4
4
  const column_1 = require("./column");
5
5
  const sql_1 = require("./sql");
6
- /** @internal */
7
- exports.tableName = Symbol('tableName');
8
- /** @internal */
9
- exports.tableColumns = Symbol('tableColumns');
10
- function getTableName(table) {
11
- return table[exports.tableName];
12
- }
13
- exports.getTableName = getTableName;
14
6
  function mapResultRow(columns, row, joinsNotNullable) {
15
- const result = columns.reduce((res, { name, resultTableName, column: columnOrResponse }, index) => {
7
+ const result = columns.reduce((res, { name, resultTableName, field: columnOrResponse }, index) => {
16
8
  let decoder;
17
9
  if (columnOrResponse instanceof column_1.Column) {
18
10
  decoder = columnOrResponse;
package/utils.js.map CHANGED
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAElC,+BAAyC;AAGzC,SAAgB,YAAY,CAC3B,OAA4B,EAC5B,GAAc,EACd,gBAA0C;IAE1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAC5B,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,EAAE;QAClE,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"}