@slonik/sql-tag 43.0.1 → 43.0.3

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.
Files changed (76) hide show
  1. package/dist/factories/createSqlTag.d.ts +2 -34
  2. package/dist/factories/createSqlTag.d.ts.map +1 -1
  3. package/dist/factories/createSqlTag.js.map +1 -1
  4. package/dist/factories/createSqlTag.test/array.test.js +1 -0
  5. package/dist/factories/createSqlTag.test/array.test.js.map +1 -1
  6. package/dist/factories/createSqlTag.test/unnest.test.js +1 -6
  7. package/dist/factories/createSqlTag.test/unnest.test.js.map +1 -1
  8. package/dist/factories/createSqlTokenSqlFragment.d.ts +2 -2
  9. package/dist/factories/createSqlTokenSqlFragment.d.ts.map +1 -1
  10. package/dist/factories/createSqlTokenSqlFragment.js.map +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/sqlFragmentFactories/createArraySqlFragment.d.ts +2 -2
  14. package/dist/sqlFragmentFactories/createArraySqlFragment.d.ts.map +1 -1
  15. package/dist/sqlFragmentFactories/createArraySqlFragment.js +2 -0
  16. package/dist/sqlFragmentFactories/createArraySqlFragment.js.map +1 -1
  17. package/dist/sqlFragmentFactories/createBinarySqlFragment.d.ts +2 -2
  18. package/dist/sqlFragmentFactories/createBinarySqlFragment.d.ts.map +1 -1
  19. package/dist/sqlFragmentFactories/createBinarySqlFragment.js +2 -0
  20. package/dist/sqlFragmentFactories/createBinarySqlFragment.js.map +1 -1
  21. package/dist/sqlFragmentFactories/createDateSqlFragment.d.ts +2 -2
  22. package/dist/sqlFragmentFactories/createDateSqlFragment.d.ts.map +1 -1
  23. package/dist/sqlFragmentFactories/createDateSqlFragment.js +2 -0
  24. package/dist/sqlFragmentFactories/createDateSqlFragment.js.map +1 -1
  25. package/dist/sqlFragmentFactories/createFragmentSqlFragment.d.ts +2 -2
  26. package/dist/sqlFragmentFactories/createFragmentSqlFragment.d.ts.map +1 -1
  27. package/dist/sqlFragmentFactories/createFragmentSqlFragment.js +2 -0
  28. package/dist/sqlFragmentFactories/createFragmentSqlFragment.js.map +1 -1
  29. package/dist/sqlFragmentFactories/createIdentifierSqlFragment.d.ts +2 -2
  30. package/dist/sqlFragmentFactories/createIdentifierSqlFragment.d.ts.map +1 -1
  31. package/dist/sqlFragmentFactories/createIdentifierSqlFragment.js +2 -0
  32. package/dist/sqlFragmentFactories/createIdentifierSqlFragment.js.map +1 -1
  33. package/dist/sqlFragmentFactories/createIntervalSqlFragment.d.ts +2 -2
  34. package/dist/sqlFragmentFactories/createIntervalSqlFragment.d.ts.map +1 -1
  35. package/dist/sqlFragmentFactories/createIntervalSqlFragment.js +2 -0
  36. package/dist/sqlFragmentFactories/createIntervalSqlFragment.js.map +1 -1
  37. package/dist/sqlFragmentFactories/createJsonSqlFragment.d.ts +2 -2
  38. package/dist/sqlFragmentFactories/createJsonSqlFragment.d.ts.map +1 -1
  39. package/dist/sqlFragmentFactories/createJsonSqlFragment.js +2 -0
  40. package/dist/sqlFragmentFactories/createJsonSqlFragment.js.map +1 -1
  41. package/dist/sqlFragmentFactories/createListSqlFragment.d.ts +2 -2
  42. package/dist/sqlFragmentFactories/createListSqlFragment.d.ts.map +1 -1
  43. package/dist/sqlFragmentFactories/createListSqlFragment.js +2 -0
  44. package/dist/sqlFragmentFactories/createListSqlFragment.js.map +1 -1
  45. package/dist/sqlFragmentFactories/createQuerySqlFragment.d.ts +2 -2
  46. package/dist/sqlFragmentFactories/createQuerySqlFragment.d.ts.map +1 -1
  47. package/dist/sqlFragmentFactories/createQuerySqlFragment.js +2 -0
  48. package/dist/sqlFragmentFactories/createQuerySqlFragment.js.map +1 -1
  49. package/dist/sqlFragmentFactories/createTimestampSqlFragment.d.ts +2 -2
  50. package/dist/sqlFragmentFactories/createTimestampSqlFragment.d.ts.map +1 -1
  51. package/dist/sqlFragmentFactories/createTimestampSqlFragment.js +2 -0
  52. package/dist/sqlFragmentFactories/createTimestampSqlFragment.js.map +1 -1
  53. package/dist/sqlFragmentFactories/createUnnestSqlFragment.d.ts +2 -2
  54. package/dist/sqlFragmentFactories/createUnnestSqlFragment.d.ts.map +1 -1
  55. package/dist/sqlFragmentFactories/createUnnestSqlFragment.js +2 -0
  56. package/dist/sqlFragmentFactories/createUnnestSqlFragment.js.map +1 -1
  57. package/dist/types.d.ts +12 -11
  58. package/dist/types.d.ts.map +1 -1
  59. package/package.json +3 -3
  60. package/src/factories/createSqlTag.test/array.test.ts +1 -0
  61. package/src/factories/createSqlTag.test/unnest.test.ts +1 -6
  62. package/src/factories/createSqlTag.ts +17 -46
  63. package/src/factories/createSqlTokenSqlFragment.ts +2 -2
  64. package/src/index.ts +1 -1
  65. package/src/sqlFragmentFactories/createArraySqlFragment.ts +4 -2
  66. package/src/sqlFragmentFactories/createBinarySqlFragment.ts +4 -2
  67. package/src/sqlFragmentFactories/createDateSqlFragment.ts +4 -2
  68. package/src/sqlFragmentFactories/createFragmentSqlFragment.ts +4 -2
  69. package/src/sqlFragmentFactories/createIdentifierSqlFragment.ts +4 -2
  70. package/src/sqlFragmentFactories/createIntervalSqlFragment.ts +4 -2
  71. package/src/sqlFragmentFactories/createJsonSqlFragment.ts +4 -2
  72. package/src/sqlFragmentFactories/createListSqlFragment.ts +4 -2
  73. package/src/sqlFragmentFactories/createQuerySqlFragment.ts +4 -2
  74. package/src/sqlFragmentFactories/createTimestampSqlFragment.ts +4 -2
  75. package/src/sqlFragmentFactories/createUnnestSqlFragment.ts +4 -2
  76. package/src/types.ts +17 -11
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createUnnestSqlFragment = void 0;
4
+ const tokens_1 = require("../tokens");
4
5
  const countArrayDimensions_1 = require("../utilities/countArrayDimensions");
5
6
  const escapeIdentifier_1 = require("../utilities/escapeIdentifier");
6
7
  const formatSlonikPlaceholder_1 = require("../utilities/formatSlonikPlaceholder");
@@ -74,6 +75,7 @@ const createUnnestSqlFragment = (token, greatestParameterPosition) => {
74
75
  const sql = 'unnest(' + unnestSqlTokens.join(', ') + ')';
75
76
  return {
76
77
  sql,
78
+ type: tokens_1.FragmentToken,
77
79
  values,
78
80
  };
79
81
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createUnnestSqlFragment.js","sourceRoot":"","sources":["../../src/sqlFragmentFactories/createUnnestSqlFragment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createUnnestSqlFragment.js","sourceRoot":"","sources":["../../src/sqlFragmentFactories/createUnnestSqlFragment.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -15,18 +15,19 @@ export type IntervalInput = {
15
15
  weeks?: number;
16
16
  years?: number;
17
17
  };
18
- export type SqlFragment = {
18
+ export type SqlFragmentToken = {
19
19
  readonly sql: string;
20
+ readonly type: typeof tokens.FragmentToken;
20
21
  readonly values: readonly PrimitiveValueExpression[];
21
22
  };
22
- export type ValueExpression = PrimitiveValueExpression | SqlFragment | SqlToken;
23
+ export type ValueExpression = PrimitiveValueExpression | SqlFragmentToken | SqlToken;
23
24
  /**
24
25
  * "string" type covers all type name identifiers – the literal values are added only to assist developer
25
26
  * experience with auto suggestions for commonly used type name identifiers.
26
27
  */
27
28
  export type TypeNameIdentifier = string | 'bool' | 'bytea' | 'float4' | 'float8' | 'int2' | 'int4' | 'int8' | 'json' | 'text' | 'timestamptz' | 'uuid';
28
29
  export type ArraySqlToken = {
29
- readonly memberType: SqlToken | TypeNameIdentifier;
30
+ readonly memberType: SqlFragmentToken | TypeNameIdentifier;
30
31
  readonly type: typeof tokens.ArrayToken;
31
32
  readonly values: readonly PrimitiveValueExpression[];
32
33
  };
@@ -52,7 +53,7 @@ export type IntervalSqlToken = {
52
53
  readonly type: typeof tokens.IntervalToken;
53
54
  };
54
55
  export type ListSqlToken = {
55
- readonly glue: SqlFragment;
56
+ readonly glue: SqlFragmentToken;
56
57
  readonly members: readonly ValueExpression[];
57
58
  readonly type: typeof tokens.ListToken;
58
59
  };
@@ -75,26 +76,26 @@ export type TimestampSqlToken = {
75
76
  readonly type: typeof tokens.TimestampToken;
76
77
  };
77
78
  export type UnnestSqlToken = {
78
- readonly columnTypes: Array<[...string[], TypeNameIdentifier]> | Array<SqlFragment | TypeNameIdentifier>;
79
+ readonly columnTypes: Array<[...string[], TypeNameIdentifier]> | Array<SqlFragmentToken | TypeNameIdentifier>;
79
80
  readonly tuples: ReadonlyArray<readonly ValueExpression[]>;
80
81
  readonly type: typeof tokens.UnnestToken;
81
82
  };
82
83
  export type SqlToken = ArraySqlToken | BinarySqlToken | DateSqlToken | FragmentSqlToken | IdentifierSqlToken | IntervalSqlToken | JsonBinarySqlToken | JsonSqlToken | ListSqlToken | QuerySqlToken | TimestampSqlToken | UnnestSqlToken;
83
- export type SqlTag<Z extends Record<string, ZodTypeAny>> = {
84
- array: (values: readonly PrimitiveValueExpression[], memberType: SqlFragment | TypeNameIdentifier) => ArraySqlToken;
84
+ export type SqlTag<Z extends Record<string, ZodTypeAny> = Record<string, ZodTypeAny>> = {
85
+ array: (values: readonly PrimitiveValueExpression[], memberType: SqlFragmentToken | TypeNameIdentifier) => ArraySqlToken;
85
86
  binary: (data: Buffer) => BinarySqlToken;
86
87
  date: (date: Date) => DateSqlToken;
87
- fragment: (template: TemplateStringsArray, ...values: ValueExpression[]) => SqlFragment;
88
+ fragment: (template: TemplateStringsArray, ...values: ValueExpression[]) => SqlFragmentToken;
88
89
  identifier: (names: readonly string[]) => IdentifierSqlToken;
89
90
  interval: (interval: IntervalInput) => IntervalSqlToken;
90
- join: (members: readonly ValueExpression[], glue: SqlFragment) => ListSqlToken;
91
+ join: (members: readonly ValueExpression[], glue: SqlFragmentToken) => ListSqlToken;
91
92
  json: (value: SerializableValue) => JsonSqlToken;
92
93
  jsonb: (value: SerializableValue) => JsonBinarySqlToken;
93
- literalValue: (value: string) => SqlFragment;
94
+ literalValue: (value: string) => SqlFragmentToken;
94
95
  timestamp: (date: Date) => TimestampSqlToken;
95
96
  type: <Y extends ZodTypeAny>(parser: Y) => (template: TemplateStringsArray, ...values: ValueExpression[]) => QuerySqlToken<Y>;
96
97
  typeAlias: <K extends keyof Z>(typeAlias: K) => (template: TemplateStringsArray, ...values: ValueExpression[]) => QuerySqlToken<Z[K]>;
97
- unnest: (tuples: ReadonlyArray<readonly any[]>, columnTypes: Array<[...string[], TypeNameIdentifier]> | Array<SqlFragment | TypeNameIdentifier>) => UnnestSqlToken;
98
+ unnest: (tuples: ReadonlyArray<readonly any[]>, columnTypes: Array<[...string[], TypeNameIdentifier]> | Array<SqlFragmentToken | TypeNameIdentifier>) => UnnestSqlToken;
98
99
  unsafe: (template: TemplateStringsArray, ...values: ValueExpression[]) => QuerySqlToken;
99
100
  };
100
101
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -16,8 +16,8 @@
16
16
  ]
17
17
  },
18
18
  "dependencies": {
19
- "@slonik/errors": "^43.0.1",
20
- "@slonik/types": "^43.0.1",
19
+ "@slonik/errors": "^43.0.3",
20
+ "@slonik/types": "^43.0.3",
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": "43.0.1"
86
+ "version": "43.0.3"
87
87
  }
@@ -97,6 +97,7 @@ test('throws if array member is not a primitive value expression', (t) => {
97
97
 
98
98
  test('throws if memberType is not a string or SqlToken of different type than "SLONIK_TOKEN_FRAGMENT"', (t) => {
99
99
  const error = t.throws(() => {
100
+ // @ts-expect-error - intentional
100
101
  sql.fragment`SELECT ${sql.array([1, 2, 3], sql.identifier(['int']))}`;
101
102
  });
102
103
 
@@ -123,12 +123,7 @@ test('throws if tuple member is not a primitive value expression', (t) => {
123
123
  const error = t.throws(() => {
124
124
  sql.fragment`SELECT * FROM ${sql.unnest(
125
125
  [
126
- [
127
- // @ts-expect-error Intentional invalid value.
128
- () => {},
129
- 2,
130
- 3,
131
- ],
126
+ [() => {}, 2, 3],
132
127
  [4, 5],
133
128
  ],
134
129
  ['int4', 'int4', 'int4'],
@@ -14,23 +14,8 @@ import {
14
14
  UnnestToken,
15
15
  } from '../tokens';
16
16
  import {
17
- type ArraySqlToken,
18
- type BinarySqlToken,
19
- type DateSqlToken,
20
- type FragmentSqlToken,
21
- type IdentifierSqlToken,
22
- type IntervalInput,
23
- type IntervalSqlToken,
24
- type JsonBinarySqlToken,
25
- type JsonSqlToken,
26
- type ListSqlToken,
27
17
  type PrimitiveValueExpression,
28
- type SerializableValue,
29
- type SqlFragment,
30
- type SqlToken as SqlTokenType,
31
- type TimestampSqlToken,
32
- type TypeNameIdentifier,
33
- type UnnestSqlToken,
18
+ type SqlTag,
34
19
  type ValueExpression,
35
20
  } from '../types';
36
21
  import { escapeLiteralValue } from '../utilities/escapeLiteralValue';
@@ -121,89 +106,80 @@ export const createSqlTag = <
121
106
  configuration: {
122
107
  typeAliases?: Z;
123
108
  } = {},
124
- ) => {
109
+ ): SqlTag<Z> => {
125
110
  const typeAliases = configuration.typeAliases;
126
111
 
127
112
  return {
128
- array: (
129
- values: readonly PrimitiveValueExpression[],
130
- memberType: SqlTokenType | TypeNameIdentifier,
131
- ): ArraySqlToken => {
113
+ array: (values, memberType) => {
132
114
  return Object.freeze({
133
115
  memberType,
134
116
  type: ArrayToken,
135
117
  values,
136
118
  });
137
119
  },
138
- binary: (data: Buffer): BinarySqlToken => {
120
+ binary: (data) => {
139
121
  return Object.freeze({
140
122
  data,
141
123
  type: BinaryToken,
142
124
  });
143
125
  },
144
- date: (date: Date): DateSqlToken => {
126
+ date: (date) => {
145
127
  return Object.freeze({
146
128
  date,
147
129
  type: DateToken,
148
130
  });
149
131
  },
150
- fragment: (
151
- parts: readonly string[],
152
- ...args: readonly ValueExpression[]
153
- ): FragmentSqlToken => {
132
+ fragment: (parts, ...args) => {
154
133
  return Object.freeze({
155
134
  ...createFragment(parts, args),
156
135
  type: FragmentToken,
157
136
  });
158
137
  },
159
- identifier: (names: readonly string[]): IdentifierSqlToken => {
138
+ identifier: (names) => {
160
139
  return Object.freeze({
161
140
  names,
162
141
  type: IdentifierToken,
163
142
  });
164
143
  },
165
- interval: (interval: IntervalInput): IntervalSqlToken => {
144
+ interval: (interval) => {
166
145
  return Object.freeze({
167
146
  interval,
168
147
  type: IntervalToken,
169
148
  });
170
149
  },
171
- join: (
172
- members: readonly ValueExpression[],
173
- glue: SqlFragment,
174
- ): ListSqlToken => {
150
+ join: (members, glue) => {
175
151
  return Object.freeze({
176
152
  glue,
177
153
  members,
178
154
  type: ListToken,
179
155
  });
180
156
  },
181
- json: (value: SerializableValue): JsonSqlToken => {
157
+ json: (value) => {
182
158
  return Object.freeze({
183
159
  type: JsonToken,
184
160
  value,
185
161
  });
186
162
  },
187
- jsonb: (value: SerializableValue): JsonBinarySqlToken => {
163
+ jsonb: (value) => {
188
164
  return Object.freeze({
189
165
  type: JsonBinaryToken,
190
166
  value,
191
167
  });
192
168
  },
193
- literalValue: (value: string): SqlFragment => {
169
+ literalValue: (value) => {
194
170
  return Object.freeze({
195
171
  sql: escapeLiteralValue(value),
196
172
  type: FragmentToken,
197
173
  values: [],
198
174
  });
199
175
  },
200
- timestamp: (date: Date): TimestampSqlToken => {
176
+ timestamp: (date) => {
201
177
  return Object.freeze({
202
178
  date,
203
179
  type: TimestampToken,
204
180
  });
205
181
  },
206
- type: <T extends ZodTypeAny>(parser: T) => {
182
+ type: (parser) => {
207
183
  return (
208
184
  parts: readonly string[],
209
185
  ...args: readonly ValueExpression[]
@@ -215,7 +191,7 @@ export const createSqlTag = <
215
191
  });
216
192
  };
217
193
  },
218
- typeAlias: <Y extends keyof Z>(parserAlias: Y) => {
194
+ typeAlias: (parserAlias) => {
219
195
  if (!typeAliases?.[parserAlias]) {
220
196
  throw new Error(
221
197
  'Type alias "' + String(parserAlias) + '" does not exist.',
@@ -233,19 +209,14 @@ export const createSqlTag = <
233
209
  });
234
210
  };
235
211
  },
236
- unnest: (
237
- tuples: ReadonlyArray<readonly PrimitiveValueExpression[]>,
238
- columnTypes:
239
- | Array<[...string[], TypeNameIdentifier]>
240
- | Array<SqlFragment | TypeNameIdentifier>,
241
- ): UnnestSqlToken => {
212
+ unnest: (tuples, columnTypes) => {
242
213
  return Object.freeze({
243
214
  columnTypes,
244
215
  tuples,
245
216
  type: UnnestToken,
246
217
  });
247
218
  },
248
- unsafe: (parts: readonly string[], ...args: readonly ValueExpression[]) => {
219
+ unsafe: (parts, ...args) => {
249
220
  return Object.freeze({
250
221
  ...createFragment(parts, args),
251
222
  parser: z.any(),
@@ -23,13 +23,13 @@ import {
23
23
  TimestampToken,
24
24
  UnnestToken,
25
25
  } from '../tokens';
26
- import { type SqlFragment, type SqlToken as SqlTokenType } from '../types';
26
+ import { type SqlFragmentToken, type SqlToken as SqlTokenType } from '../types';
27
27
  import { UnexpectedStateError } from '@slonik/errors';
28
28
 
29
29
  export const createSqlTokenSqlFragment = (
30
30
  token: SqlTokenType,
31
31
  greatestParameterPosition: number,
32
- ): SqlFragment => {
32
+ ): SqlFragmentToken => {
33
33
  if (token.type === ArrayToken) {
34
34
  return createArraySqlFragment(token, greatestParameterPosition);
35
35
  } else if (token.type === BinaryToken) {
package/src/index.ts CHANGED
@@ -14,7 +14,7 @@ export {
14
14
  type PrimitiveValueExpression,
15
15
  type QuerySqlToken,
16
16
  type SerializableValue,
17
- type SqlFragment,
17
+ type SqlFragmentToken,
18
18
  type SqlTag,
19
19
  type SqlToken,
20
20
  type TimestampSqlToken,
@@ -1,5 +1,6 @@
1
1
  import { createSqlTokenSqlFragment } from '../factories/createSqlTokenSqlFragment';
2
- import { type ArraySqlToken, type SqlFragment } from '../types';
2
+ import { FragmentToken } from '../tokens';
3
+ import { type ArraySqlToken, type SqlFragmentToken } from '../types';
3
4
  import { escapeIdentifier } from '../utilities/escapeIdentifier';
4
5
  import { formatSlonikPlaceholder } from '../utilities/formatSlonikPlaceholder';
5
6
  import { isPrimitiveValueExpression } from '../utilities/isPrimitiveValueExpression';
@@ -9,7 +10,7 @@ import { InvalidInputError, UnexpectedStateError } from '@slonik/errors';
9
10
  export const createArraySqlFragment = (
10
11
  token: ArraySqlToken,
11
12
  greatestParameterPosition: number,
12
- ): SqlFragment => {
13
+ ): SqlFragmentToken => {
13
14
  let placeholderIndex = greatestParameterPosition;
14
15
 
15
16
  for (const value of token.values) {
@@ -62,6 +63,7 @@ export const createArraySqlFragment = (
62
63
 
63
64
  return {
64
65
  sql,
66
+ type: FragmentToken,
65
67
  values,
66
68
  };
67
69
  };
@@ -1,17 +1,19 @@
1
- import { type BinarySqlToken, type SqlFragment } from '../types';
1
+ import { FragmentToken } from '../tokens';
2
+ import { type BinarySqlToken, type SqlFragmentToken } from '../types';
2
3
  import { formatSlonikPlaceholder } from '../utilities/formatSlonikPlaceholder';
3
4
  import { InvalidInputError } from '@slonik/errors';
4
5
 
5
6
  export const createBinarySqlFragment = (
6
7
  token: BinarySqlToken,
7
8
  greatestParameterPosition: number,
8
- ): SqlFragment => {
9
+ ): SqlFragmentToken => {
9
10
  if (!Buffer.isBuffer(token.data)) {
10
11
  throw new InvalidInputError('Binary value must be a buffer.');
11
12
  }
12
13
 
13
14
  return {
14
15
  sql: formatSlonikPlaceholder(greatestParameterPosition + 1),
16
+ type: FragmentToken,
15
17
  values: [token.data],
16
18
  };
17
19
  };
@@ -1,11 +1,12 @@
1
- import { type DateSqlToken, type SqlFragment } from '../types';
1
+ import { FragmentToken } from '../tokens';
2
+ import { type DateSqlToken, type SqlFragmentToken } from '../types';
2
3
  import { formatSlonikPlaceholder } from '../utilities/formatSlonikPlaceholder';
3
4
  import { InvalidInputError } from '@slonik/errors';
4
5
 
5
6
  export const createDateSqlFragment = (
6
7
  token: DateSqlToken,
7
8
  greatestParameterPosition: number,
8
- ): SqlFragment => {
9
+ ): SqlFragmentToken => {
9
10
  if (!(token.date instanceof Date)) {
10
11
  throw new InvalidInputError(
11
12
  'Date parameter value must be an instance of Date.',
@@ -14,6 +15,7 @@ export const createDateSqlFragment = (
14
15
 
15
16
  return {
16
17
  sql: formatSlonikPlaceholder(greatestParameterPosition + 1) + '::date',
18
+ type: FragmentToken,
17
19
  values: [token.date.toISOString().slice(0, 10)],
18
20
  };
19
21
  };
@@ -1,12 +1,13 @@
1
1
  import { slonikPlaceholderRegexRule } from '../regexRules/slonikPlaceholderRegexRule';
2
- import { type FragmentSqlToken, type SqlFragment } from '../types';
2
+ import { FragmentToken } from '../tokens';
3
+ import { type FragmentSqlToken, type SqlFragmentToken } from '../types';
3
4
  import { formatSlonikPlaceholder } from '../utilities/formatSlonikPlaceholder';
4
5
  import { UnexpectedStateError } from '@slonik/errors';
5
6
 
6
7
  export const createFragmentSqlFragment = (
7
8
  token: FragmentSqlToken,
8
9
  greatestParameterPosition: number,
9
- ): SqlFragment => {
10
+ ): SqlFragmentToken => {
10
11
  let sql = '';
11
12
 
12
13
  let leastMatchedParameterPosition = Number.POSITIVE_INFINITY;
@@ -43,6 +44,7 @@ export const createFragmentSqlFragment = (
43
44
 
44
45
  return {
45
46
  sql,
47
+ type: FragmentToken,
46
48
  values: token.values,
47
49
  };
48
50
  };
@@ -1,10 +1,11 @@
1
- import { type IdentifierSqlToken, type SqlFragment } from '../types';
1
+ import { FragmentToken } from '../tokens';
2
+ import { type IdentifierSqlToken, type SqlFragmentToken } from '../types';
2
3
  import { escapeIdentifier } from '../utilities/escapeIdentifier';
3
4
  import { InvalidInputError } from '@slonik/errors';
4
5
 
5
6
  export const createIdentifierSqlFragment = (
6
7
  token: IdentifierSqlToken,
7
- ): SqlFragment => {
8
+ ): SqlFragmentToken => {
8
9
  const sql = token.names
9
10
  .map((identifierName) => {
10
11
  if (typeof identifierName !== 'string') {
@@ -19,6 +20,7 @@ export const createIdentifierSqlFragment = (
19
20
 
20
21
  return {
21
22
  sql,
23
+ type: FragmentToken,
22
24
  values: [],
23
25
  };
24
26
  };
@@ -1,4 +1,5 @@
1
- import { type IntervalSqlToken, type SqlFragment } from '../types';
1
+ import { FragmentToken } from '../tokens';
2
+ import { type IntervalSqlToken, type SqlFragmentToken } from '../types';
2
3
  import { formatSlonikPlaceholder } from '../utilities/formatSlonikPlaceholder';
3
4
  import { InvalidInputError } from '@slonik/errors';
4
5
  import { z } from 'zod';
@@ -33,7 +34,7 @@ const tokenMap = {
33
34
  export const createIntervalSqlFragment = (
34
35
  token: IntervalSqlToken,
35
36
  greatestParameterPosition: number,
36
- ): SqlFragment => {
37
+ ): SqlFragmentToken => {
37
38
  let intervalInput;
38
39
 
39
40
  try {
@@ -66,6 +67,7 @@ export const createIntervalSqlFragment = (
66
67
 
67
68
  return {
68
69
  sql: 'make_interval(' + intervalTokens.join(', ') + ')',
70
+ type: FragmentToken,
69
71
  values,
70
72
  };
71
73
  };
@@ -1,8 +1,9 @@
1
1
  import { Logger } from '../Logger';
2
+ import { FragmentToken } from '../tokens';
2
3
  import {
3
4
  type JsonBinarySqlToken,
4
5
  type JsonSqlToken,
5
- type SqlFragment,
6
+ type SqlFragmentToken,
6
7
  } from '../types';
7
8
  import { formatSlonikPlaceholder } from '../utilities/formatSlonikPlaceholder';
8
9
  import { isPlainObject } from '../utilities/isPlainObject';
@@ -18,7 +19,7 @@ export const createJsonSqlFragment = (
18
19
  token: JsonBinarySqlToken | JsonSqlToken,
19
20
  greatestParameterPosition: number,
20
21
  binary: boolean,
21
- ): SqlFragment => {
22
+ ): SqlFragmentToken => {
22
23
  let value;
23
24
 
24
25
  if (token.value === undefined) {
@@ -61,6 +62,7 @@ export const createJsonSqlFragment = (
61
62
  formatSlonikPlaceholder(greatestParameterPosition + 1) +
62
63
  '::' +
63
64
  (binary ? 'jsonb' : 'json'),
65
+ type: FragmentToken,
64
66
  values: [value],
65
67
  };
66
68
  };
@@ -1,9 +1,10 @@
1
1
  import { createPrimitiveValueExpressions } from '../factories/createPrimitiveValueExpressions';
2
2
  import { createSqlTokenSqlFragment } from '../factories/createSqlTokenSqlFragment';
3
+ import { FragmentToken } from '../tokens';
3
4
  import {
4
5
  type ListSqlToken,
5
6
  type PrimitiveValueExpression,
6
- type SqlFragment,
7
+ type SqlFragmentToken,
7
8
  } from '../types';
8
9
  import { formatSlonikPlaceholder } from '../utilities/formatSlonikPlaceholder';
9
10
  import { isPrimitiveValueExpression } from '../utilities/isPrimitiveValueExpression';
@@ -13,7 +14,7 @@ import { InvalidInputError } from '@slonik/errors';
13
14
  export const createListSqlFragment = (
14
15
  token: ListSqlToken,
15
16
  greatestParameterPosition: number,
16
- ): SqlFragment => {
17
+ ): SqlFragmentToken => {
17
18
  const values: PrimitiveValueExpression[] = [];
18
19
  const placeholders: Array<PrimitiveValueExpression | null> = [];
19
20
 
@@ -43,6 +44,7 @@ export const createListSqlFragment = (
43
44
 
44
45
  return {
45
46
  sql: placeholders.join(token.glue.sql),
47
+ type: FragmentToken,
46
48
  values: createPrimitiveValueExpressions(values),
47
49
  };
48
50
  };
@@ -1,12 +1,13 @@
1
1
  import { slonikPlaceholderRegexRule } from '../regexRules/slonikPlaceholderRegexRule';
2
- import { type QuerySqlToken, type SqlFragment } from '../types';
2
+ import { FragmentToken } from '../tokens';
3
+ import { type QuerySqlToken, type SqlFragmentToken } from '../types';
3
4
  import { formatSlonikPlaceholder } from '../utilities/formatSlonikPlaceholder';
4
5
  import { UnexpectedStateError } from '@slonik/errors';
5
6
 
6
7
  export const createQuerySqlFragment = (
7
8
  token: QuerySqlToken,
8
9
  greatestParameterPosition: number,
9
- ): SqlFragment => {
10
+ ): SqlFragmentToken => {
10
11
  let sql = '';
11
12
 
12
13
  let leastMatchedParameterPosition = Number.POSITIVE_INFINITY;
@@ -43,6 +44,7 @@ export const createQuerySqlFragment = (
43
44
 
44
45
  return {
45
46
  sql,
47
+ type: FragmentToken,
46
48
  values: token.values,
47
49
  };
48
50
  };
@@ -1,11 +1,12 @@
1
- import { type SqlFragment, type TimestampSqlToken } from '../types';
1
+ import { FragmentToken } from '../tokens';
2
+ import { type SqlFragmentToken, type TimestampSqlToken } from '../types';
2
3
  import { formatSlonikPlaceholder } from '../utilities/formatSlonikPlaceholder';
3
4
  import { InvalidInputError } from '@slonik/errors';
4
5
 
5
6
  export const createTimestampSqlFragment = (
6
7
  token: TimestampSqlToken,
7
8
  greatestParameterPosition: number,
8
- ): SqlFragment => {
9
+ ): SqlFragmentToken => {
9
10
  if (!(token.date instanceof Date)) {
10
11
  throw new InvalidInputError(
11
12
  'Timestamp parameter value must be an instance of Date.',
@@ -17,6 +18,7 @@ export const createTimestampSqlFragment = (
17
18
  'to_timestamp(' +
18
19
  formatSlonikPlaceholder(greatestParameterPosition + 1) +
19
20
  ')',
21
+ type: FragmentToken,
20
22
  values: [String(token.date.getTime() / 1_000)],
21
23
  };
22
24
  };
@@ -1,6 +1,7 @@
1
+ import { FragmentToken } from '../tokens';
1
2
  import {
2
3
  type PrimitiveValueExpression,
3
- type SqlFragment,
4
+ type SqlFragmentToken,
4
5
  type UnnestSqlToken,
5
6
  } from '../types';
6
7
  import { countArrayDimensions } from '../utilities/countArrayDimensions';
@@ -13,7 +14,7 @@ import { InvalidInputError } from '@slonik/errors';
13
14
  export const createUnnestSqlFragment = (
14
15
  token: UnnestSqlToken,
15
16
  greatestParameterPosition: number,
16
- ): SqlFragment => {
17
+ ): SqlFragmentToken => {
17
18
  const { columnTypes } = token;
18
19
 
19
20
  const values: PrimitiveValueExpression[] = [];
@@ -113,6 +114,7 @@ export const createUnnestSqlFragment = (
113
114
 
114
115
  return {
115
116
  sql,
117
+ type: FragmentToken,
116
118
  values,
117
119
  };
118
120
  };