@sqb/builder 4.0.1-beta.7 → 4.0.2
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/dist/Serializable.d.ts +2 -36
- package/dist/Serializable.js +1 -167
- package/dist/SerializeContext.d.ts +47 -0
- package/dist/SerializeContext.js +138 -0
- package/dist/classes.d.ts +2 -2
- package/dist/classes.js +2 -2
- package/dist/enums.d.ts +4 -2
- package/dist/enums.js +2 -0
- package/dist/helpers.d.ts +4 -0
- package/dist/helpers.js +31 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.js +8 -10
- package/dist/{sql-objects/op.initializers.d.ts → op.initializers.d.ts} +22 -22
- package/dist/{sql-objects/op.initializers.js → op.initializers.js} +21 -21
- package/dist/query/DeleteQuery.d.ts +1 -1
- package/dist/query/DeleteQuery.js +2 -3
- package/dist/query/InsertQuery.d.ts +1 -1
- package/dist/query/InsertQuery.js +8 -8
- package/dist/query/Query.js +7 -5
- package/dist/query/ReturningQuery.d.ts +1 -1
- package/dist/query/ReturningQuery.js +3 -3
- package/dist/query/SelectQuery.d.ts +1 -1
- package/dist/query/SelectQuery.js +15 -15
- package/dist/query/UpdateQuery.d.ts +1 -1
- package/dist/query/UpdateQuery.js +7 -6
- package/dist/sql-objects/BaseField.d.ts +7 -0
- package/dist/sql-objects/{Column.js → BaseField.js} +4 -4
- package/dist/sql-objects/CaseStatement.d.ts +1 -1
- package/dist/sql-objects/CaseStatement.js +3 -3
- package/dist/sql-objects/CountStatement.d.ts +1 -1
- package/dist/sql-objects/CountStatement.js +1 -1
- package/dist/sql-objects/Expression.d.ts +7 -0
- package/dist/sql-objects/Expression.js +7 -0
- package/dist/sql-objects/FieldExpression.d.ts +14 -0
- package/dist/sql-objects/FieldExpression.js +53 -0
- package/dist/sql-objects/GroupColumn.d.ts +3 -3
- package/dist/sql-objects/GroupColumn.js +4 -5
- package/dist/sql-objects/JoinStatement.d.ts +2 -2
- package/dist/sql-objects/JoinStatement.js +4 -4
- package/dist/sql-objects/OrderColumn.d.ts +3 -3
- package/dist/sql-objects/OrderColumn.js +4 -5
- package/dist/sql-objects/ParamExpression.d.ts +1 -1
- package/dist/sql-objects/ParamExpression.js +18 -6
- package/dist/sql-objects/RawStatement.d.ts +1 -1
- package/dist/sql-objects/RawStatement.js +1 -1
- package/dist/sql-objects/ReturningColumn.d.ts +3 -3
- package/dist/sql-objects/ReturningColumn.js +5 -6
- package/dist/sql-objects/TableName.d.ts +1 -1
- package/dist/sql-objects/TableName.js +1 -1
- package/dist/sql-objects/operators/CompOperator.d.ts +6 -4
- package/dist/sql-objects/operators/CompOperator.js +60 -25
- package/dist/sql-objects/operators/LogicalOperator.d.ts +1 -1
- package/dist/sql-objects/operators/LogicalOperator.js +11 -9
- package/dist/sql-objects/operators/OpBetween.d.ts +2 -2
- package/dist/sql-objects/operators/OpBetween.js +17 -5
- package/dist/sql-objects/operators/OpExists.d.ts +2 -1
- package/dist/sql-objects/operators/OpExists.js +13 -2
- package/dist/sql-objects/operators/OpIn.d.ts +2 -1
- package/dist/sql-objects/operators/OpIn.js +4 -4
- package/dist/sql-objects/operators/OpLike.d.ts +1 -1
- package/dist/sql-objects/operators/OpLike.js +4 -5
- package/dist/sql-objects/operators/OpNotBetween.d.ts +0 -2
- package/dist/sql-objects/operators/OpNotBetween.js +2 -2
- package/dist/sql-objects/operators/OpNotILike.d.ts +2 -2
- package/dist/sql-objects/operators/OpNotILike.js +2 -2
- package/dist/{sql-objects/sqlobject.initializers.d.ts → sqlobject.initializers.d.ts} +20 -12
- package/dist/{sql-objects/sqlobject.initializers.js → sqlobject.initializers.js} +26 -13
- package/dist/typeguards.d.ts +2 -2
- package/dist/types.d.ts +9 -12
- package/package.json +8 -8
- package/dist/sql-objects/Column.d.ts +0 -7
- package/dist/sql-objects/SelectColumn.d.ts +0 -9
- package/dist/sql-objects/SelectColumn.js +0 -42
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { DataType } from '
|
|
2
|
-
import { Serializable } from '
|
|
3
|
-
import { SelectQuery } from '
|
|
4
|
-
import { InsertQuery } from '
|
|
5
|
-
import { UpdateQuery } from '
|
|
6
|
-
import { DeleteQuery } from '
|
|
7
|
-
import { RawStatement } from './RawStatement';
|
|
8
|
-
import { JoinStatement } from './JoinStatement';
|
|
9
|
-
import { CaseStatement } from './CaseStatement';
|
|
10
|
-
import { CountStatement } from './CountStatement';
|
|
11
|
-
import { ParamExpression } from './ParamExpression';
|
|
1
|
+
import { DataType } from './enums';
|
|
2
|
+
import { Serializable } from './Serializable';
|
|
3
|
+
import { SelectQuery } from './query/SelectQuery';
|
|
4
|
+
import { InsertQuery } from './query/InsertQuery';
|
|
5
|
+
import { UpdateQuery } from './query/UpdateQuery';
|
|
6
|
+
import { DeleteQuery } from './query/DeleteQuery';
|
|
7
|
+
import { RawStatement } from './sql-objects/RawStatement';
|
|
8
|
+
import { JoinStatement } from './sql-objects/JoinStatement';
|
|
9
|
+
import { CaseStatement } from './sql-objects/CaseStatement';
|
|
10
|
+
import { CountStatement } from './sql-objects/CountStatement';
|
|
11
|
+
import { ParamExpression } from './sql-objects/ParamExpression';
|
|
12
|
+
import { FieldExpression } from './sql-objects/FieldExpression';
|
|
12
13
|
export declare function Raw(text: string): RawStatement;
|
|
13
14
|
export declare function Select(...column: (string | string[] | Serializable)[]): SelectQuery;
|
|
14
15
|
export declare function Insert(tableName: string | RawStatement, input: any): InsertQuery;
|
|
@@ -24,8 +25,15 @@ export declare function OuterJoin(table: string | SelectQuery | RawStatement): J
|
|
|
24
25
|
export declare function FullOuterJoin(table: string | SelectQuery | RawStatement): JoinStatement;
|
|
25
26
|
export declare function Case(): CaseStatement;
|
|
26
27
|
export declare function Count(): CountStatement;
|
|
27
|
-
export declare function Param(
|
|
28
|
+
export declare function Param(name: string, dataType?: DataType, isArray?: boolean): ParamExpression;
|
|
29
|
+
export declare function Param(args: {
|
|
28
30
|
name: string;
|
|
29
31
|
dataType?: DataType;
|
|
30
32
|
isArray?: boolean;
|
|
31
33
|
}): ParamExpression;
|
|
34
|
+
export declare function Field(name: string, dataType?: DataType, isArray?: boolean): FieldExpression;
|
|
35
|
+
export declare function Field(args: {
|
|
36
|
+
name: string;
|
|
37
|
+
dataType?: DataType;
|
|
38
|
+
isArray?: boolean;
|
|
39
|
+
}): FieldExpression;
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Param = exports.Count = exports.Case = exports.FullOuterJoin = exports.OuterJoin = exports.RightOuterJoin = exports.RightJoin = exports.LeftOuterJoin = exports.LeftJoin = exports.InnerJoin = exports.Join = exports.Delete = exports.Update = exports.Insert = exports.Select = exports.Raw = void 0;
|
|
4
|
-
const enums_1 = require("
|
|
5
|
-
const SelectQuery_1 = require("
|
|
6
|
-
const InsertQuery_1 = require("
|
|
7
|
-
const UpdateQuery_1 = require("
|
|
8
|
-
const DeleteQuery_1 = require("
|
|
9
|
-
const RawStatement_1 = require("./RawStatement");
|
|
10
|
-
const JoinStatement_1 = require("./JoinStatement");
|
|
11
|
-
const CaseStatement_1 = require("./CaseStatement");
|
|
12
|
-
const CountStatement_1 = require("./CountStatement");
|
|
13
|
-
const ParamExpression_1 = require("./ParamExpression");
|
|
3
|
+
exports.Field = exports.Param = exports.Count = exports.Case = exports.FullOuterJoin = exports.OuterJoin = exports.RightOuterJoin = exports.RightJoin = exports.LeftOuterJoin = exports.LeftJoin = exports.InnerJoin = exports.Join = exports.Delete = exports.Update = exports.Insert = exports.Select = exports.Raw = void 0;
|
|
4
|
+
const enums_1 = require("./enums");
|
|
5
|
+
const SelectQuery_1 = require("./query/SelectQuery");
|
|
6
|
+
const InsertQuery_1 = require("./query/InsertQuery");
|
|
7
|
+
const UpdateQuery_1 = require("./query/UpdateQuery");
|
|
8
|
+
const DeleteQuery_1 = require("./query/DeleteQuery");
|
|
9
|
+
const RawStatement_1 = require("./sql-objects/RawStatement");
|
|
10
|
+
const JoinStatement_1 = require("./sql-objects/JoinStatement");
|
|
11
|
+
const CaseStatement_1 = require("./sql-objects/CaseStatement");
|
|
12
|
+
const CountStatement_1 = require("./sql-objects/CountStatement");
|
|
13
|
+
const ParamExpression_1 = require("./sql-objects/ParamExpression");
|
|
14
|
+
const FieldExpression_1 = require("./sql-objects/FieldExpression");
|
|
14
15
|
function Raw(text) {
|
|
15
16
|
return new RawStatement_1.RawStatement(text);
|
|
16
17
|
}
|
|
@@ -71,7 +72,19 @@ function Count() {
|
|
|
71
72
|
return new CountStatement_1.CountStatement();
|
|
72
73
|
}
|
|
73
74
|
exports.Count = Count;
|
|
74
|
-
function Param(
|
|
75
|
-
|
|
75
|
+
function Param(arg0, arg1, arg2) {
|
|
76
|
+
if (typeof arg0 === 'object')
|
|
77
|
+
return new ParamExpression_1.ParamExpression(arg0);
|
|
78
|
+
return new ParamExpression_1.ParamExpression({
|
|
79
|
+
name: arg0,
|
|
80
|
+
dataType: arg1,
|
|
81
|
+
isArray: arg2
|
|
82
|
+
});
|
|
76
83
|
}
|
|
77
84
|
exports.Param = Param;
|
|
85
|
+
function Field(arg0, arg1, arg2) {
|
|
86
|
+
if (typeof arg0 === 'object')
|
|
87
|
+
return new FieldExpression_1.FieldExpression(arg0);
|
|
88
|
+
return new FieldExpression_1.FieldExpression(arg0, arg1, arg2);
|
|
89
|
+
}
|
|
90
|
+
exports.Field = Field;
|
package/dist/typeguards.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type { CaseStatement } from './sql-objects/CaseStatement';
|
|
|
9
9
|
import type { ParamExpression } from './sql-objects/ParamExpression';
|
|
10
10
|
import type { LogicalOperator } from './sql-objects/operators/LogicalOperator';
|
|
11
11
|
import type { CompOperator } from './sql-objects/operators/CompOperator';
|
|
12
|
-
import type {
|
|
12
|
+
import type { FieldExpression } from './sql-objects/FieldExpression';
|
|
13
13
|
import type { OrderColumn } from './sql-objects/OrderColumn';
|
|
14
14
|
import type { GroupColumn } from './sql-objects/GroupColumn';
|
|
15
15
|
import type { ReturningColumn } from './sql-objects/ReturningColumn';
|
|
@@ -27,7 +27,7 @@ export declare function isCountStatement(value: any): value is CountStatement;
|
|
|
27
27
|
export declare function isParamExpression(value: any): value is ParamExpression;
|
|
28
28
|
export declare function isLogicalOperator(value: any): value is LogicalOperator;
|
|
29
29
|
export declare function isCompOperator(value: any): value is CompOperator;
|
|
30
|
-
export declare function isSelectColumn(value: any): value is
|
|
30
|
+
export declare function isSelectColumn(value: any): value is FieldExpression;
|
|
31
31
|
export declare function isOrderColumn(value: any): value is OrderColumn;
|
|
32
32
|
export declare function isGroupColumn(value: any): value is GroupColumn;
|
|
33
33
|
export declare function isReturningColumn(value: any): value is ReturningColumn;
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import { SerializationType } from './enums';
|
|
1
|
+
import { DataType, SerializationType } from './enums';
|
|
2
|
+
import type { SerializeContext } from './SerializeContext';
|
|
3
|
+
export declare type SerializeFunction = (ctx: SerializeContext, type: SerializationType | string, obj: any, defFn: DefaultSerializeFunction) => string | undefined;
|
|
4
|
+
export declare type DefaultSerializeFunction = (ctx: SerializeContext, o: any) => string;
|
|
5
|
+
export declare type IsReservedWordFunction = (ctx: SerializeContext, s: string) => boolean;
|
|
2
6
|
export interface SerializerExtension {
|
|
3
7
|
dialect: string;
|
|
4
8
|
serialize?: SerializeFunction;
|
|
@@ -14,23 +18,16 @@ export interface GenerateOptions {
|
|
|
14
18
|
dialectVersion?: string;
|
|
15
19
|
strictParams?: boolean;
|
|
16
20
|
}
|
|
17
|
-
export interface
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
returningFields?: {
|
|
21
|
-
field: string;
|
|
22
|
-
alias?: string;
|
|
23
|
-
}[];
|
|
24
|
-
strictParamGenId?: number;
|
|
21
|
+
export interface ParamOptions {
|
|
22
|
+
dataType?: DataType;
|
|
23
|
+
isArray?: boolean;
|
|
25
24
|
}
|
|
26
25
|
export interface GenerateResult {
|
|
27
26
|
sql: string;
|
|
28
27
|
params?: any;
|
|
28
|
+
paramOptions?: Record<string, ParamOptions> | ParamOptions[];
|
|
29
29
|
returningFields?: {
|
|
30
30
|
field: string;
|
|
31
31
|
alias?: string;
|
|
32
32
|
}[];
|
|
33
33
|
}
|
|
34
|
-
export declare type SerializeFunction = (ctx: SerializeContext, type: SerializationType | string, obj: any, defFn: DefaultSerializeFunction) => string | undefined;
|
|
35
|
-
export declare type DefaultSerializeFunction = (ctx: SerializeContext, o: any) => string;
|
|
36
|
-
export declare type IsReservedWordFunction = (ctx: SerializeContext, s: string) => boolean;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sqb/builder",
|
|
3
3
|
"description": "Extensible multi-dialect SQL query builder written with TypeScript",
|
|
4
|
-
"version": "4.0.
|
|
4
|
+
"version": "4.0.2",
|
|
5
5
|
"author": "Panates Ltd.",
|
|
6
6
|
"private": false,
|
|
7
7
|
"contributors": [
|
|
@@ -25,19 +25,19 @@
|
|
|
25
25
|
"database"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"debug": "^4.3.
|
|
28
|
+
"debug": "^4.3.2",
|
|
29
29
|
"putil-flattentext": "^2.1.0",
|
|
30
|
-
"putil-isplainobject": "^1.1.
|
|
31
|
-
"putil-merge": "^3.
|
|
32
|
-
"putil-varhelpers": "^1.6.
|
|
30
|
+
"putil-isplainobject": "^1.1.4",
|
|
31
|
+
"putil-merge": "^3.7.0",
|
|
32
|
+
"putil-varhelpers": "^1.6.1"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@types/debug": "^4.1.
|
|
35
|
+
"@types/debug": "^4.1.6"
|
|
36
36
|
},
|
|
37
37
|
"main": "dist/index.js",
|
|
38
38
|
"types": "dist/index.d.ts",
|
|
39
39
|
"engines": {
|
|
40
|
-
"node": ">=
|
|
40
|
+
"node": ">= 14.0"
|
|
41
41
|
},
|
|
42
42
|
"directories": {
|
|
43
43
|
"lib": "dist",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"temp-dir": "./coverage/.nyc_output"
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|
|
55
|
-
"test": "ts-
|
|
55
|
+
"test": "TS_NODE_PROJECT='./test/tsconfig.json' mocha -r ts-node/register -r tsconfig-paths/register --reporter spec test/**/*.spec.ts",
|
|
56
56
|
"cover": "nyc --reporter=cobertura --reporter html --reporter text npm run test",
|
|
57
57
|
"build": "tsc -b tsconfig-build.json",
|
|
58
58
|
"compile": "tsc -b tsconfig.json",
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { SerializationType } from '../enums';
|
|
2
|
-
import { Column } from './Column';
|
|
3
|
-
import { SerializeContext } from '../types';
|
|
4
|
-
export declare class SelectColumn extends Column {
|
|
5
|
-
_alias?: string;
|
|
6
|
-
constructor(value: string);
|
|
7
|
-
get _type(): SerializationType;
|
|
8
|
-
_serialize(ctx: SerializeContext): string;
|
|
9
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SelectColumn = void 0;
|
|
4
|
-
const Serializable_1 = require("../Serializable");
|
|
5
|
-
const enums_1 = require("../enums");
|
|
6
|
-
const Column_1 = require("./Column");
|
|
7
|
-
const TABLE_COLUMN_PATTERN = /^((?:[a-zA-Z_][\w$_]*\.){0,2}) *([0-9a-zA-Z_][\w$_]*|\*) *(?:as)? *([a-zA-Z_][\w$_]*)?$/;
|
|
8
|
-
class SelectColumn extends Column_1.Column {
|
|
9
|
-
constructor(value) {
|
|
10
|
-
super();
|
|
11
|
-
const m = value.match(TABLE_COLUMN_PATTERN);
|
|
12
|
-
if (!m)
|
|
13
|
-
throw new TypeError(`${value} does not match table column format`);
|
|
14
|
-
this._field = m[2];
|
|
15
|
-
if (m[1]) {
|
|
16
|
-
const a = m[1].split(/\./g);
|
|
17
|
-
a.pop();
|
|
18
|
-
this._table = a.pop();
|
|
19
|
-
this._schema = a.pop();
|
|
20
|
-
}
|
|
21
|
-
this._alias = this._field !== '*' ? m[3] : '';
|
|
22
|
-
}
|
|
23
|
-
get _type() {
|
|
24
|
-
return enums_1.SerializationType.SELECT_COLUMN;
|
|
25
|
-
}
|
|
26
|
-
_serialize(ctx) {
|
|
27
|
-
const o = {
|
|
28
|
-
schema: this._schema,
|
|
29
|
-
table: this._table,
|
|
30
|
-
field: this._field,
|
|
31
|
-
alias: this._alias,
|
|
32
|
-
isReservedWord: !!(this._field && Serializable_1.isReservedWord(ctx, this._field))
|
|
33
|
-
};
|
|
34
|
-
return Serializable_1.serializeFallback(ctx, this._type, o, () => {
|
|
35
|
-
return (this._schema ? this._schema + '.' : '') +
|
|
36
|
-
(this._table ? this._table + '.' : '') +
|
|
37
|
-
(o.isReservedWord ? '"' + this._field + '"' : this._field) +
|
|
38
|
-
(this._alias ? ' as ' + this._alias : '');
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
exports.SelectColumn = SelectColumn;
|