@expo/entity-database-adapter-knex 0.58.0 → 0.59.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.
|
@@ -85,6 +85,15 @@ export declare class SQLEntityField<TFields extends Record<string, any>> {
|
|
|
85
85
|
readonly fieldName: keyof TFields;
|
|
86
86
|
constructor(fieldName: keyof TFields);
|
|
87
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Helper for passing an array as a single bound parameter (e.g. for PostgreSQL's = ANY(?)).
|
|
90
|
+
* Unlike bare arrays interpolated in the sql template (which expand to (?, ?, ?) for IN clauses),
|
|
91
|
+
* this binds the entire array as one parameter, letting knex handle the array encoding.
|
|
92
|
+
*/
|
|
93
|
+
export declare class SQLArrayValue {
|
|
94
|
+
readonly values: readonly SupportedSQLValue[];
|
|
95
|
+
constructor(values: readonly SupportedSQLValue[]);
|
|
96
|
+
}
|
|
88
97
|
/**
|
|
89
98
|
* Helper for raw SQL that should not be parameterized
|
|
90
99
|
* WARNING: Only use this with trusted input to avoid SQL injection
|
|
@@ -111,6 +120,18 @@ export declare function identifier(name: string): SQLIdentifier;
|
|
|
111
120
|
* @param fieldName - The entity field name to reference.
|
|
112
121
|
*/
|
|
113
122
|
export declare function entityField<TFields extends Record<string, any>>(fieldName: keyof TFields): SQLEntityField<TFields>;
|
|
123
|
+
/**
|
|
124
|
+
* Wrap an array so it is bound as a single parameter rather than expanded for IN clauses.
|
|
125
|
+
* Generates PostgreSQL's = ANY(?) syntax.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```ts
|
|
129
|
+
* const statuses = ['active', 'pending'];
|
|
130
|
+
* const query = sql`${entityField('status')} = ANY(${arrayValue(statuses)})`;
|
|
131
|
+
* // Generates: ?? = ANY(?) with the array bound as a single parameter
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
export declare function arrayValue(values: readonly SupportedSQLValue[]): SQLArrayValue;
|
|
114
135
|
/**
|
|
115
136
|
* Insert raw SQL that will not be parameterized
|
|
116
137
|
* WARNING: This bypasses SQL injection protection. Only use with trusted input.
|
|
@@ -135,7 +156,7 @@ export declare function unsafeRaw(sqlString: string): SQLUnsafeRaw;
|
|
|
135
156
|
* const query = sql`age >= ${age} AND status = ${'active'}`;
|
|
136
157
|
* ```
|
|
137
158
|
*/
|
|
138
|
-
export declare function sql<TFields extends Record<string, any>>(strings: TemplateStringsArray, ...values: readonly (SupportedSQLValue | SQLFragment<TFields> | SQLIdentifier | SQLUnsafeRaw | SQLEntityField<TFields>)[]): SQLFragment<TFields>;
|
|
159
|
+
export declare function sql<TFields extends Record<string, any>>(strings: TemplateStringsArray, ...values: readonly (SupportedSQLValue | SQLFragment<TFields> | SQLIdentifier | SQLUnsafeRaw | SQLEntityField<TFields> | SQLArrayValue)[]): SQLFragment<TFields>;
|
|
139
160
|
type PickSupportedSQLValueKeys<T> = {
|
|
140
161
|
[K in keyof T]: T[K] extends SupportedSQLValue ? K : never;
|
|
141
162
|
}[keyof T];
|
|
@@ -159,6 +180,18 @@ export declare const SQLFragmentHelpers: {
|
|
|
159
180
|
* ```
|
|
160
181
|
*/
|
|
161
182
|
inArray<TFields extends Record<string, any>, N extends PickSupportedSQLValueKeys<TFields>>(fieldName: N, values: readonly TFields[N][]): SQLFragment<TFields>;
|
|
183
|
+
/**
|
|
184
|
+
* = ANY() clause helper. Binds the array as a single parameter instead of expanding it.
|
|
185
|
+
* Semantically equivalent to IN for most cases, but retains a consistent query shape for
|
|
186
|
+
* query metrics.
|
|
187
|
+
*
|
|
188
|
+
* @example
|
|
189
|
+
* ```ts
|
|
190
|
+
* const query = SQLFragmentHelpers.anyArray('status', ['active', 'pending']);
|
|
191
|
+
* // Generates: ?? = ANY(?) with entityField binding for 'status' and a single array value binding
|
|
192
|
+
* ```
|
|
193
|
+
*/
|
|
194
|
+
anyArray<TFields extends Record<string, any>, N extends PickSupportedSQLValueKeys<TFields>>(fieldName: N, values: readonly TFields[N][]): SQLFragment<TFields>;
|
|
162
195
|
/**
|
|
163
196
|
* NOT IN clause helper
|
|
164
197
|
*/
|
package/build/src/SQLOperator.js
CHANGED
|
@@ -3,9 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.SQLFragmentHelpers = exports.SQLUnsafeRaw = exports.SQLEntityField = exports.SQLIdentifier = exports.SQLFragment = void 0;
|
|
6
|
+
exports.SQLFragmentHelpers = exports.SQLUnsafeRaw = exports.SQLArrayValue = exports.SQLEntityField = exports.SQLIdentifier = exports.SQLFragment = void 0;
|
|
7
7
|
exports.identifier = identifier;
|
|
8
8
|
exports.entityField = entityField;
|
|
9
|
+
exports.arrayValue = arrayValue;
|
|
9
10
|
exports.unsafeRaw = unsafeRaw;
|
|
10
11
|
exports.sql = sql;
|
|
11
12
|
const assert_1 = __importDefault(require("assert"));
|
|
@@ -175,6 +176,18 @@ class SQLEntityField {
|
|
|
175
176
|
}
|
|
176
177
|
}
|
|
177
178
|
exports.SQLEntityField = SQLEntityField;
|
|
179
|
+
/**
|
|
180
|
+
* Helper for passing an array as a single bound parameter (e.g. for PostgreSQL's = ANY(?)).
|
|
181
|
+
* Unlike bare arrays interpolated in the sql template (which expand to (?, ?, ?) for IN clauses),
|
|
182
|
+
* this binds the entire array as one parameter, letting knex handle the array encoding.
|
|
183
|
+
*/
|
|
184
|
+
class SQLArrayValue {
|
|
185
|
+
values;
|
|
186
|
+
constructor(values) {
|
|
187
|
+
this.values = values;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
exports.SQLArrayValue = SQLArrayValue;
|
|
178
191
|
/**
|
|
179
192
|
* Helper for raw SQL that should not be parameterized
|
|
180
193
|
* WARNING: Only use this with trusted input to avoid SQL injection
|
|
@@ -208,6 +221,20 @@ function identifier(name) {
|
|
|
208
221
|
function entityField(fieldName) {
|
|
209
222
|
return new SQLEntityField(fieldName);
|
|
210
223
|
}
|
|
224
|
+
/**
|
|
225
|
+
* Wrap an array so it is bound as a single parameter rather than expanded for IN clauses.
|
|
226
|
+
* Generates PostgreSQL's = ANY(?) syntax.
|
|
227
|
+
*
|
|
228
|
+
* @example
|
|
229
|
+
* ```ts
|
|
230
|
+
* const statuses = ['active', 'pending'];
|
|
231
|
+
* const query = sql`${entityField('status')} = ANY(${arrayValue(statuses)})`;
|
|
232
|
+
* // Generates: ?? = ANY(?) with the array bound as a single parameter
|
|
233
|
+
* ```
|
|
234
|
+
*/
|
|
235
|
+
function arrayValue(values) {
|
|
236
|
+
return new SQLArrayValue(values);
|
|
237
|
+
}
|
|
211
238
|
/**
|
|
212
239
|
* Insert raw SQL that will not be parameterized
|
|
213
240
|
* WARNING: This bypasses SQL injection protection. Only use with trusted input.
|
|
@@ -256,6 +283,11 @@ function sql(strings, ...values) {
|
|
|
256
283
|
sqlString += '??';
|
|
257
284
|
bindings.push({ type: 'entityField', fieldName: value.fieldName });
|
|
258
285
|
}
|
|
286
|
+
else if (value instanceof SQLArrayValue) {
|
|
287
|
+
// Handle array as a single bound parameter (for = ANY(?), etc.)
|
|
288
|
+
sqlString += '?';
|
|
289
|
+
bindings.push({ type: 'value', value: value.values });
|
|
290
|
+
}
|
|
259
291
|
else if (value instanceof SQLUnsafeRaw) {
|
|
260
292
|
// Handle raw SQL (WARNING: no parameterization)
|
|
261
293
|
sqlString += value.rawSql;
|
|
@@ -294,6 +326,24 @@ exports.SQLFragmentHelpers = {
|
|
|
294
326
|
}
|
|
295
327
|
return sql `${entityField(fieldName)} IN ${values}`;
|
|
296
328
|
},
|
|
329
|
+
/**
|
|
330
|
+
* = ANY() clause helper. Binds the array as a single parameter instead of expanding it.
|
|
331
|
+
* Semantically equivalent to IN for most cases, but retains a consistent query shape for
|
|
332
|
+
* query metrics.
|
|
333
|
+
*
|
|
334
|
+
* @example
|
|
335
|
+
* ```ts
|
|
336
|
+
* const query = SQLFragmentHelpers.anyArray('status', ['active', 'pending']);
|
|
337
|
+
* // Generates: ?? = ANY(?) with entityField binding for 'status' and a single array value binding
|
|
338
|
+
* ```
|
|
339
|
+
*/
|
|
340
|
+
anyArray(fieldName, values) {
|
|
341
|
+
if (values.length === 0) {
|
|
342
|
+
// Handle empty array case - always false
|
|
343
|
+
return sql `1 = 0`;
|
|
344
|
+
}
|
|
345
|
+
return sql `${entityField(fieldName)} = ANY(${arrayValue(values)})`;
|
|
346
|
+
},
|
|
297
347
|
/**
|
|
298
348
|
* NOT IN clause helper
|
|
299
349
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLOperator.js","sourceRoot":"","sources":["../../src/SQLOperator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SQLOperator.js","sourceRoot":"","sources":["../../src/SQLOperator.ts"],"names":[],"mappings":";;;;;;AAsOA,gCAEC;AAQD,kCAIC;AAaD,gCAEC;AAgBD,8BAEC;AAWD,kBAmDC;AAnVD,oDAA4B;AA0B5B;;GAEG;AACH,MAAa,WAAW;IAEJ;IACA;IAFlB,YACkB,GAAW,EACX,QAAwC;QADxC,QAAG,GAAH,GAAG,CAAQ;QACX,aAAQ,GAAR,QAAQ,CAAgC;IACvD,CAAC;IAEJ;;;;;OAKG;IACH,eAAe,CACb,iBAAuD;QAEvD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7B,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,aAAa;oBAChB,OAAO,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBACxC,KAAK,YAAY;oBACf,OAAO,CAAC,CAAC,IAAI,CAAC;gBAChB,KAAK,OAAO;oBACV,OAAO,CAAC,CAAC,KAAK,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAA2B;QAChC,OAAO,gBAAgB,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,sBAAsB,CAC3B,GAAG,SAA0C;QAE7C,OAAO,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,MAAM,CACX,GAAG,SAA0C;QAE7C,OAAO,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC;QAC3B,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,iEAAiE;QACjE,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YACtD,IAAI,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACzC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,KAAK,CAAC;YACf,CAAC;YACD,YAAY,EAAE,CAAC;YAEf,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACpD,yDAAyD;gBACzD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;YACjD,CAAC;iBAAM,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC5D,gFAAgF;gBAChF,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC;YAC7C,CAAC;iBAAM,IAAI,KAAK,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrD,OAAO,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,qDAAqD;gBACrD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,gBAAgB,CAAC,KAAwB;QACtD,4BAA4B;QAC5B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;QAC1C,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC3D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAClC,CAAC;QAED,cAAc;QACd,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC;QACpC,CAAC;QAED,gBAAgB;QAChB,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;QACzC,CAAC;QAED,kDAAkD;QAClD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,SAAS,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3E,CAAC;QAED,0CAA0C;QAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1E,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;QACjE,CAAC;QAED,oFAAoF;QACpF,yEAAyE;QACzE,OAAO,uBAAuB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IACjD,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,GAAW;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACzC,iEAAiE;QACjE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,CAAC,kCAAkC;QACjD,CAAC;QACD,mDAAmD;QACnD,OAAO,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC;IACtC,CAAC;CACF;AA5JD,kCA4JC;AAED;;;GAGG;AACH,MAAa,aAAa;IACI;IAA5B,YAA4B,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;CAC7C;AAFD,sCAEC;AAED;;;GAGG;AACH,MAAa,cAAc;IACG;IAA5B,YAA4B,SAAwB;QAAxB,cAAS,GAAT,SAAS,CAAe;IAAG,CAAC;CACzD;AAFD,wCAEC;AAED;;;;GAIG;AACH,MAAa,aAAa;IACI;IAA5B,YAA4B,MAAoC;QAApC,WAAM,GAAN,MAAM,CAA8B;IAAG,CAAC;CACrE;AAFD,sCAEC;AAED;;;GAGG;AACH,MAAa,YAAY;IACK;IAA5B,YAA4B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;CAC/C;AAFD,oCAEC;AAED;;;;;;;;;GASG;AACH,SAAgB,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CACzB,SAAwB;IAExB,OAAO,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,UAAU,CAAC,MAAoC;IAC7D,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,SAAS,CAAC,SAAiB;IACzC,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,GAAG,CACjB,OAA6B,EAC7B,GAAG,MAOA;IAEH,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAE3C,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC5B,SAAS,IAAI,MAAM,CAAC;QACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAExB,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,8BAA8B;gBAC9B,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;iBAAM,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;gBAC1C,8DAA8D;gBAC9D,SAAS,IAAI,IAAI,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;gBAC3C,iEAAiE;gBACjE,SAAS,IAAI,IAAI,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACrE,CAAC;iBAAM,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;gBAC1C,gEAAgE;gBAChE,SAAS,IAAI,GAAG,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,MAA2B,EAAE,CAAC,CAAC;YAC7E,CAAC;iBAAM,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBACzC,gDAAgD;gBAChD,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;YAC5B,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,oBAAoB;gBACpB,SAAS,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBACpD,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAuB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzF,CAAC;iBAAM,CAAC;gBACN,wBAAwB;gBACxB,SAAS,IAAI,GAAG,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAmBD;;GAEG;AACU,QAAA,kBAAkB,GAAG;IAChC;;;;;;;;OAQG;IACH,OAAO,CACL,SAAY,EACZ,MAA6B;QAE7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,yCAAyC;YACzC,OAAO,GAAG,CAAA,OAAO,CAAC;QACpB,CAAC;QACD,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,MAAM,EAAE,CAAC;IACrD,CAAC;IAED;;;;;;;;;;OAUG;IACH,QAAQ,CACN,SAAY,EACZ,MAA6B;QAE7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,yCAAyC;YACzC,OAAO,GAAG,CAAA,OAAO,CAAC;QACpB,CAAC;QACD,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,UAAU,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,UAAU,CACR,SAAY,EACZ,MAA6B;QAE7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,wCAAwC;YACxC,OAAO,GAAG,CAAA,OAAO,CAAC;QACpB,CAAC;QACD,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,WAAW,MAAM,EAAE,CAAC;IACzD,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CACL,SAAY,EACZ,GAAe,EACf,GAAe;QAEf,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,YAAY,GAAG,QAAQ,GAAG,EAAE,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,UAAU,CACR,SAAY,EACZ,GAAe,EACf,GAAe;QAEf,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,gBAAgB,GAAG,QAAQ,GAAG,EAAE,CAAC;IACtE,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,CACF,SAAuC,EACvC,OAAe;QAEf,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,SAAS,OAAO,EAAE,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,OAAO,CACL,SAAuC,EACvC,OAAe;QAEf,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,aAAa,OAAO,EAAE,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CACH,SAAuC,EACvC,OAAe;QAEf,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,UAAU,OAAO,EAAE,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,QAAQ,CACN,SAAuC,EACvC,OAAe;QAEf,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,cAAc,OAAO,EAAE,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,MAAM,CAAsC,SAAwB;QAClE,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,SAAS,CAAsC,SAAwB;QACrE,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,EAAE,CACA,SAAY,EACZ,KAAiB;QAEjB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,0BAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,GAAG,CACD,SAAY,EACZ,KAAiB;QAEjB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,0BAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,KAAK,EAAE,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,EAAE,CACA,SAAY,EACZ,KAAiB;QAEjB,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,GAAG,CACD,SAAY,EACZ,KAAiB;QAEjB,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,KAAK,EAAE,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,EAAE,CACA,SAAY,EACZ,KAAiB;QAEjB,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,GAAG,CACD,SAAY,EACZ,KAAiB;QAEjB,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,KAAK,EAAE,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,YAAY,CACV,SAAwB,EACxB,KAAuB;QAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,yGAAyG;QACzG,IAAA,gBAAM,EACJ,UAAU,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAC/C,8CAA8C,CAC/C,CAAC;QACF,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,UAAU,SAAS,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,eAAe,CACb,SAAwB,EACxB,KAAuB;QAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,yGAAyG;QACzG,IAAA,gBAAM,EACJ,UAAU,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAC/C,iDAAiD,CAClD,CAAC;QACF,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,UAAU,SAAS,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,QAAQ,CACN,SAAwB,EACxB,IAAY;QAEZ,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,YAAY,CACV,SAAwB,EACxB,IAAY;QAEZ,OAAO,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,GAAG,CACD,GAAG,UAA2C;QAE9C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAA,OAAO,CAAC;QACpB,CAAC;QACD,OAAO,gBAAgB,CACrB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0BAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAClD,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,EAAE,CACA,GAAG,UAA2C;QAE9C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAA,OAAO,CAAC;QACpB,CAAC;QACD,OAAO,gBAAgB,CACrB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0BAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAClD,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,GAAG,CAAsC,SAA+B;QACtE,OAAO,IAAI,WAAW,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,GAAG,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CACH,SAA+B;QAE/B,OAAO,IAAI,WAAW,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,GAAG,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC;CACF,CAAC;AAEF,4EAA4E;AAC5E,SAAS,gBAAgB,CACvB,SAA0C,EAC1C,SAAiB;IAEjB,OAAO,IAAI,WAAW,CACpB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAC3C,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CACrC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/entity-database-adapter-knex",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.59.0",
|
|
4
4
|
"description": "Knex database adapter for @expo/entity",
|
|
5
5
|
"files": [
|
|
6
6
|
"build",
|
|
@@ -28,15 +28,15 @@
|
|
|
28
28
|
"author": "Expo",
|
|
29
29
|
"license": "MIT",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@expo/entity": "^0.
|
|
31
|
+
"@expo/entity": "^0.59.0",
|
|
32
32
|
"knex": "^3.1.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@expo/entity-testing-utils": "^0.
|
|
35
|
+
"@expo/entity-testing-utils": "^0.59.0",
|
|
36
36
|
"@jest/globals": "30.2.0",
|
|
37
37
|
"pg": "8.19.0",
|
|
38
38
|
"ts-mockito": "2.6.1",
|
|
39
39
|
"typescript": "5.9.3"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "bfe1aad035985e65e3a704f3f9a9bc53d3fe7e98"
|
|
42
42
|
}
|
package/src/SQLOperator.ts
CHANGED
|
@@ -201,6 +201,15 @@ export class SQLEntityField<TFields extends Record<string, any>> {
|
|
|
201
201
|
constructor(public readonly fieldName: keyof TFields) {}
|
|
202
202
|
}
|
|
203
203
|
|
|
204
|
+
/**
|
|
205
|
+
* Helper for passing an array as a single bound parameter (e.g. for PostgreSQL's = ANY(?)).
|
|
206
|
+
* Unlike bare arrays interpolated in the sql template (which expand to (?, ?, ?) for IN clauses),
|
|
207
|
+
* this binds the entire array as one parameter, letting knex handle the array encoding.
|
|
208
|
+
*/
|
|
209
|
+
export class SQLArrayValue {
|
|
210
|
+
constructor(public readonly values: readonly SupportedSQLValue[]) {}
|
|
211
|
+
}
|
|
212
|
+
|
|
204
213
|
/**
|
|
205
214
|
* Helper for raw SQL that should not be parameterized
|
|
206
215
|
* WARNING: Only use this with trusted input to avoid SQL injection
|
|
@@ -235,6 +244,21 @@ export function entityField<TFields extends Record<string, any>>(
|
|
|
235
244
|
return new SQLEntityField(fieldName);
|
|
236
245
|
}
|
|
237
246
|
|
|
247
|
+
/**
|
|
248
|
+
* Wrap an array so it is bound as a single parameter rather than expanded for IN clauses.
|
|
249
|
+
* Generates PostgreSQL's = ANY(?) syntax.
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* ```ts
|
|
253
|
+
* const statuses = ['active', 'pending'];
|
|
254
|
+
* const query = sql`${entityField('status')} = ANY(${arrayValue(statuses)})`;
|
|
255
|
+
* // Generates: ?? = ANY(?) with the array bound as a single parameter
|
|
256
|
+
* ```
|
|
257
|
+
*/
|
|
258
|
+
export function arrayValue(values: readonly SupportedSQLValue[]): SQLArrayValue {
|
|
259
|
+
return new SQLArrayValue(values);
|
|
260
|
+
}
|
|
261
|
+
|
|
238
262
|
/**
|
|
239
263
|
* Insert raw SQL that will not be parameterized
|
|
240
264
|
* WARNING: This bypasses SQL injection protection. Only use with trusted input.
|
|
@@ -270,6 +294,7 @@ export function sql<TFields extends Record<string, any>>(
|
|
|
270
294
|
| SQLIdentifier
|
|
271
295
|
| SQLUnsafeRaw
|
|
272
296
|
| SQLEntityField<TFields>
|
|
297
|
+
| SQLArrayValue
|
|
273
298
|
)[]
|
|
274
299
|
): SQLFragment<TFields> {
|
|
275
300
|
let sqlString = '';
|
|
@@ -292,6 +317,10 @@ export function sql<TFields extends Record<string, any>>(
|
|
|
292
317
|
// Handle entity field references by treating them as identifiers
|
|
293
318
|
sqlString += '??';
|
|
294
319
|
bindings.push({ type: 'entityField', fieldName: value.fieldName });
|
|
320
|
+
} else if (value instanceof SQLArrayValue) {
|
|
321
|
+
// Handle array as a single bound parameter (for = ANY(?), etc.)
|
|
322
|
+
sqlString += '?';
|
|
323
|
+
bindings.push({ type: 'value', value: value.values as SupportedSQLValue });
|
|
295
324
|
} else if (value instanceof SQLUnsafeRaw) {
|
|
296
325
|
// Handle raw SQL (WARNING: no parameterization)
|
|
297
326
|
sqlString += value.rawSql;
|
|
@@ -351,6 +380,28 @@ export const SQLFragmentHelpers = {
|
|
|
351
380
|
return sql`${entityField(fieldName)} IN ${values}`;
|
|
352
381
|
},
|
|
353
382
|
|
|
383
|
+
/**
|
|
384
|
+
* = ANY() clause helper. Binds the array as a single parameter instead of expanding it.
|
|
385
|
+
* Semantically equivalent to IN for most cases, but retains a consistent query shape for
|
|
386
|
+
* query metrics.
|
|
387
|
+
*
|
|
388
|
+
* @example
|
|
389
|
+
* ```ts
|
|
390
|
+
* const query = SQLFragmentHelpers.anyArray('status', ['active', 'pending']);
|
|
391
|
+
* // Generates: ?? = ANY(?) with entityField binding for 'status' and a single array value binding
|
|
392
|
+
* ```
|
|
393
|
+
*/
|
|
394
|
+
anyArray<TFields extends Record<string, any>, N extends PickSupportedSQLValueKeys<TFields>>(
|
|
395
|
+
fieldName: N,
|
|
396
|
+
values: readonly TFields[N][],
|
|
397
|
+
): SQLFragment<TFields> {
|
|
398
|
+
if (values.length === 0) {
|
|
399
|
+
// Handle empty array case - always false
|
|
400
|
+
return sql`1 = 0`;
|
|
401
|
+
}
|
|
402
|
+
return sql`${entityField(fieldName)} = ANY(${arrayValue(values)})`;
|
|
403
|
+
},
|
|
404
|
+
|
|
354
405
|
/**
|
|
355
406
|
* NOT IN clause helper
|
|
356
407
|
*/
|
|
@@ -2,6 +2,7 @@ import { getDatabaseFieldForEntityField } from '@expo/entity';
|
|
|
2
2
|
import { describe, expect, it } from '@jest/globals';
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
|
+
arrayValue,
|
|
5
6
|
entityField,
|
|
6
7
|
identifier,
|
|
7
8
|
unsafeRaw,
|
|
@@ -56,6 +57,27 @@ describe('SQLOperator', () => {
|
|
|
56
57
|
]);
|
|
57
58
|
});
|
|
58
59
|
|
|
60
|
+
it('handles arrayValue as a single bound parameter', () => {
|
|
61
|
+
const values = ['active', 'pending', 'approved'];
|
|
62
|
+
const fragment = sql`status = ANY(${arrayValue(values)})`;
|
|
63
|
+
|
|
64
|
+
expect(fragment.sql).toBe('status = ANY(?)');
|
|
65
|
+
expect(fragment.getKnexBindings(getColumnForField)).toEqual([
|
|
66
|
+
['active', 'pending', 'approved'],
|
|
67
|
+
]);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
it('handles arrayValue with entity field for = ANY()', () => {
|
|
71
|
+
const values = ['active', 'pending'];
|
|
72
|
+
const fragment = sql`${entityField<TestFields>('stringField')} = ANY(${arrayValue(values)})`;
|
|
73
|
+
|
|
74
|
+
expect(fragment.sql).toBe('?? = ANY(?)');
|
|
75
|
+
expect(fragment.getKnexBindings(getColumnForField)).toEqual([
|
|
76
|
+
'string_field',
|
|
77
|
+
['active', 'pending'],
|
|
78
|
+
]);
|
|
79
|
+
});
|
|
80
|
+
|
|
59
81
|
it('handles null values', () => {
|
|
60
82
|
const fragment = sql`field = ${null}`;
|
|
61
83
|
|
|
@@ -500,6 +522,25 @@ describe('SQLOperator', () => {
|
|
|
500
522
|
});
|
|
501
523
|
});
|
|
502
524
|
|
|
525
|
+
describe(SQLFragmentHelpers.anyArray, () => {
|
|
526
|
+
it('generates = ANY() clause with values', () => {
|
|
527
|
+
const fragment = SQLFragmentHelpers.anyArray('stringField', ['active', 'pending']);
|
|
528
|
+
|
|
529
|
+
expect(fragment.sql).toBe('?? = ANY(?)');
|
|
530
|
+
expect(fragment.getKnexBindings(getColumnForField)).toEqual([
|
|
531
|
+
'string_field',
|
|
532
|
+
['active', 'pending'],
|
|
533
|
+
]);
|
|
534
|
+
});
|
|
535
|
+
|
|
536
|
+
it('handles empty array', () => {
|
|
537
|
+
const fragment = SQLFragmentHelpers.anyArray('stringField', []);
|
|
538
|
+
|
|
539
|
+
expect(fragment.sql).toBe('1 = 0'); // Always false
|
|
540
|
+
expect(fragment.getKnexBindings(getColumnForField)).toEqual([]);
|
|
541
|
+
});
|
|
542
|
+
});
|
|
543
|
+
|
|
503
544
|
describe(SQLFragmentHelpers.between, () => {
|
|
504
545
|
it('generates BETWEEN clause with numbers', () => {
|
|
505
546
|
const fragment = SQLFragmentHelpers.between('intField', 18, 65);
|