@slonik/sql-tag 43.0.8 → 44.0.0
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/sqlFragmentFactories/createArraySqlFragment.js +1 -1
- package/dist/sqlFragmentFactories/createArraySqlFragment.js.map +1 -1
- package/dist/tokens.d.ts +13 -13
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +13 -13
- package/dist/tokens.js.map +1 -1
- package/dist/utilities/isSqlToken.d.ts.map +1 -1
- package/dist/utilities/isSqlToken.js +28 -3
- package/dist/utilities/isSqlToken.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +15 -0
- package/src/sqlFragmentFactories/createArraySqlFragment.ts +1 -1
- package/src/tokens.ts +15 -14
- package/src/utilities/isSqlToken.ts +38 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { createSqlTag } from './factories/createSqlTag';
|
|
2
2
|
export { createSqlTokenSqlFragment } from './factories/createSqlTokenSqlFragment';
|
|
3
|
+
export { ArrayToken, BinaryToken, ComparisonPredicateToken, DateToken, FragmentToken, IdentifierToken, IntervalToken, JsonBinaryToken, JsonToken, ListToken, QueryToken, TimestampToken, UnnestToken, } from './tokens';
|
|
3
4
|
export { type ArraySqlToken, type BinarySqlToken, type DateSqlToken, type FragmentSqlToken, type IdentifierSqlToken, type IntervalInput, type IntervalSqlToken, type JsonBinarySqlToken, type JsonSqlToken, type ListSqlToken, type PrimitiveValueExpression, type QuerySqlToken, type SerializableValue, type SqlFragmentToken, type SqlTag, type SqlToken, type TimestampSqlToken, type UnnestSqlToken, type ValueExpression, } from './types';
|
|
4
5
|
export { isSqlToken } from './utilities/isSqlToken';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EACL,UAAU,EACV,WAAW,EACX,wBAAwB,EACxB,SAAS,EACT,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,EACd,WAAW,GACZ,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isSqlToken = exports.createSqlTokenSqlFragment = exports.createSqlTag = void 0;
|
|
3
|
+
exports.isSqlToken = exports.UnnestToken = exports.TimestampToken = exports.QueryToken = exports.ListToken = exports.JsonToken = exports.JsonBinaryToken = exports.IntervalToken = exports.IdentifierToken = exports.FragmentToken = exports.DateToken = exports.ComparisonPredicateToken = exports.BinaryToken = exports.ArrayToken = exports.createSqlTokenSqlFragment = exports.createSqlTag = void 0;
|
|
4
4
|
var createSqlTag_1 = require("./factories/createSqlTag");
|
|
5
5
|
Object.defineProperty(exports, "createSqlTag", { enumerable: true, get: function () { return createSqlTag_1.createSqlTag; } });
|
|
6
6
|
var createSqlTokenSqlFragment_1 = require("./factories/createSqlTokenSqlFragment");
|
|
7
7
|
Object.defineProperty(exports, "createSqlTokenSqlFragment", { enumerable: true, get: function () { return createSqlTokenSqlFragment_1.createSqlTokenSqlFragment; } });
|
|
8
|
+
var tokens_1 = require("./tokens");
|
|
9
|
+
Object.defineProperty(exports, "ArrayToken", { enumerable: true, get: function () { return tokens_1.ArrayToken; } });
|
|
10
|
+
Object.defineProperty(exports, "BinaryToken", { enumerable: true, get: function () { return tokens_1.BinaryToken; } });
|
|
11
|
+
Object.defineProperty(exports, "ComparisonPredicateToken", { enumerable: true, get: function () { return tokens_1.ComparisonPredicateToken; } });
|
|
12
|
+
Object.defineProperty(exports, "DateToken", { enumerable: true, get: function () { return tokens_1.DateToken; } });
|
|
13
|
+
Object.defineProperty(exports, "FragmentToken", { enumerable: true, get: function () { return tokens_1.FragmentToken; } });
|
|
14
|
+
Object.defineProperty(exports, "IdentifierToken", { enumerable: true, get: function () { return tokens_1.IdentifierToken; } });
|
|
15
|
+
Object.defineProperty(exports, "IntervalToken", { enumerable: true, get: function () { return tokens_1.IntervalToken; } });
|
|
16
|
+
Object.defineProperty(exports, "JsonBinaryToken", { enumerable: true, get: function () { return tokens_1.JsonBinaryToken; } });
|
|
17
|
+
Object.defineProperty(exports, "JsonToken", { enumerable: true, get: function () { return tokens_1.JsonToken; } });
|
|
18
|
+
Object.defineProperty(exports, "ListToken", { enumerable: true, get: function () { return tokens_1.ListToken; } });
|
|
19
|
+
Object.defineProperty(exports, "QueryToken", { enumerable: true, get: function () { return tokens_1.QueryToken; } });
|
|
20
|
+
Object.defineProperty(exports, "TimestampToken", { enumerable: true, get: function () { return tokens_1.TimestampToken; } });
|
|
21
|
+
Object.defineProperty(exports, "UnnestToken", { enumerable: true, get: function () { return tokens_1.UnnestToken; } });
|
|
8
22
|
var isSqlToken_1 = require("./utilities/isSqlToken");
|
|
9
23
|
Object.defineProperty(exports, "isSqlToken", { enumerable: true, get: function () { return isSqlToken_1.isSqlToken; } });
|
|
10
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yDAAwD;AAA/C,4GAAA,YAAY,OAAA;AACrB,mFAAkF;AAAzE,sIAAA,yBAAyB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yDAAwD;AAA/C,4GAAA,YAAY,OAAA;AACrB,mFAAkF;AAAzE,sIAAA,yBAAyB,OAAA;AAClC,mCAckB;AAbhB,oGAAA,UAAU,OAAA;AACV,qGAAA,WAAW,OAAA;AACX,kHAAA,wBAAwB,OAAA;AACxB,mGAAA,SAAS,OAAA;AACT,uGAAA,aAAa,OAAA;AACb,yGAAA,eAAe,OAAA;AACf,uGAAA,aAAa,OAAA;AACb,yGAAA,eAAe,OAAA;AACf,mGAAA,SAAS,OAAA;AACT,mGAAA,SAAS,OAAA;AACT,oGAAA,UAAU,OAAA;AACV,wGAAA,cAAc,OAAA;AACd,qGAAA,WAAW,OAAA;AAuBb,qDAAoD;AAA3C,wGAAA,UAAU,OAAA"}
|
|
@@ -27,7 +27,7 @@ const createArraySqlFragment = (token, greatestParameterPosition) => {
|
|
|
27
27
|
placeholderIndex++;
|
|
28
28
|
let sql = (0, formatSlonikPlaceholder_1.formatSlonikPlaceholder)(placeholderIndex) + '::';
|
|
29
29
|
if ((0, isSqlToken_1.isSqlToken)(token.memberType) &&
|
|
30
|
-
token.memberType.type === 'SLONIK_TOKEN_FRAGMENT') {
|
|
30
|
+
Symbol.keyFor(token.memberType.type) === 'SLONIK_TOKEN_FRAGMENT') {
|
|
31
31
|
const sqlFragment = (0, createSqlTokenSqlFragment_1.createSqlTokenSqlFragment)(token.memberType, placeholderIndex);
|
|
32
32
|
if (sqlFragment.values.length > 0) {
|
|
33
33
|
throw new errors_1.UnexpectedStateError('Type is not expected to have a value binding.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createArraySqlFragment.js","sourceRoot":"","sources":["../../src/sqlFragmentFactories/createArraySqlFragment.ts"],"names":[],"mappings":";;;AAAA,sFAAmF;AACnF,sCAA0C;AAE1C,oEAAiE;AACjE,kFAA+E;AAC/E,wFAAqF;AACrF,wDAAqD;AACrD,2CAAyE;AAElE,MAAM,sBAAsB,GAAG,CACpC,KAAoB,EACpB,yBAAiC,EACf,EAAE;IACpB,IAAI,gBAAgB,GAAG,yBAAyB,CAAC;IAEjD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,0BAAiB,CACzB,kEAAkE,CACnE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAA,uDAA0B,EAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,0BAAiB,CACzB,kEAAkE,CACnE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9B,gBAAgB,EAAE,CAAC;IAEnB,IAAI,GAAG,GAAG,IAAA,iDAAuB,EAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAE3D,IACE,IAAA,uBAAU,EAAC,KAAK,CAAC,UAAU,CAAC;QAC5B,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,uBAAuB,
|
|
1
|
+
{"version":3,"file":"createArraySqlFragment.js","sourceRoot":"","sources":["../../src/sqlFragmentFactories/createArraySqlFragment.ts"],"names":[],"mappings":";;;AAAA,sFAAmF;AACnF,sCAA0C;AAE1C,oEAAiE;AACjE,kFAA+E;AAC/E,wFAAqF;AACrF,wDAAqD;AACrD,2CAAyE;AAElE,MAAM,sBAAsB,GAAG,CACpC,KAAoB,EACpB,yBAAiC,EACf,EAAE;IACpB,IAAI,gBAAgB,GAAG,yBAAyB,CAAC;IAEjD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,0BAAiB,CACzB,kEAAkE,CACnE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAA,uDAA0B,EAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,0BAAiB,CACzB,kEAAkE,CACnE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9B,gBAAgB,EAAE,CAAC;IAEnB,IAAI,GAAG,GAAG,IAAA,iDAAuB,EAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAE3D,IACE,IAAA,uBAAU,EAAC,KAAK,CAAC,UAAU,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,uBAAuB,EAChE,CAAC;QACD,MAAM,WAAW,GAAG,IAAA,qDAAyB,EAC3C,KAAK,CAAC,UAAU,EAChB,gBAAgB,CACjB,CAAC;QAEF,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,6BAAoB,CAC5B,+CAA+C,CAChD,CAAC;QACJ,CAAC;QAED,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC;IACzB,CAAC;SAAM,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAChD,GAAG,IAAI,IAAA,mCAAgB,EAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,0BAAiB,CACzB,sGAAsG,CACvG,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG;QACH,IAAI,EAAE,sBAAa;QACnB,MAAM;KACP,CAAC;AACJ,CAAC,CAAC;AA3DW,QAAA,sBAAsB,0BA2DjC"}
|
package/dist/tokens.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export declare const ArrayToken:
|
|
2
|
-
export declare const BinaryToken:
|
|
3
|
-
export declare const ComparisonPredicateToken:
|
|
4
|
-
export declare const DateToken:
|
|
5
|
-
export declare const FragmentToken:
|
|
6
|
-
export declare const IdentifierToken:
|
|
7
|
-
export declare const IntervalToken:
|
|
8
|
-
export declare const JsonBinaryToken:
|
|
9
|
-
export declare const JsonToken:
|
|
10
|
-
export declare const ListToken:
|
|
11
|
-
export declare const QueryToken:
|
|
12
|
-
export declare const TimestampToken:
|
|
13
|
-
export declare const UnnestToken:
|
|
1
|
+
export declare const ArrayToken: unique symbol;
|
|
2
|
+
export declare const BinaryToken: unique symbol;
|
|
3
|
+
export declare const ComparisonPredicateToken: unique symbol;
|
|
4
|
+
export declare const DateToken: unique symbol;
|
|
5
|
+
export declare const FragmentToken: unique symbol;
|
|
6
|
+
export declare const IdentifierToken: unique symbol;
|
|
7
|
+
export declare const IntervalToken: unique symbol;
|
|
8
|
+
export declare const JsonBinaryToken: unique symbol;
|
|
9
|
+
export declare const JsonToken: unique symbol;
|
|
10
|
+
export declare const ListToken: unique symbol;
|
|
11
|
+
export declare const QueryToken: unique symbol;
|
|
12
|
+
export declare const TimestampToken: unique symbol;
|
|
13
|
+
export declare const UnnestToken: unique symbol;
|
|
14
14
|
//# sourceMappingURL=tokens.d.ts.map
|
package/dist/tokens.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,eAAmC,CAAC;AAC3D,eAAO,MAAM,WAAW,eAAoC,CAAC;AAC7D,eAAO,MAAM,wBAAwB,eAEpC,CAAC;AACF,eAAO,MAAM,SAAS,eAAkC,CAAC;AACzD,eAAO,MAAM,aAAa,eAAsC,CAAC;AACjE,eAAO,MAAM,eAAe,eAAwC,CAAC;AACrE,eAAO,MAAM,aAAa,eAAsC,CAAC;AACjE,eAAO,MAAM,eAAe,eAAyC,CAAC;AACtE,eAAO,MAAM,SAAS,eAAkC,CAAC;AACzD,eAAO,MAAM,SAAS,eAAkC,CAAC;AACzD,eAAO,MAAM,UAAU,eAAmC,CAAC;AAC3D,eAAO,MAAM,cAAc,eAAuC,CAAC;AACnE,eAAO,MAAM,WAAW,eAAoC,CAAC"}
|
package/dist/tokens.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UnnestToken = exports.TimestampToken = exports.QueryToken = exports.ListToken = exports.JsonToken = exports.JsonBinaryToken = exports.IntervalToken = exports.IdentifierToken = exports.FragmentToken = exports.DateToken = exports.ComparisonPredicateToken = exports.BinaryToken = exports.ArrayToken = void 0;
|
|
4
|
-
exports.ArrayToken = 'SLONIK_TOKEN_ARRAY';
|
|
5
|
-
exports.BinaryToken = 'SLONIK_TOKEN_BINARY';
|
|
6
|
-
exports.ComparisonPredicateToken = 'SLONIK_TOKEN_COMPARISON_PREDICATE';
|
|
7
|
-
exports.DateToken = 'SLONIK_TOKEN_DATE';
|
|
8
|
-
exports.FragmentToken = 'SLONIK_TOKEN_FRAGMENT';
|
|
9
|
-
exports.IdentifierToken = 'SLONIK_TOKEN_IDENTIFIER';
|
|
10
|
-
exports.IntervalToken = 'SLONIK_TOKEN_INTERVAL';
|
|
11
|
-
exports.JsonBinaryToken = 'SLONIK_TOKEN_JSON_BINARY';
|
|
12
|
-
exports.JsonToken = 'SLONIK_TOKEN_JSON';
|
|
13
|
-
exports.ListToken = 'SLONIK_TOKEN_LIST';
|
|
14
|
-
exports.QueryToken = 'SLONIK_TOKEN_QUERY';
|
|
15
|
-
exports.TimestampToken = 'SLONIK_TOKEN_TIMESTAMP';
|
|
16
|
-
exports.UnnestToken = 'SLONIK_TOKEN_UNNEST';
|
|
4
|
+
exports.ArrayToken = Symbol.for('SLONIK_TOKEN_ARRAY');
|
|
5
|
+
exports.BinaryToken = Symbol.for('SLONIK_TOKEN_BINARY');
|
|
6
|
+
exports.ComparisonPredicateToken = Symbol.for('SLONIK_TOKEN_COMPARISON_PREDICATE');
|
|
7
|
+
exports.DateToken = Symbol.for('SLONIK_TOKEN_DATE');
|
|
8
|
+
exports.FragmentToken = Symbol.for('SLONIK_TOKEN_FRAGMENT');
|
|
9
|
+
exports.IdentifierToken = Symbol.for('SLONIK_TOKEN_IDENTIFIER');
|
|
10
|
+
exports.IntervalToken = Symbol.for('SLONIK_TOKEN_INTERVAL');
|
|
11
|
+
exports.JsonBinaryToken = Symbol.for('SLONIK_TOKEN_JSON_BINARY');
|
|
12
|
+
exports.JsonToken = Symbol.for('SLONIK_TOKEN_JSON');
|
|
13
|
+
exports.ListToken = Symbol.for('SLONIK_TOKEN_LIST');
|
|
14
|
+
exports.QueryToken = Symbol.for('SLONIK_TOKEN_QUERY');
|
|
15
|
+
exports.TimestampToken = Symbol.for('SLONIK_TOKEN_TIMESTAMP');
|
|
16
|
+
exports.UnnestToken = Symbol.for('SLONIK_TOKEN_UNNEST');
|
|
17
17
|
//# sourceMappingURL=tokens.js.map
|
package/dist/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAC9C,QAAA,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAChD,QAAA,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAChD,mCAAmC,CACpC,CAAC;AACW,QAAA,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAC5C,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AACpD,QAAA,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AACxD,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AACpD,QAAA,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AACzD,QAAA,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAC5C,QAAA,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAC5C,QAAA,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAC9C,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AACtD,QAAA,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isSqlToken.d.ts","sourceRoot":"","sources":["../../src/utilities/isSqlToken.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,QAAQ,IAAI,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"isSqlToken.d.ts","sourceRoot":"","sources":["../../src/utilities/isSqlToken.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,QAAQ,IAAI,YAAY,EAAE,MAAM,UAAU,CAAC;AAgCzD,eAAO,MAAM,UAAU,YAAa,OAAO,4BAuC1C,CAAC"}
|
|
@@ -19,6 +19,13 @@ const Tokens = [
|
|
|
19
19
|
tokens_1.TimestampToken,
|
|
20
20
|
tokens_1.UnnestToken,
|
|
21
21
|
];
|
|
22
|
+
const tokenNamess = Tokens.map((token) => {
|
|
23
|
+
const tokenTypeName = Symbol.keyFor(token);
|
|
24
|
+
if (typeof tokenTypeName !== 'string') {
|
|
25
|
+
throw new errors_1.UnexpectedStateError('Expected token type be a symbol with inferrable key');
|
|
26
|
+
}
|
|
27
|
+
return tokenTypeName;
|
|
28
|
+
});
|
|
22
29
|
const isSqlToken = (subject) => {
|
|
23
30
|
if (typeof subject !== 'object' || subject === null) {
|
|
24
31
|
return false;
|
|
@@ -26,10 +33,28 @@ const isSqlToken = (subject) => {
|
|
|
26
33
|
if (!(0, hasOwnProperty_1.hasOwnProperty)(subject, 'type')) {
|
|
27
34
|
throw new errors_1.UnexpectedStateError('Expected token to include "type" property.');
|
|
28
35
|
}
|
|
29
|
-
|
|
30
|
-
|
|
36
|
+
const tokenType = subject.type;
|
|
37
|
+
if (typeof tokenType !== 'symbol') {
|
|
38
|
+
throw new errors_1.UnexpectedStateError('Expected type to be symbol.');
|
|
39
|
+
}
|
|
40
|
+
const tokenTypeName = Symbol.keyFor(tokenType);
|
|
41
|
+
if (typeof tokenTypeName !== 'string') {
|
|
42
|
+
throw new errors_1.UnexpectedStateError('Expected token type to be a symbol with inferrable key');
|
|
31
43
|
}
|
|
32
|
-
|
|
44
|
+
// It is worth clarifying that we don't care if symbols match.
|
|
45
|
+
// However, we do care that:
|
|
46
|
+
// 1) the type is a symbol; and
|
|
47
|
+
// 2) we can recognize the key
|
|
48
|
+
//
|
|
49
|
+
// The reason we care that the type is a symbol,
|
|
50
|
+
// is because it makes it impossible to inject
|
|
51
|
+
// it from outside of the codebase, e.g. through JSON.
|
|
52
|
+
//
|
|
53
|
+
// The reason we don't try to match instance of an object
|
|
54
|
+
// is because there is because it makes it difficult
|
|
55
|
+
// to version Slonik plugins that are used to
|
|
56
|
+
// construct custom SQL fragments.
|
|
57
|
+
return tokenNamess.includes(tokenTypeName);
|
|
33
58
|
};
|
|
34
59
|
exports.isSqlToken = isSqlToken;
|
|
35
60
|
//# sourceMappingURL=isSqlToken.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isSqlToken.js","sourceRoot":"","sources":["../../src/utilities/isSqlToken.ts"],"names":[],"mappings":";;;AAAA,sCAcmB;AAEnB,qDAAkD;AAClD,2CAAsD;AAEtD,MAAM,MAAM,GAAG;IACb,mBAAU;IACV,oBAAW;IACX,iCAAwB;IACxB,kBAAS;IACT,sBAAa;IACb,wBAAe;IACf,sBAAa;IACb,wBAAe;IACf,kBAAS;IACT,kBAAS;IACT,mBAAU;IACV,uBAAc;IACd,oBAAW;CACH,CAAC;
|
|
1
|
+
{"version":3,"file":"isSqlToken.js","sourceRoot":"","sources":["../../src/utilities/isSqlToken.ts"],"names":[],"mappings":";;;AAAA,sCAcmB;AAEnB,qDAAkD;AAClD,2CAAsD;AAEtD,MAAM,MAAM,GAAG;IACb,mBAAU;IACV,oBAAW;IACX,iCAAwB;IACxB,kBAAS;IACT,sBAAa;IACb,wBAAe;IACf,sBAAa;IACb,wBAAe;IACf,kBAAS;IACT,kBAAS;IACT,mBAAU;IACV,uBAAc;IACd,oBAAW;CACH,CAAC;AAEX,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;IACvC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE3C,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,6BAAoB,CAC5B,qDAAqD,CACtD,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC,CAAC;AAEI,MAAM,UAAU,GAAG,CAAC,OAAgB,EAA2B,EAAE;IACtE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,IAAA,+BAAc,EAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,6BAAoB,CAC5B,4CAA4C,CAC7C,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,6BAAoB,CAAC,6BAA6B,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE/C,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,6BAAoB,CAC5B,wDAAwD,CACzD,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,4BAA4B;IAC5B,+BAA+B;IAC/B,8BAA8B;IAC9B,EAAE;IACF,gDAAgD;IAChD,8CAA8C;IAC9C,sDAAsD;IACtD,EAAE;IACF,yDAAyD;IACzD,oDAAoD;IACpD,6CAA6C;IAC7C,kCAAkC;IAClC,OAAO,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC7C,CAAC,CAAC;AAvCW,QAAA,UAAU,cAuCrB"}
|
package/package.json
CHANGED
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
]
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@slonik/errors": "^
|
|
20
|
-
"@slonik/types": "^
|
|
19
|
+
"@slonik/errors": "^44.0.0",
|
|
20
|
+
"@slonik/types": "^44.0.0",
|
|
21
21
|
"roarr": "^7.21.1",
|
|
22
22
|
"safe-stable-stringify": "^2.4.3",
|
|
23
23
|
"serialize-error": "^8.0.0"
|
|
@@ -83,5 +83,5 @@
|
|
|
83
83
|
"test": "nyc ava --verbose --serial"
|
|
84
84
|
},
|
|
85
85
|
"types": "./dist/index.d.ts",
|
|
86
|
-
"version": "
|
|
86
|
+
"version": "44.0.0"
|
|
87
87
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
export { createSqlTag } from './factories/createSqlTag';
|
|
2
2
|
export { createSqlTokenSqlFragment } from './factories/createSqlTokenSqlFragment';
|
|
3
|
+
export {
|
|
4
|
+
ArrayToken,
|
|
5
|
+
BinaryToken,
|
|
6
|
+
ComparisonPredicateToken,
|
|
7
|
+
DateToken,
|
|
8
|
+
FragmentToken,
|
|
9
|
+
IdentifierToken,
|
|
10
|
+
IntervalToken,
|
|
11
|
+
JsonBinaryToken,
|
|
12
|
+
JsonToken,
|
|
13
|
+
ListToken,
|
|
14
|
+
QueryToken,
|
|
15
|
+
TimestampToken,
|
|
16
|
+
UnnestToken,
|
|
17
|
+
} from './tokens';
|
|
3
18
|
export {
|
|
4
19
|
type ArraySqlToken,
|
|
5
20
|
type BinarySqlToken,
|
|
@@ -39,7 +39,7 @@ export const createArraySqlFragment = (
|
|
|
39
39
|
|
|
40
40
|
if (
|
|
41
41
|
isSqlToken(token.memberType) &&
|
|
42
|
-
token.memberType.type === 'SLONIK_TOKEN_FRAGMENT'
|
|
42
|
+
Symbol.keyFor(token.memberType.type) === 'SLONIK_TOKEN_FRAGMENT'
|
|
43
43
|
) {
|
|
44
44
|
const sqlFragment = createSqlTokenSqlFragment(
|
|
45
45
|
token.memberType,
|
package/src/tokens.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
export const ArrayToken = 'SLONIK_TOKEN_ARRAY'
|
|
2
|
-
export const BinaryToken = 'SLONIK_TOKEN_BINARY'
|
|
3
|
-
export const ComparisonPredicateToken =
|
|
4
|
-
'SLONIK_TOKEN_COMPARISON_PREDICATE'
|
|
5
|
-
|
|
6
|
-
export const
|
|
7
|
-
export const
|
|
8
|
-
export const
|
|
9
|
-
export const
|
|
10
|
-
export const
|
|
11
|
-
export const
|
|
12
|
-
export const
|
|
13
|
-
export const
|
|
14
|
-
export const
|
|
1
|
+
export const ArrayToken = Symbol.for('SLONIK_TOKEN_ARRAY');
|
|
2
|
+
export const BinaryToken = Symbol.for('SLONIK_TOKEN_BINARY');
|
|
3
|
+
export const ComparisonPredicateToken = Symbol.for(
|
|
4
|
+
'SLONIK_TOKEN_COMPARISON_PREDICATE',
|
|
5
|
+
);
|
|
6
|
+
export const DateToken = Symbol.for('SLONIK_TOKEN_DATE');
|
|
7
|
+
export const FragmentToken = Symbol.for('SLONIK_TOKEN_FRAGMENT');
|
|
8
|
+
export const IdentifierToken = Symbol.for('SLONIK_TOKEN_IDENTIFIER');
|
|
9
|
+
export const IntervalToken = Symbol.for('SLONIK_TOKEN_INTERVAL');
|
|
10
|
+
export const JsonBinaryToken = Symbol.for('SLONIK_TOKEN_JSON_BINARY');
|
|
11
|
+
export const JsonToken = Symbol.for('SLONIK_TOKEN_JSON');
|
|
12
|
+
export const ListToken = Symbol.for('SLONIK_TOKEN_LIST');
|
|
13
|
+
export const QueryToken = Symbol.for('SLONIK_TOKEN_QUERY');
|
|
14
|
+
export const TimestampToken = Symbol.for('SLONIK_TOKEN_TIMESTAMP');
|
|
15
|
+
export const UnnestToken = Symbol.for('SLONIK_TOKEN_UNNEST');
|
|
@@ -33,6 +33,18 @@ const Tokens = [
|
|
|
33
33
|
UnnestToken,
|
|
34
34
|
] as const;
|
|
35
35
|
|
|
36
|
+
const tokenNamess = Tokens.map((token) => {
|
|
37
|
+
const tokenTypeName = Symbol.keyFor(token);
|
|
38
|
+
|
|
39
|
+
if (typeof tokenTypeName !== 'string') {
|
|
40
|
+
throw new UnexpectedStateError(
|
|
41
|
+
'Expected token type be a symbol with inferrable key',
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return tokenTypeName;
|
|
46
|
+
});
|
|
47
|
+
|
|
36
48
|
export const isSqlToken = (subject: unknown): subject is SqlTokenType => {
|
|
37
49
|
if (typeof subject !== 'object' || subject === null) {
|
|
38
50
|
return false;
|
|
@@ -44,9 +56,32 @@ export const isSqlToken = (subject: unknown): subject is SqlTokenType => {
|
|
|
44
56
|
);
|
|
45
57
|
}
|
|
46
58
|
|
|
47
|
-
|
|
48
|
-
|
|
59
|
+
const tokenType = subject.type;
|
|
60
|
+
|
|
61
|
+
if (typeof tokenType !== 'symbol') {
|
|
62
|
+
throw new UnexpectedStateError('Expected type to be symbol.');
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const tokenTypeName = Symbol.keyFor(tokenType);
|
|
66
|
+
|
|
67
|
+
if (typeof tokenTypeName !== 'string') {
|
|
68
|
+
throw new UnexpectedStateError(
|
|
69
|
+
'Expected token type to be a symbol with inferrable key',
|
|
70
|
+
);
|
|
49
71
|
}
|
|
50
72
|
|
|
51
|
-
|
|
73
|
+
// It is worth clarifying that we don't care if symbols match.
|
|
74
|
+
// However, we do care that:
|
|
75
|
+
// 1) the type is a symbol; and
|
|
76
|
+
// 2) we can recognize the key
|
|
77
|
+
//
|
|
78
|
+
// The reason we care that the type is a symbol,
|
|
79
|
+
// is because it makes it impossible to inject
|
|
80
|
+
// it from outside of the codebase, e.g. through JSON.
|
|
81
|
+
//
|
|
82
|
+
// The reason we don't try to match instance of an object
|
|
83
|
+
// is because there is because it makes it difficult
|
|
84
|
+
// to version Slonik plugins that are used to
|
|
85
|
+
// construct custom SQL fragments.
|
|
86
|
+
return tokenNamess.includes(tokenTypeName);
|
|
52
87
|
};
|