@slonik/sql-tag 48.12.3 → 48.13.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/README.md +0 -1
- package/dist/Logger.js +2 -2
- package/dist/factories/createPrimitiveValueExpressions.d.ts +1 -1
- package/dist/factories/createPrimitiveValueExpressions.js +10 -10
- package/dist/factories/createSqlTag.d.ts +2 -2
- package/dist/factories/createSqlTag.d.ts.map +1 -1
- package/dist/factories/createSqlTag.js +16 -16
- package/dist/factories/createSqlTag.js.map +1 -1
- package/dist/factories/createSqlTag.test/array.test.js +44 -44
- package/dist/factories/createSqlTag.test/array.test.js.map +1 -1
- package/dist/factories/createSqlTag.test/date.test.js +9 -9
- package/dist/factories/createSqlTag.test/date.test.js.map +1 -1
- package/dist/factories/createSqlTag.test/identifier.test.js +11 -14
- package/dist/factories/createSqlTag.test/identifier.test.js.map +1 -1
- package/dist/factories/createSqlTag.test/interval.test.js +10 -10
- package/dist/factories/createSqlTag.test/join.test.js +24 -24
- package/dist/factories/createSqlTag.test/join.test.js.map +1 -1
- package/dist/factories/createSqlTag.test/json.test.js +27 -27
- package/dist/factories/createSqlTag.test/json.test.js.map +1 -1
- package/dist/factories/createSqlTag.test/jsonb.test.js +27 -27
- package/dist/factories/createSqlTag.test/jsonb.test.js.map +1 -1
- package/dist/factories/createSqlTag.test/literalValue.test.js +5 -5
- package/dist/factories/createSqlTag.test/literalValue.test.js.map +1 -1
- package/dist/factories/createSqlTag.test/sql.test.js +37 -37
- package/dist/factories/createSqlTag.test/sql.test.js.map +1 -1
- package/dist/factories/createSqlTag.test/timestamp.test.js +9 -9
- package/dist/factories/createSqlTag.test/timestamp.test.js.map +1 -1
- package/dist/factories/createSqlTag.test/type.test.js +4 -4
- package/dist/factories/createSqlTag.test/typeAlias.test.js +8 -8
- package/dist/factories/createSqlTag.test/unnest.test.js +25 -25
- package/dist/factories/createSqlTag.test/unnest.test.js.map +1 -1
- package/dist/factories/createSqlTag.test/uuid.test.js +10 -10
- package/dist/factories/createSqlTag.test/uuid.test.js.map +1 -1
- package/dist/factories/createSqlTokenSqlFragment.d.ts +1 -1
- package/dist/factories/createSqlTokenSqlFragment.d.ts.map +1 -1
- package/dist/factories/createSqlTokenSqlFragment.js +28 -67
- package/dist/factories/createSqlTokenSqlFragment.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.js +4 -4
- package/dist/sqlFragmentFactories/createArraySqlFragment.d.ts +1 -1
- package/dist/sqlFragmentFactories/createArraySqlFragment.d.ts.map +1 -1
- package/dist/sqlFragmentFactories/createArraySqlFragment.js +15 -15
- package/dist/sqlFragmentFactories/createArraySqlFragment.js.map +1 -1
- package/dist/sqlFragmentFactories/createBinarySqlFragment.d.ts +1 -1
- package/dist/sqlFragmentFactories/createBinarySqlFragment.js +4 -4
- package/dist/sqlFragmentFactories/createDateSqlFragment.d.ts +1 -1
- package/dist/sqlFragmentFactories/createDateSqlFragment.d.ts.map +1 -1
- package/dist/sqlFragmentFactories/createDateSqlFragment.js +5 -5
- package/dist/sqlFragmentFactories/createDateSqlFragment.js.map +1 -1
- package/dist/sqlFragmentFactories/createFragmentSqlFragment.d.ts +1 -1
- package/dist/sqlFragmentFactories/createFragmentSqlFragment.d.ts.map +1 -1
- package/dist/sqlFragmentFactories/createFragmentSqlFragment.js +7 -7
- package/dist/sqlFragmentFactories/createFragmentSqlFragment.js.map +1 -1
- package/dist/sqlFragmentFactories/createIdentifierSqlFragment.d.ts +1 -1
- package/dist/sqlFragmentFactories/createIdentifierSqlFragment.d.ts.map +1 -1
- package/dist/sqlFragmentFactories/createIdentifierSqlFragment.js +6 -6
- package/dist/sqlFragmentFactories/createIdentifierSqlFragment.js.map +1 -1
- package/dist/sqlFragmentFactories/createIntervalSqlFragment.d.ts +1 -1
- package/dist/sqlFragmentFactories/createIntervalSqlFragment.d.ts.map +1 -1
- package/dist/sqlFragmentFactories/createIntervalSqlFragment.js +10 -20
- package/dist/sqlFragmentFactories/createIntervalSqlFragment.js.map +1 -1
- package/dist/sqlFragmentFactories/createJsonSqlFragment.d.ts +1 -1
- package/dist/sqlFragmentFactories/createJsonSqlFragment.d.ts.map +1 -1
- package/dist/sqlFragmentFactories/createJsonSqlFragment.js +16 -18
- package/dist/sqlFragmentFactories/createJsonSqlFragment.js.map +1 -1
- package/dist/sqlFragmentFactories/createListSqlFragment.d.ts +1 -1
- package/dist/sqlFragmentFactories/createListSqlFragment.d.ts.map +1 -1
- package/dist/sqlFragmentFactories/createListSqlFragment.js +9 -9
- package/dist/sqlFragmentFactories/createListSqlFragment.js.map +1 -1
- package/dist/sqlFragmentFactories/createQuerySqlFragment.d.ts +1 -1
- package/dist/sqlFragmentFactories/createQuerySqlFragment.d.ts.map +1 -1
- package/dist/sqlFragmentFactories/createQuerySqlFragment.js +7 -7
- package/dist/sqlFragmentFactories/createQuerySqlFragment.js.map +1 -1
- package/dist/sqlFragmentFactories/createTimestampSqlFragment.d.ts +1 -1
- package/dist/sqlFragmentFactories/createTimestampSqlFragment.d.ts.map +1 -1
- package/dist/sqlFragmentFactories/createTimestampSqlFragment.js +5 -7
- package/dist/sqlFragmentFactories/createTimestampSqlFragment.js.map +1 -1
- package/dist/sqlFragmentFactories/createUnnestSqlFragment.d.ts +1 -1
- package/dist/sqlFragmentFactories/createUnnestSqlFragment.d.ts.map +1 -1
- package/dist/sqlFragmentFactories/createUnnestSqlFragment.js +19 -20
- package/dist/sqlFragmentFactories/createUnnestSqlFragment.js.map +1 -1
- package/dist/sqlFragmentFactories/createUuidSqlFragment.d.ts +1 -1
- package/dist/sqlFragmentFactories/createUuidSqlFragment.js +5 -5
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +14 -14
- package/dist/tokens.js.map +1 -1
- package/dist/types.d.ts +5 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/utilities/countArrayDimensions.js +1 -1
- package/dist/utilities/countArrayDimensions.test.js +6 -6
- package/dist/utilities/escapeIdentifier.test.js +5 -5
- package/dist/utilities/escapeLiteralValue.js +2 -2
- package/dist/utilities/escapeLiteralValue.test.js +7 -7
- package/dist/utilities/formatSlonikPlaceholder.js +1 -1
- package/dist/utilities/isPlainObject.js +1 -1
- package/dist/utilities/isPrimitiveValueExpression.js +4 -4
- package/dist/utilities/isSqlToken.d.ts +1 -1
- package/dist/utilities/isSqlToken.d.ts.map +1 -1
- package/dist/utilities/isSqlToken.js +9 -9
- package/dist/utilities/isSqlToken.js.map +1 -1
- package/dist/utilities/safeStringify.js +3 -3
- package/dist/utilities/stripArrayNotation.js +1 -1
- package/dist/utilities/stripArrayNotation.test.js +6 -6
- package/package.json +35 -39
- package/src/Logger.ts +2 -2
- package/src/declarations.d.ts +2 -2
- package/src/factories/createPrimitiveValueExpressions.ts +11 -11
- package/src/factories/createSqlTag.test/array.test.ts +54 -66
- package/src/factories/createSqlTag.test/date.test.ts +9 -11
- package/src/factories/createSqlTag.test/identifier.test.ts +11 -14
- package/src/factories/createSqlTag.test/interval.test.ts +10 -10
- package/src/factories/createSqlTag.test/join.test.ts +25 -31
- package/src/factories/createSqlTag.test/json.test.ts +27 -30
- package/src/factories/createSqlTag.test/jsonb.test.ts +27 -30
- package/src/factories/createSqlTag.test/literalValue.test.ts +5 -7
- package/src/factories/createSqlTag.test/sql.test.ts +38 -41
- package/src/factories/createSqlTag.test/timestamp.test.ts +9 -14
- package/src/factories/createSqlTag.test/type.test.ts +4 -4
- package/src/factories/createSqlTag.test/typeAlias.test.ts +9 -9
- package/src/factories/createSqlTag.test/unnest.test.ts +25 -34
- package/src/factories/createSqlTag.test/uuid.test.ts +10 -12
- package/src/factories/createSqlTag.ts +26 -47
- package/src/factories/createSqlTokenSqlFragment.ts +30 -74
- package/src/index.ts +5 -5
- package/src/sqlFragmentFactories/createArraySqlFragment.ts +17 -22
- package/src/sqlFragmentFactories/createBinarySqlFragment.ts +5 -5
- package/src/sqlFragmentFactories/createDateSqlFragment.ts +6 -8
- package/src/sqlFragmentFactories/createFragmentSqlFragment.ts +9 -11
- package/src/sqlFragmentFactories/createIdentifierSqlFragment.ts +8 -12
- package/src/sqlFragmentFactories/createIntervalSqlFragment.ts +11 -23
- package/src/sqlFragmentFactories/createJsonSqlFragment.ts +17 -25
- package/src/sqlFragmentFactories/createListSqlFragment.ts +10 -14
- package/src/sqlFragmentFactories/createQuerySqlFragment.ts +9 -11
- package/src/sqlFragmentFactories/createTimestampSqlFragment.ts +6 -11
- package/src/sqlFragmentFactories/createUnnestSqlFragment.ts +20 -29
- package/src/sqlFragmentFactories/createUuidSqlFragment.ts +6 -6
- package/src/tokens.ts +14 -16
- package/src/types.ts +65 -87
- package/src/utilities/countArrayDimensions.test.ts +6 -6
- package/src/utilities/countArrayDimensions.ts +1 -1
- package/src/utilities/escapeIdentifier.test.ts +5 -5
- package/src/utilities/escapeLiteralValue.test.ts +7 -7
- package/src/utilities/escapeLiteralValue.ts +2 -2
- package/src/utilities/formatSlonikPlaceholder.ts +1 -1
- package/src/utilities/isPlainObject.ts +1 -1
- package/src/utilities/isPrimitiveValueExpression.ts +4 -4
- package/src/utilities/isSqlToken.ts +10 -12
- package/src/utilities/safeStringify.ts +3 -3
- package/src/utilities/stripArrayNotation.test.ts +6 -6
- package/src/utilities/stripArrayNotation.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join.test.js","sourceRoot":"","sources":["../../../src/factories/createSqlTag.test/join.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,IAAI,MAAM,KAAK,CAAC;AAEvB,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;AAE3B,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE;IACrC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAA,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAA,IAAI,CAAC,GAAG,CAAC;IAE9E,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;QACjB,GAAG,EAAE,0CAA0C;QAC/C,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KAClB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qCAAqC,EAAE,CAAC,CAAC,EAAE,EAAE;IAChD,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAA,UAAU,GAAG,CAAC,IAAI,CAC1C,CAAC,GAAG,CAAC,QAAQ,CAAA,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAA,MAAM,CAAC,EACxC,GAAG,CAAC,QAAQ,CAAA,OAAO,CACpB,EAAE,CAAC;IAEJ,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;QACjB,GAAG,EAAE,sBAAsB;QAC3B,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,EAAE;KACX,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,EAAE,EAAE;IACpC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAA,WAAW,GAAG,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"join.test.js","sourceRoot":"","sources":["../../../src/factories/createSqlTag.test/join.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { FragmentToken } from
|
|
2
|
-
import { createSqlTag } from
|
|
3
|
-
import test from
|
|
1
|
+
import { FragmentToken } from "../../tokens.js";
|
|
2
|
+
import { createSqlTag } from "../createSqlTag.js";
|
|
3
|
+
import test from "ava";
|
|
4
4
|
const sql = createSqlTag();
|
|
5
|
-
test(
|
|
5
|
+
test("creates a value list (object)", (t) => {
|
|
6
6
|
const query = sql.fragment `SELECT ${sql.json({
|
|
7
|
-
foo:
|
|
7
|
+
foo: "bar",
|
|
8
8
|
})}`;
|
|
9
9
|
t.deepEqual(query, {
|
|
10
|
-
sql:
|
|
10
|
+
sql: "SELECT $slonik_1::json",
|
|
11
11
|
type: FragmentToken,
|
|
12
12
|
values: ['{"foo":"bar"}'],
|
|
13
13
|
});
|
|
14
14
|
});
|
|
15
|
-
test(
|
|
15
|
+
test("creates a value list (array)", (t) => {
|
|
16
16
|
const query = sql.fragment `SELECT ${sql.json([
|
|
17
17
|
{
|
|
18
|
-
foo:
|
|
18
|
+
foo: "bar",
|
|
19
19
|
},
|
|
20
20
|
])}`;
|
|
21
21
|
t.deepEqual(query, {
|
|
22
|
-
sql:
|
|
22
|
+
sql: "SELECT $slonik_1::json",
|
|
23
23
|
type: FragmentToken,
|
|
24
24
|
values: ['[{"foo":"bar"}]'],
|
|
25
25
|
});
|
|
@@ -27,55 +27,55 @@ test('creates a value list (array)', (t) => {
|
|
|
27
27
|
test("stringifies NULL to 'null'::json", (t) => {
|
|
28
28
|
const query = sql.fragment `SELECT ${sql.json(null)}`;
|
|
29
29
|
t.deepEqual(query, {
|
|
30
|
-
sql:
|
|
30
|
+
sql: "SELECT $slonik_1::json",
|
|
31
31
|
type: FragmentToken,
|
|
32
|
-
values: [
|
|
32
|
+
values: ["null"],
|
|
33
33
|
});
|
|
34
34
|
});
|
|
35
|
-
test(
|
|
36
|
-
const query = sql.fragment `SELECT ${sql.json(
|
|
35
|
+
test("JSON encodes string values", (t) => {
|
|
36
|
+
const query = sql.fragment `SELECT ${sql.json("example string")}`;
|
|
37
37
|
t.deepEqual(query, {
|
|
38
|
-
sql:
|
|
38
|
+
sql: "SELECT $slonik_1::json",
|
|
39
39
|
type: FragmentToken,
|
|
40
40
|
values: ['"example string"'],
|
|
41
41
|
});
|
|
42
42
|
});
|
|
43
|
-
test(
|
|
43
|
+
test("JSON encodes numeric values", (t) => {
|
|
44
44
|
const query = sql.fragment `SELECT ${sql.json(1_234)}`;
|
|
45
45
|
t.deepEqual(query, {
|
|
46
|
-
sql:
|
|
46
|
+
sql: "SELECT $slonik_1::json",
|
|
47
47
|
type: FragmentToken,
|
|
48
|
-
values: [
|
|
48
|
+
values: ["1234"],
|
|
49
49
|
});
|
|
50
50
|
});
|
|
51
|
-
test(
|
|
51
|
+
test("JSON encodes boolean values", (t) => {
|
|
52
52
|
const query = sql.fragment `SELECT ${sql.json(true)}`;
|
|
53
53
|
t.deepEqual(query, {
|
|
54
|
-
sql:
|
|
54
|
+
sql: "SELECT $slonik_1::json",
|
|
55
55
|
type: FragmentToken,
|
|
56
|
-
values: [
|
|
56
|
+
values: ["true"],
|
|
57
57
|
});
|
|
58
58
|
});
|
|
59
|
-
test(
|
|
59
|
+
test("throws if payload is undefined", (t) => {
|
|
60
60
|
const error = t.throws(() => {
|
|
61
61
|
sql.fragment `SELECT ${sql.json(undefined)}`;
|
|
62
62
|
});
|
|
63
|
-
t.is(error?.message,
|
|
63
|
+
t.is(error?.message, "JSON payload must not be undefined.");
|
|
64
64
|
});
|
|
65
|
-
test(
|
|
65
|
+
test("throws if payload cannot be stringified (non-primitive object)", (t) => {
|
|
66
66
|
const error = t.throws(() => {
|
|
67
67
|
// @ts-expect-error - intentional
|
|
68
68
|
sql.fragment `SELECT ${sql.json(() => { })}`;
|
|
69
69
|
});
|
|
70
|
-
t.is(error?.message,
|
|
70
|
+
t.is(error?.message, "JSON payload must be a primitive value or a plain object.");
|
|
71
71
|
});
|
|
72
|
-
test(
|
|
72
|
+
test("Object types with optional properties are allowed", (t) => {
|
|
73
73
|
const testValue = {
|
|
74
|
-
foo:
|
|
74
|
+
foo: "bar",
|
|
75
75
|
};
|
|
76
76
|
const query = sql.fragment `SELECT ${sql.json(testValue)}`;
|
|
77
77
|
t.deepEqual(query, {
|
|
78
|
-
sql:
|
|
78
|
+
sql: "SELECT $slonik_1::json",
|
|
79
79
|
type: FragmentToken,
|
|
80
80
|
values: ['{"foo":"bar"}'],
|
|
81
81
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.test.js","sourceRoot":"","sources":["../../../src/factories/createSqlTag.test/json.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"json.test.js","sourceRoot":"","sources":["../../../src/factories/createSqlTag.test/json.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,IAAI,MAAM,KAAK,CAAC;AAEvB,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;AAE3B,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAC,EAAE,EAAE;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAA,UAAU,GAAG,CAAC,IAAI,CAAC;QAC3C,GAAG,EAAE,KAAK;KACX,CAAC,EAAE,CAAC;IAEL,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;QACjB,GAAG,EAAE,wBAAwB;QAC7B,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,CAAC,eAAe,CAAC;KAC1B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8BAA8B,EAAE,CAAC,CAAC,EAAE,EAAE;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAA,UAAU,GAAG,CAAC,IAAI,CAAC;QAC3C;YACE,GAAG,EAAE,KAAK;SACX;KACF,CAAC,EAAE,CAAC;IAEL,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;QACjB,GAAG,EAAE,wBAAwB;QAC7B,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,CAAC,iBAAiB,CAAC;KAC5B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kCAAkC,EAAE,CAAC,CAAC,EAAE,EAAE;IAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAA,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAErD,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;QACjB,GAAG,EAAE,wBAAwB;QAC7B,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,CAAC,MAAM,CAAC;KACjB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,EAAE;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAA,UAAU,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAEjE,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;QACjB,GAAG,EAAE,wBAAwB;QAC7B,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,CAAC,kBAAkB,CAAC;KAC7B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6BAA6B,EAAE,CAAC,CAAC,EAAE,EAAE;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAA,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IAEtD,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;QACjB,GAAG,EAAE,wBAAwB;QAC7B,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,CAAC,MAAM,CAAC;KACjB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6BAA6B,EAAE,CAAC,CAAC,EAAE,EAAE;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAA,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAErD,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;QACjB,GAAG,EAAE,wBAAwB;QAC7B,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,CAAC,MAAM,CAAC;KACjB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gCAAgC,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QAC1B,GAAG,CAAC,QAAQ,CAAA,UAAU,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,qCAAqC,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gEAAgE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3E,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QAC1B,iCAAiC;QACjC,GAAG,CAAC,QAAQ,CAAA,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,2DAA2D,CAAC,CAAC;AACpF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mDAAmD,EAAE,CAAC,CAAC,EAAE,EAAE;IAE9D,MAAM,SAAS,GAA6B;QAC1C,GAAG,EAAE,KAAK;KACX,CAAC;IAEF,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAA,UAAU,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;IAE1D,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;QACjB,GAAG,EAAE,wBAAwB;QAC7B,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,CAAC,eAAe,CAAC;KAC1B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { FragmentToken } from
|
|
2
|
-
import { createSqlTag } from
|
|
3
|
-
import test from
|
|
1
|
+
import { FragmentToken } from "../../tokens.js";
|
|
2
|
+
import { createSqlTag } from "../createSqlTag.js";
|
|
3
|
+
import test from "ava";
|
|
4
4
|
const sql = createSqlTag();
|
|
5
|
-
test(
|
|
5
|
+
test("creates a value list (object)", (t) => {
|
|
6
6
|
const query = sql.fragment `SELECT ${sql.jsonb({
|
|
7
|
-
foo:
|
|
7
|
+
foo: "bar",
|
|
8
8
|
})}`;
|
|
9
9
|
t.deepEqual(query, {
|
|
10
|
-
sql:
|
|
10
|
+
sql: "SELECT $slonik_1::jsonb",
|
|
11
11
|
type: FragmentToken,
|
|
12
12
|
values: ['{"foo":"bar"}'],
|
|
13
13
|
});
|
|
14
14
|
});
|
|
15
|
-
test(
|
|
15
|
+
test("creates a value list (array)", (t) => {
|
|
16
16
|
const query = sql.fragment `SELECT ${sql.jsonb([
|
|
17
17
|
{
|
|
18
|
-
foo:
|
|
18
|
+
foo: "bar",
|
|
19
19
|
},
|
|
20
20
|
])}`;
|
|
21
21
|
t.deepEqual(query, {
|
|
22
|
-
sql:
|
|
22
|
+
sql: "SELECT $slonik_1::jsonb",
|
|
23
23
|
type: FragmentToken,
|
|
24
24
|
values: ['[{"foo":"bar"}]'],
|
|
25
25
|
});
|
|
@@ -27,55 +27,55 @@ test('creates a value list (array)', (t) => {
|
|
|
27
27
|
test("stringifies NULL to 'null'::jsonb", (t) => {
|
|
28
28
|
const query = sql.fragment `SELECT ${sql.jsonb(null)}`;
|
|
29
29
|
t.deepEqual(query, {
|
|
30
|
-
sql:
|
|
30
|
+
sql: "SELECT $slonik_1::jsonb",
|
|
31
31
|
type: FragmentToken,
|
|
32
|
-
values: [
|
|
32
|
+
values: ["null"],
|
|
33
33
|
});
|
|
34
34
|
});
|
|
35
|
-
test(
|
|
36
|
-
const query = sql.fragment `SELECT ${sql.jsonb(
|
|
35
|
+
test("JSON encodes string values", (t) => {
|
|
36
|
+
const query = sql.fragment `SELECT ${sql.jsonb("example string")}`;
|
|
37
37
|
t.deepEqual(query, {
|
|
38
|
-
sql:
|
|
38
|
+
sql: "SELECT $slonik_1::jsonb",
|
|
39
39
|
type: FragmentToken,
|
|
40
40
|
values: ['"example string"'],
|
|
41
41
|
});
|
|
42
42
|
});
|
|
43
|
-
test(
|
|
43
|
+
test("JSON encodes numeric values", (t) => {
|
|
44
44
|
const query = sql.fragment `SELECT ${sql.jsonb(1_234)}`;
|
|
45
45
|
t.deepEqual(query, {
|
|
46
|
-
sql:
|
|
46
|
+
sql: "SELECT $slonik_1::jsonb",
|
|
47
47
|
type: FragmentToken,
|
|
48
|
-
values: [
|
|
48
|
+
values: ["1234"],
|
|
49
49
|
});
|
|
50
50
|
});
|
|
51
|
-
test(
|
|
51
|
+
test("JSON encodes boolean values", (t) => {
|
|
52
52
|
const query = sql.fragment `SELECT ${sql.jsonb(true)}`;
|
|
53
53
|
t.deepEqual(query, {
|
|
54
|
-
sql:
|
|
54
|
+
sql: "SELECT $slonik_1::jsonb",
|
|
55
55
|
type: FragmentToken,
|
|
56
|
-
values: [
|
|
56
|
+
values: ["true"],
|
|
57
57
|
});
|
|
58
58
|
});
|
|
59
|
-
test(
|
|
59
|
+
test("throws if payload is undefined", (t) => {
|
|
60
60
|
const error = t.throws(() => {
|
|
61
61
|
sql.fragment `SELECT ${sql.jsonb(undefined)}`;
|
|
62
62
|
});
|
|
63
|
-
t.is(error?.message,
|
|
63
|
+
t.is(error?.message, "JSON payload must not be undefined.");
|
|
64
64
|
});
|
|
65
|
-
test(
|
|
65
|
+
test("throws if payload cannot be stringified (non-primitive object)", (t) => {
|
|
66
66
|
const error = t.throws(() => {
|
|
67
67
|
// @ts-expect-error - intentional
|
|
68
68
|
sql.fragment `SELECT ${sql.jsonb(() => { })}`;
|
|
69
69
|
});
|
|
70
|
-
t.is(error?.message,
|
|
70
|
+
t.is(error?.message, "JSON payload must be a primitive value or a plain object.");
|
|
71
71
|
});
|
|
72
|
-
test(
|
|
72
|
+
test("Object types with optional properties are allowed", (t) => {
|
|
73
73
|
const testValue = {
|
|
74
|
-
foo:
|
|
74
|
+
foo: "bar",
|
|
75
75
|
};
|
|
76
76
|
const query = sql.fragment `SELECT ${sql.jsonb(testValue)}`;
|
|
77
77
|
t.deepEqual(query, {
|
|
78
|
-
sql:
|
|
78
|
+
sql: "SELECT $slonik_1::jsonb",
|
|
79
79
|
type: FragmentToken,
|
|
80
80
|
values: ['{"foo":"bar"}'],
|
|
81
81
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonb.test.js","sourceRoot":"","sources":["../../../src/factories/createSqlTag.test/jsonb.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"jsonb.test.js","sourceRoot":"","sources":["../../../src/factories/createSqlTag.test/jsonb.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { FragmentToken } from
|
|
2
|
-
import { createSqlTag } from
|
|
3
|
-
import test from
|
|
1
|
+
import { FragmentToken } from "../../tokens.js";
|
|
2
|
+
import { createSqlTag } from "../createSqlTag.js";
|
|
3
|
+
import test from "ava";
|
|
4
4
|
const sql = createSqlTag();
|
|
5
|
-
test(
|
|
6
|
-
const query = sql.fragment `CREATE USER foo WITH PASSWORD ${sql.literalValue(
|
|
5
|
+
test("creates an object describing a query with an inlined literal value", (t) => {
|
|
6
|
+
const query = sql.fragment `CREATE USER foo WITH PASSWORD ${sql.literalValue("bar")}`;
|
|
7
7
|
t.deepEqual(query, {
|
|
8
8
|
sql: "CREATE USER foo WITH PASSWORD 'bar'",
|
|
9
9
|
type: FragmentToken,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literalValue.test.js","sourceRoot":"","sources":["../../../src/factories/createSqlTag.test/literalValue.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,IAAI,MAAM,KAAK,CAAC;AAEvB,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;AAE3B,IAAI,CAAC,oEAAoE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC/E,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAA,iCAAiC,GAAG,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"literalValue.test.js","sourceRoot":"","sources":["../../../src/factories/createSqlTag.test/literalValue.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,IAAI,MAAM,KAAK,CAAC;AAEvB,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;AAE3B,IAAI,CAAC,oEAAoE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC/E,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAA,iCAAiC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;IAErF,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;QACjB,GAAG,EAAE,qCAAqC;QAC1C,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,EAAE;KACX,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { FragmentToken } from
|
|
2
|
-
import { createSqlTag } from
|
|
3
|
-
import { InvalidInputError } from
|
|
4
|
-
import anyTest from
|
|
5
|
-
import { ROARR } from
|
|
1
|
+
import { FragmentToken } from "../../tokens.js";
|
|
2
|
+
import { createSqlTag } from "../createSqlTag.js";
|
|
3
|
+
import { InvalidInputError } from "@slonik/errors";
|
|
4
|
+
import anyTest from "ava";
|
|
5
|
+
import { ROARR } from "roarr";
|
|
6
6
|
const test = anyTest;
|
|
7
7
|
const sql = createSqlTag();
|
|
8
8
|
test.beforeEach((t) => {
|
|
@@ -11,84 +11,84 @@ test.beforeEach((t) => {
|
|
|
11
11
|
t.context.logs.push(JSON.parse(message));
|
|
12
12
|
};
|
|
13
13
|
});
|
|
14
|
-
test(
|
|
14
|
+
test("throws error if called as a function", (t) => {
|
|
15
15
|
const error = t.throws(() => {
|
|
16
16
|
// @ts-expect-error - intentional
|
|
17
17
|
sql.fragment([`SELECT 1`]);
|
|
18
18
|
});
|
|
19
19
|
t.true(error instanceof InvalidInputError);
|
|
20
20
|
});
|
|
21
|
-
test(
|
|
21
|
+
test("creates an object describing a query", (t) => {
|
|
22
22
|
const query = sql.fragment `SELECT 1`;
|
|
23
23
|
t.deepEqual(query, {
|
|
24
|
-
sql:
|
|
24
|
+
sql: "SELECT 1",
|
|
25
25
|
type: FragmentToken,
|
|
26
26
|
values: [],
|
|
27
27
|
});
|
|
28
28
|
});
|
|
29
|
-
test(
|
|
30
|
-
const query = sql.fragment `SELECT ${
|
|
29
|
+
test("creates an object describing query value bindings", (t) => {
|
|
30
|
+
const query = sql.fragment `SELECT ${"foo"}`;
|
|
31
31
|
t.deepEqual(query, {
|
|
32
|
-
sql:
|
|
32
|
+
sql: "SELECT $slonik_1",
|
|
33
33
|
type: FragmentToken,
|
|
34
|
-
values: [
|
|
34
|
+
values: ["foo"],
|
|
35
35
|
});
|
|
36
36
|
});
|
|
37
|
-
test(
|
|
38
|
-
const query = sql.fragment `SELECT ${
|
|
37
|
+
test("creates an object describing query value bindings (multiple)", (t) => {
|
|
38
|
+
const query = sql.fragment `SELECT ${"foo"}, ${"bar"}`;
|
|
39
39
|
t.deepEqual(query, {
|
|
40
|
-
sql:
|
|
40
|
+
sql: "SELECT $slonik_1, $slonik_2",
|
|
41
41
|
type: FragmentToken,
|
|
42
|
-
values: [
|
|
42
|
+
values: ["foo", "bar"],
|
|
43
43
|
});
|
|
44
44
|
});
|
|
45
|
-
test(
|
|
46
|
-
const query0 = sql.fragment `SELECT ${
|
|
47
|
-
const query1 = sql.fragment `SELECT ${
|
|
45
|
+
test("nests sql templates", (t) => {
|
|
46
|
+
const query0 = sql.fragment `SELECT ${"foo"} FROM bar`;
|
|
47
|
+
const query1 = sql.fragment `SELECT ${"baz"} FROM (${query0})`;
|
|
48
48
|
t.deepEqual(query1, {
|
|
49
|
-
sql:
|
|
49
|
+
sql: "SELECT $slonik_1 FROM (SELECT $slonik_2 FROM bar)",
|
|
50
50
|
type: FragmentToken,
|
|
51
|
-
values: [
|
|
51
|
+
values: ["baz", "foo"],
|
|
52
52
|
});
|
|
53
53
|
});
|
|
54
|
-
test(
|
|
54
|
+
test("throws if bound an undefined value", (t) => {
|
|
55
55
|
const error = t.throws(() => {
|
|
56
56
|
// @ts-expect-error - intentional
|
|
57
57
|
sql.fragment `SELECT ${undefined}`;
|
|
58
58
|
});
|
|
59
|
-
t.is(error?.message,
|
|
59
|
+
t.is(error?.message, "SQL tag cannot be bound to undefined value at index 1.");
|
|
60
60
|
});
|
|
61
61
|
// eslint-disable-next-line n/no-process-env
|
|
62
|
-
if (process.env.ROARR_LOG ===
|
|
62
|
+
if (process.env.ROARR_LOG === "1") {
|
|
63
63
|
// This test is only valid when ROARR_LOG=1.
|
|
64
64
|
// TODO find a way to test this without relying on environment variables.
|
|
65
|
-
test.serial(
|
|
65
|
+
test.serial("logs all bound values if one is undefined", (t) => {
|
|
66
66
|
t.throws(() => {
|
|
67
67
|
// @ts-expect-error - intentional
|
|
68
68
|
sql.fragment `SELECT ${undefined}`;
|
|
69
69
|
});
|
|
70
70
|
const targetMessage = t.context.logs.find((message) => {
|
|
71
|
-
return message.message ===
|
|
71
|
+
return message.message === "bound values";
|
|
72
72
|
});
|
|
73
73
|
t.truthy(targetMessage);
|
|
74
|
-
t.deepEqual(targetMessage.context.parts, [
|
|
74
|
+
t.deepEqual(targetMessage.context.parts, ["SELECT ", ""]);
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
|
-
test(
|
|
77
|
+
test("the sql property is immutable", (t) => {
|
|
78
78
|
const query = sql.fragment `SELECT 1`;
|
|
79
79
|
t.throws(() => {
|
|
80
80
|
// @ts-expect-error This is intentional.
|
|
81
|
-
query.sql =
|
|
81
|
+
query.sql = "SELECT 2";
|
|
82
82
|
});
|
|
83
83
|
});
|
|
84
84
|
/**
|
|
85
85
|
* https://github.com/gajus/slonik/pull/552
|
|
86
86
|
*/
|
|
87
|
-
test(
|
|
87
|
+
test("copes with dollar-number in table name", (t) => {
|
|
88
88
|
const query0 = sql.fragment `discounted_to_$1 (offer_id INTEGER)`;
|
|
89
89
|
const query1 = sql.fragment `CREATE TABLE ${query0}`;
|
|
90
90
|
t.deepEqual(query1, {
|
|
91
|
-
sql:
|
|
91
|
+
sql: "CREATE TABLE discounted_to_$1 (offer_id INTEGER)",
|
|
92
92
|
type: FragmentToken,
|
|
93
93
|
values: [],
|
|
94
94
|
});
|
|
@@ -96,11 +96,11 @@ test('copes with dollar-number in table name', (t) => {
|
|
|
96
96
|
/**
|
|
97
97
|
* https://github.com/gajus/slonik/pull/552
|
|
98
98
|
*/
|
|
99
|
-
test(
|
|
99
|
+
test("copes with dollar-number in column name (CREATE TABLE)", (t) => {
|
|
100
100
|
const query0 = sql.fragment `offers (discounted_to_$1 BOOLEAN)`;
|
|
101
101
|
const query1 = sql.fragment `CREATE TABLE ${query0}`;
|
|
102
102
|
t.deepEqual(query1, {
|
|
103
|
-
sql:
|
|
103
|
+
sql: "CREATE TABLE offers (discounted_to_$1 BOOLEAN)",
|
|
104
104
|
type: FragmentToken,
|
|
105
105
|
values: [],
|
|
106
106
|
});
|
|
@@ -108,7 +108,7 @@ test('copes with dollar-number in column name (CREATE TABLE)', (t) => {
|
|
|
108
108
|
/**
|
|
109
109
|
* https://github.com/gajus/slonik/pull/552
|
|
110
110
|
*/
|
|
111
|
-
test(
|
|
111
|
+
test("copes with dollar-number in column name (SELECT)", (t) => {
|
|
112
112
|
const query0 = sql.fragment `"discounted_to_$1" IS TRUE`;
|
|
113
113
|
const query1 = sql.fragment `SELECT * FROM offers WHERE ${query0}`;
|
|
114
114
|
t.deepEqual(query1, {
|
|
@@ -120,7 +120,7 @@ test('copes with dollar-number in column name (SELECT)', (t) => {
|
|
|
120
120
|
/**
|
|
121
121
|
* https://github.com/gajus/slonik/pull/552
|
|
122
122
|
*/
|
|
123
|
-
test(
|
|
123
|
+
test("copes with dollar-number in function definitions", (t) => {
|
|
124
124
|
// example function from https://www.postgresql.org/docs/current/sql-createfunction.html
|
|
125
125
|
const query0 = sql.fragment `add(integer, integer) RETURNS integer
|
|
126
126
|
AS 'select $1 + $2;'
|
|
@@ -138,10 +138,10 @@ test('copes with dollar-number in function definitions', (t) => {
|
|
|
138
138
|
values: [],
|
|
139
139
|
});
|
|
140
140
|
});
|
|
141
|
-
test(
|
|
141
|
+
test("interpolates literal boolean values", (t) => {
|
|
142
142
|
const query = sql.fragment `SELECT ${true}, ${false}`;
|
|
143
143
|
t.deepEqual(query, {
|
|
144
|
-
sql:
|
|
144
|
+
sql: "SELECT $slonik_1, $slonik_2",
|
|
145
145
|
type: FragmentToken,
|
|
146
146
|
values: [true, false],
|
|
147
147
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.test.js","sourceRoot":"","sources":["../../../src/factories/createSqlTag.test/sql.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sql.test.js","sourceRoot":"","sources":["../../../src/factories/createSqlTag.test/sql.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { FragmentToken } from
|
|
2
|
-
import { createSqlTag } from
|
|
3
|
-
import test from
|
|
1
|
+
import { FragmentToken } from "../../tokens.js";
|
|
2
|
+
import { createSqlTag } from "../createSqlTag.js";
|
|
3
|
+
import test from "ava";
|
|
4
4
|
const sql = createSqlTag();
|
|
5
|
-
test(
|
|
6
|
-
const query = sql.fragment `SELECT ${sql.timestamp(new Date(
|
|
5
|
+
test("binds a timestamp", (t) => {
|
|
6
|
+
const query = sql.fragment `SELECT ${sql.timestamp(new Date("2022-08-19T03:27:24.951Z"))}`;
|
|
7
7
|
t.deepEqual(query, {
|
|
8
|
-
sql:
|
|
8
|
+
sql: "SELECT to_timestamp($slonik_1)",
|
|
9
9
|
type: FragmentToken,
|
|
10
|
-
values: [
|
|
10
|
+
values: ["1660879644.951"],
|
|
11
11
|
});
|
|
12
12
|
});
|
|
13
|
-
test(
|
|
13
|
+
test("throws if not instance of Date", (t) => {
|
|
14
14
|
const error = t.throws(() => {
|
|
15
15
|
// @ts-expect-error - intentional
|
|
16
16
|
sql.fragment `SELECT ${sql.timestamp(1)}`;
|
|
17
17
|
});
|
|
18
|
-
t.is(error?.message,
|
|
18
|
+
t.is(error?.message, "Timestamp parameter value must be an instance of Date.");
|
|
19
19
|
});
|
|
20
20
|
//# sourceMappingURL=timestamp.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp.test.js","sourceRoot":"","sources":["../../../src/factories/createSqlTag.test/timestamp.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,IAAI,MAAM,KAAK,CAAC;AAEvB,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;AAE3B,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE;IAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAA,UAAU,GAAG,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"timestamp.test.js","sourceRoot":"","sources":["../../../src/factories/createSqlTag.test/timestamp.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,IAAI,MAAM,KAAK,CAAC;AAEvB,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;AAE3B,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE;IAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAA,UAAU,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC;IAE1F,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;QACjB,GAAG,EAAE,gCAAgC;QACrC,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,CAAC,gBAAgB,CAAC;KAC3B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gCAAgC,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QAC1B,iCAAiC;QACjC,GAAG,CAAC,QAAQ,CAAA,UAAU,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,wDAAwD,CAAC,CAAC;AACjF,CAAC,CAAC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { createSqlTag } from
|
|
2
|
-
import test from
|
|
3
|
-
import { z } from
|
|
1
|
+
import { createSqlTag } from "../createSqlTag.js";
|
|
2
|
+
import test from "ava";
|
|
3
|
+
import { z } from "zod";
|
|
4
4
|
const sql = createSqlTag();
|
|
5
|
-
test(
|
|
5
|
+
test("describes zod object associated with the query", (t) => {
|
|
6
6
|
const zodObject = z.object({
|
|
7
7
|
id: z.number(),
|
|
8
8
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { createSqlTag } from
|
|
2
|
-
import anyTest from
|
|
3
|
-
import { ROARR } from
|
|
4
|
-
import { z } from
|
|
1
|
+
import { createSqlTag } from "../createSqlTag.js";
|
|
2
|
+
import anyTest from "ava";
|
|
3
|
+
import { ROARR } from "roarr";
|
|
4
|
+
import { z } from "zod";
|
|
5
5
|
const test = anyTest;
|
|
6
6
|
test.beforeEach((t) => {
|
|
7
7
|
t.context.logs = [];
|
|
@@ -9,7 +9,7 @@ test.beforeEach((t) => {
|
|
|
9
9
|
t.context.logs.push(JSON.parse(message));
|
|
10
10
|
};
|
|
11
11
|
});
|
|
12
|
-
test(
|
|
12
|
+
test("describes zod object associated with the query", (t) => {
|
|
13
13
|
const typeAliases = {
|
|
14
14
|
id: z.object({
|
|
15
15
|
id: z.number(),
|
|
@@ -18,12 +18,12 @@ test('describes zod object associated with the query', (t) => {
|
|
|
18
18
|
const sql = createSqlTag({
|
|
19
19
|
typeAliases,
|
|
20
20
|
});
|
|
21
|
-
const query = sql.typeAlias(
|
|
21
|
+
const query = sql.typeAlias("id") `
|
|
22
22
|
SELECT 1 id
|
|
23
23
|
`;
|
|
24
24
|
t.is(query.parser, typeAliases.id);
|
|
25
25
|
});
|
|
26
|
-
test(
|
|
26
|
+
test("cannot alias unknown fields", (t) => {
|
|
27
27
|
const typeAliases = {
|
|
28
28
|
id: z.object({
|
|
29
29
|
id: z.number(),
|
|
@@ -34,7 +34,7 @@ test('cannot alias unknown fields', (t) => {
|
|
|
34
34
|
});
|
|
35
35
|
t.throws(() => {
|
|
36
36
|
// @ts-expect-error - intentional
|
|
37
|
-
sql.typeAlias(
|
|
37
|
+
sql.typeAlias("void") `
|
|
38
38
|
SELECT 1 id
|
|
39
39
|
`;
|
|
40
40
|
});
|