drizzle-orm 0.10.15 → 0.10.18
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/builders/index.d.ts +1 -1
- package/builders/index.js +2 -1
- package/builders/requestBuilders/where/isNotNull.d.ts +11 -0
- package/builders/requestBuilders/where/isNotNull.js +15 -0
- package/builders/requestBuilders/where/static.d.ts +1 -0
- package/builders/requestBuilders/where/static.js +4 -1
- package/columns/column.d.ts +14 -8
- package/columns/column.js +13 -8
- package/package.json +1 -1
- package/test.js +2 -2
package/builders/index.d.ts
CHANGED
|
@@ -15,4 +15,4 @@ export { default as Insert } from './lowLvlBuilders/inserts/insert';
|
|
|
15
15
|
export { default as Select } from './lowLvlBuilders/selects/select';
|
|
16
16
|
export { default as Update } from './lowLvlBuilders/updates/update';
|
|
17
17
|
export { set, combine } from './requestBuilders/updates/static';
|
|
18
|
-
export { eq, inArray as in, and, or, like, greater, greaterEq, less, lessEq, raw, } from './requestBuilders/where/static';
|
|
18
|
+
export { eq, inArray as in, and, or, like, greater, greaterEq, less, lessEq, raw, isNotNull, } from './requestBuilders/where/static';
|
package/builders/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.raw = exports.lessEq = exports.less = exports.greaterEq = exports.greater = exports.like = exports.or = exports.and = exports.in = exports.eq = exports.combine = exports.set = exports.Update = exports.Select = exports.Insert = exports.Delete = exports.Create = exports.SelectResponseJoin = exports.SelectResponseTwoJoins = exports.SelectTRBWithTwoJoins = exports.SelectTRBWithJoin = exports.Join = exports.JoinWith = exports.to = exports.UpdateTRB = exports.SelectTRB = exports.InsertTRB = exports.DeleteTRB = void 0;
|
|
3
|
+
exports.isNotNull = exports.raw = exports.lessEq = exports.less = exports.greaterEq = exports.greater = exports.like = exports.or = exports.and = exports.in = exports.eq = exports.combine = exports.set = exports.Update = exports.Select = exports.Insert = exports.Delete = exports.Create = exports.SelectResponseJoin = exports.SelectResponseTwoJoins = exports.SelectTRBWithTwoJoins = exports.SelectTRBWithJoin = exports.Join = exports.JoinWith = exports.to = exports.UpdateTRB = exports.SelectTRB = exports.InsertTRB = exports.DeleteTRB = void 0;
|
|
4
4
|
/* eslint-disable import/no-cycle */
|
|
5
5
|
var deleteRequestBuilder_1 = require("./highLvlBuilders/deleteRequestBuilder");
|
|
6
6
|
Object.defineProperty(exports, "DeleteTRB", { enumerable: true, get: function () { return deleteRequestBuilder_1.default; } });
|
|
@@ -48,3 +48,4 @@ Object.defineProperty(exports, "greaterEq", { enumerable: true, get: function ()
|
|
|
48
48
|
Object.defineProperty(exports, "less", { enumerable: true, get: function () { return static_3.less; } });
|
|
49
49
|
Object.defineProperty(exports, "lessEq", { enumerable: true, get: function () { return static_3.lessEq; } });
|
|
50
50
|
Object.defineProperty(exports, "raw", { enumerable: true, get: function () { return static_3.raw; } });
|
|
51
|
+
Object.defineProperty(exports, "isNotNull", { enumerable: true, get: function () { return static_3.isNotNull; } });
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import Expr from './where';
|
|
2
|
+
export default class IsNotNull extends Expr {
|
|
3
|
+
private left;
|
|
4
|
+
constructor(left: Expr);
|
|
5
|
+
toQuery: (position?: number | undefined, tableCache?: {
|
|
6
|
+
[tableName: string]: string;
|
|
7
|
+
} | undefined) => {
|
|
8
|
+
query: string;
|
|
9
|
+
values: Array<any>;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* eslint-disable max-len */
|
|
4
|
+
const where_1 = require("./where");
|
|
5
|
+
class IsNotNull extends where_1.default {
|
|
6
|
+
constructor(left) {
|
|
7
|
+
super();
|
|
8
|
+
this.toQuery = (position, tableCache) => {
|
|
9
|
+
const leftPreparedValues = this.left.toQuery(position, tableCache);
|
|
10
|
+
return { query: `${leftPreparedValues.query} is not null`, values: leftPreparedValues.values };
|
|
11
|
+
};
|
|
12
|
+
this.left = left;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.default = IsNotNull;
|
|
@@ -13,4 +13,5 @@ export declare const less: <T extends AbstractColumn<ColumnType<any>, boolean, b
|
|
|
13
13
|
export declare const greaterEq: <T extends AbstractColumn<ColumnType<any>, boolean, boolean, any>>(left: T, value: ExtractCodeType<T>) => Expr;
|
|
14
14
|
export declare const lessEq: <T extends AbstractColumn<ColumnType<any>, boolean, boolean, any>>(left: T, value: ExtractCodeType<T>) => Expr;
|
|
15
15
|
export declare const isNull: <T extends AbstractColumn<ColumnType<any>, boolean, boolean, any>>(left: T) => Expr;
|
|
16
|
+
export declare const isNotNull: <T extends AbstractColumn<ColumnType<any>, boolean, boolean, any>>(left: T) => Expr;
|
|
16
17
|
export declare const notEq: <T extends AbstractColumn<ColumnType<any>, boolean, boolean, any>>(left: T, value: ExtractCodeType<T>) => Expr;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.notEq = exports.isNull = exports.lessEq = exports.greaterEq = exports.less = exports.greater = exports.inArray = exports.like = exports.or = exports.and = exports.raw = exports.eq = void 0;
|
|
3
|
+
exports.notEq = exports.isNotNull = exports.isNull = exports.lessEq = exports.greaterEq = exports.less = exports.greater = exports.inArray = exports.like = exports.or = exports.and = exports.raw = exports.eq = void 0;
|
|
4
4
|
const and_1 = require("./and");
|
|
5
5
|
const const_1 = require("./const");
|
|
6
6
|
const constArray_1 = require("./constArray");
|
|
@@ -8,6 +8,7 @@ const eqWhere_1 = require("./eqWhere");
|
|
|
8
8
|
const greater_1 = require("./greater");
|
|
9
9
|
const greaterEq_1 = require("./greaterEq");
|
|
10
10
|
const in_1 = require("./in");
|
|
11
|
+
const isNotNull_1 = require("./isNotNull");
|
|
11
12
|
const isNull_1 = require("./isNull");
|
|
12
13
|
const less_1 = require("./less");
|
|
13
14
|
const lessEq_1 = require("./lessEq");
|
|
@@ -39,5 +40,7 @@ const lessEq = (left, value) => new lessEq_1.default({ left: new var_1.default(l
|
|
|
39
40
|
exports.lessEq = lessEq;
|
|
40
41
|
const isNull = (left) => new isNull_1.default(new var_1.default(left));
|
|
41
42
|
exports.isNull = isNull;
|
|
43
|
+
const isNotNull = (left) => new isNotNull_1.default(new var_1.default(left));
|
|
44
|
+
exports.isNotNull = isNotNull;
|
|
42
45
|
const notEq = (left, value) => new notEqWhere_1.default(new var_1.default(left), new const_1.default(value));
|
|
43
46
|
exports.notEq = notEq;
|
package/columns/column.d.ts
CHANGED
|
@@ -19,19 +19,21 @@ export declare abstract class AbstractColumn<T extends ColumnType, TNullable ext
|
|
|
19
19
|
protected columnType: T;
|
|
20
20
|
protected columnName: string;
|
|
21
21
|
protected defaultParam: any;
|
|
22
|
-
protected referenced: AbstractColumn<T, boolean, boolean
|
|
22
|
+
protected referenced: AbstractColumn<T, boolean, boolean>;
|
|
23
23
|
constructor(parent: TParent, columnName: string, columnType: T);
|
|
24
24
|
getOnDelete: () => string | undefined;
|
|
25
25
|
getOnUpdate: () => string | undefined;
|
|
26
26
|
getAlias: () => string;
|
|
27
27
|
getParent: () => AbstractTable<any>;
|
|
28
28
|
getParentName: () => string;
|
|
29
|
-
abstract foreignKey<ITable extends AbstractTable<ITable>>(table: {
|
|
30
|
-
new (db: DB): ITable;
|
|
31
|
-
}, callback: (table: ITable) => AbstractColumn<T, boolean, boolean, TParent>, onConstraint: {
|
|
29
|
+
abstract foreignKey<ITable extends AbstractTable<ITable>>(table: new (db: DB) => ITable, callback: (table: ITable) => Column<any, boolean, boolean, ITable>, onConstraint?: {
|
|
32
30
|
onDelete?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
33
31
|
onUpdate?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
34
|
-
}): AbstractColumn<T, TNullable, TAutoIncrement>;
|
|
32
|
+
}): AbstractColumn<T, TNullable, TAutoIncrement, TParent>;
|
|
33
|
+
abstract selfForeignKey(column: Column<any, boolean, boolean, TParent>, onConstraint?: {
|
|
34
|
+
onDelete?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
35
|
+
onUpdate?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
36
|
+
}): AbstractColumn<T, TNullable, TAutoIncrement, TParent>;
|
|
35
37
|
defaultValue: (value: ExtractColumnType<T>) => this;
|
|
36
38
|
abstract primaryKey(): AbstractColumn<T, boolean, boolean, TParent>;
|
|
37
39
|
unique: () => this;
|
|
@@ -45,11 +47,11 @@ export declare class Column<T extends ColumnType, TNullable extends boolean = tr
|
|
|
45
47
|
constructor(parent: TParent, columnName: string, columnType: T);
|
|
46
48
|
notNull(): Column<T, TAutoIncrement extends true ? true : TNullable extends true ? false : true, TAutoIncrement, TParent>;
|
|
47
49
|
primaryKey(): Column<T, TAutoIncrement extends true ? true : false, TAutoIncrement, TParent>;
|
|
48
|
-
foreignKey(table: new (db: DB) =>
|
|
50
|
+
foreignKey<ITable extends AbstractTable<ITable>>(table: new (db: DB) => ITable, callback: (table: ITable) => Column<any, boolean, boolean, ITable>, onConstraint?: {
|
|
49
51
|
onDelete?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
50
52
|
onUpdate?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
51
53
|
}): Column<T, TNullable, TAutoIncrement, TParent>;
|
|
52
|
-
|
|
54
|
+
selfForeignKey(column: Column<any, boolean, boolean, TParent>, onConstraint?: {
|
|
53
55
|
onDelete?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
54
56
|
onUpdate?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
55
57
|
}): Column<T, TNullable, TAutoIncrement, TParent>;
|
|
@@ -58,7 +60,11 @@ export declare class IndexedColumn<T extends ColumnType, TNullable extends boole
|
|
|
58
60
|
constructor(parent: TParent, columnName: string, columnType: T, nullable: TNullable);
|
|
59
61
|
notNull(): IndexedColumn<T, TAutoIncrement extends true ? true : TNullable extends true ? false : true, TAutoIncrement, TParent>;
|
|
60
62
|
primaryKey(): IndexedColumn<T, TAutoIncrement extends true ? true : false, TAutoIncrement, TParent>;
|
|
61
|
-
foreignKey<ITable extends AbstractTable<ITable>>(table: new (db: DB) => ITable, callback: (table: ITable) =>
|
|
63
|
+
foreignKey<ITable extends AbstractTable<ITable>>(table: new (db: DB) => ITable, callback: (table: ITable) => Column<any, boolean, boolean, ITable>, onConstraint?: {
|
|
64
|
+
onDelete?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
65
|
+
onUpdate?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
66
|
+
}): IndexedColumn<T, TNullable, TAutoIncrement, TParent>;
|
|
67
|
+
selfForeignKey<ITable extends AbstractTable<ITable>>(column: Column<any, boolean, boolean, TParent>, onConstraint?: {
|
|
62
68
|
onDelete?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
63
69
|
onUpdate?: 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT';
|
|
64
70
|
}): IndexedColumn<T, TNullable, TAutoIncrement, TParent>;
|
package/columns/column.js
CHANGED
|
@@ -56,19 +56,18 @@ class Column extends AbstractColumn {
|
|
|
56
56
|
return this;
|
|
57
57
|
}
|
|
58
58
|
foreignKey(table, callback, onConstraint) {
|
|
59
|
-
|
|
60
|
-
// eslint-disable-next-line new-cap
|
|
61
|
-
if (typeof this !== typeof this.getParent()) {
|
|
62
|
-
tableInstance = this.getParent().db.create(table);
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
tableInstance = this;
|
|
66
|
-
}
|
|
59
|
+
const tableInstance = this.getParent().db.create(table);
|
|
67
60
|
this.referenced = callback(tableInstance);
|
|
68
61
|
this.onDelete = (onConstraint === null || onConstraint === void 0 ? void 0 : onConstraint.onDelete) ? `ON DELETE ${onConstraint.onDelete}` : undefined;
|
|
69
62
|
this.onUpdate = (onConstraint === null || onConstraint === void 0 ? void 0 : onConstraint.onUpdate) ? `ON UPDATE ${onConstraint.onUpdate}` : undefined;
|
|
70
63
|
return this;
|
|
71
64
|
}
|
|
65
|
+
selfForeignKey(column, onConstraint) {
|
|
66
|
+
this.referenced = column;
|
|
67
|
+
this.onDelete = (onConstraint === null || onConstraint === void 0 ? void 0 : onConstraint.onDelete) ? `ON DELETE ${onConstraint.onDelete}` : undefined;
|
|
68
|
+
this.onUpdate = (onConstraint === null || onConstraint === void 0 ? void 0 : onConstraint.onUpdate) ? `ON UPDATE ${onConstraint.onUpdate}` : undefined;
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
72
71
|
}
|
|
73
72
|
exports.Column = Column;
|
|
74
73
|
// eslint-disable-next-line max-len
|
|
@@ -92,5 +91,11 @@ class IndexedColumn extends AbstractColumn {
|
|
|
92
91
|
this.onUpdate = (onConstraint === null || onConstraint === void 0 ? void 0 : onConstraint.onUpdate) ? `ON UPDATE ${onConstraint.onUpdate}` : undefined;
|
|
93
92
|
return this;
|
|
94
93
|
}
|
|
94
|
+
selfForeignKey(column, onConstraint) {
|
|
95
|
+
this.referenced = column;
|
|
96
|
+
this.onDelete = (onConstraint === null || onConstraint === void 0 ? void 0 : onConstraint.onDelete) ? `ON DELETE ${onConstraint.onDelete}` : undefined;
|
|
97
|
+
this.onUpdate = (onConstraint === null || onConstraint === void 0 ? void 0 : onConstraint.onUpdate) ? `ON UPDATE ${onConstraint.onUpdate}` : undefined;
|
|
98
|
+
return this;
|
|
99
|
+
}
|
|
95
100
|
}
|
|
96
101
|
exports.IndexedColumn = IndexedColumn;
|
package/package.json
CHANGED
package/test.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const dbConnector_1 = require("./db/dbConnector");
|
|
4
|
-
const
|
|
4
|
+
const citiesTable_1 = require("./docs/tables/citiesTable");
|
|
5
5
|
const consoleLogger_1 = require("./logger/consoleLogger");
|
|
6
6
|
const serializer_1 = require("./serializer/serializer");
|
|
7
7
|
(async () => {
|
|
@@ -9,7 +9,7 @@ const serializer_1 = require("./serializer/serializer");
|
|
|
9
9
|
const db = await new dbConnector_1.default()
|
|
10
10
|
.connectionString('postgresql://postgres@127.0.0.1/migrator')
|
|
11
11
|
.connect();
|
|
12
|
-
const usersTable = new
|
|
12
|
+
const usersTable = new citiesTable_1.default(db);
|
|
13
13
|
db.useLogger(new consoleLogger_1.default());
|
|
14
14
|
const ser = new serializer_1.default();
|
|
15
15
|
const res = ser.generate([usersTable], []);
|