@anfenn/dync 1.0.19 → 1.0.21
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/capacitor.cjs +2 -0
- package/dist/capacitor.cjs.map +1 -1
- package/dist/capacitor.js +1 -1
- package/dist/{chunk-SQB6E7V2.js → chunk-CGCYGESK.js} +3 -1
- package/dist/chunk-CGCYGESK.js.map +1 -0
- package/dist/{chunk-WZ7V4U6Z.js → chunk-I2KQD4DD.js} +35 -23
- package/dist/chunk-I2KQD4DD.js.map +1 -0
- package/dist/expoSqlite.cjs +1 -0
- package/dist/expoSqlite.cjs.map +1 -1
- package/dist/expoSqlite.js +1 -0
- package/dist/expoSqlite.js.map +1 -1
- package/dist/index.cjs +34 -22
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/node.cjs +1 -0
- package/dist/node.cjs.map +1 -1
- package/dist/node.js +1 -0
- package/dist/node.js.map +1 -1
- package/dist/react/index.js +2 -2
- package/dist/wa-sqlite.cjs +1 -0
- package/dist/wa-sqlite.cjs.map +1 -1
- package/dist/wa-sqlite.js +1 -0
- package/dist/wa-sqlite.js.map +1 -1
- package/package.json +1 -1
- package/src/storage/sqlite/SQLiteCollection.ts +19 -13
- package/src/storage/sqlite/drivers/BetterSqlite3Driver.ts +3 -0
- package/src/storage/sqlite/drivers/CapacitorFastSqlDriver.ts +2 -0
- package/src/storage/sqlite/drivers/CapacitorSQLiteDriver.ts +2 -0
- package/src/storage/sqlite/drivers/ExpoSQLiteDriver.native.ts +2 -0
- package/src/storage/sqlite/drivers/WaSqliteDriver.ts +3 -0
- package/src/storage/sqlite/helpers.ts +21 -9
- package/src/storage/sqlite/types.ts +5 -2
- package/dist/chunk-SQB6E7V2.js.map +0 -1
- package/dist/chunk-WZ7V4U6Z.js.map +0 -1
package/dist/expoSqlite.cjs
CHANGED
package/dist/expoSqlite.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/expoSqlite.ts","../src/storage/sqlite/drivers/ExpoSQLiteDriver.native.ts"],"sourcesContent":["export { ExpoSQLiteDriver } from './storage/sqlite/drivers/ExpoSQLiteDriver.native';\nexport type { SQLiteDatabaseDriver, SQLiteQueryResult, SQLiteRunResult } from './storage/sqlite/types';\n","import * as SQLite from 'expo-sqlite';\n\nimport type { SQLiteDatabaseDriver, SQLiteQueryResult, SQLiteRunResult } from '../types';\n\nexport class ExpoSQLiteDriver implements SQLiteDatabaseDriver {\n readonly type = 'ExpoSQLiteDriver';\n private db: SQLite.SQLiteDatabase | null = null;\n private openPromise?: Promise<void>;\n private opened = false;\n readonly name: string;\n\n constructor(name: string) {\n this.name = name;\n }\n\n async open(): Promise<void> {\n if (this.opened) return;\n if (this.openPromise) return this.openPromise;\n\n this.openPromise = (async () => {\n if (!this.db) {\n this.db = await SQLite.openDatabaseAsync(this.name);\n this.opened = true;\n }\n })();\n\n try {\n await this.openPromise;\n } finally {\n this.openPromise = undefined;\n }\n }\n\n async close(): Promise<void> {\n const db = this.db;\n this.db = null;\n this.opened = false;\n this.openPromise = undefined;\n if (db?.closeAsync) {\n await db.closeAsync();\n }\n }\n\n async execute(statement: string): Promise<void> {\n await this.run(statement, []);\n }\n\n async run(statement: string, values: any[] = []): Promise<SQLiteRunResult> {\n await this.open();\n const db = this.db!;\n const result = await db.runAsync(statement, values);\n return {\n changes: result.changes ?? 0,\n lastId: (result as any).lastInsertRowId ?? (result as any).lastInsertId ?? undefined,\n };\n }\n\n async query(statement: string, values: any[] = []): Promise<SQLiteQueryResult> {\n await this.open();\n const db = this.db!;\n const rows = await db.getAllAsync(statement, values);\n const first = rows[0];\n const columns = first ? Object.keys(first) : [];\n const valuesMatrix = rows.map((row) => columns.map((col) => (row as any)[col]));\n return { columns, values: valuesMatrix };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,aAAwB;AAIjB,IAAM,mBAAN,MAAuD;AAAA,EACjD,OAAO;AAAA,EACR,KAAmC;AAAA,EACnC;AAAA,EACA,SAAS;AAAA,EACR;AAAA,EAET,YAAY,MAAc;AACtB,SAAK,OAAO;AAAA,EAChB;AAAA,EAEA,MAAM,OAAsB;AACxB,QAAI,KAAK,OAAQ;AACjB,QAAI,KAAK,YAAa,QAAO,KAAK;AAElC,SAAK,eAAe,YAAY;AAC5B,UAAI,CAAC,KAAK,IAAI;AACV,aAAK,KAAK,MAAa,yBAAkB,KAAK,IAAI;
|
|
1
|
+
{"version":3,"sources":["../src/expoSqlite.ts","../src/storage/sqlite/drivers/ExpoSQLiteDriver.native.ts"],"sourcesContent":["export { ExpoSQLiteDriver } from './storage/sqlite/drivers/ExpoSQLiteDriver.native';\nexport type { SQLiteDatabaseDriver, SQLiteQueryResult, SQLiteRunResult } from './storage/sqlite/types';\n","import * as SQLite from 'expo-sqlite';\n\nimport type { SQLiteDatabaseDriver, SQLiteQueryResult, SQLiteRunResult } from '../types';\n\nexport class ExpoSQLiteDriver implements SQLiteDatabaseDriver {\n readonly type = 'ExpoSQLiteDriver';\n private db: SQLite.SQLiteDatabase | null = null;\n private openPromise?: Promise<void>;\n private opened = false;\n readonly name: string;\n\n constructor(name: string) {\n this.name = name;\n }\n\n async open(): Promise<void> {\n if (this.opened) return;\n if (this.openPromise) return this.openPromise;\n\n this.openPromise = (async () => {\n if (!this.db) {\n this.db = await SQLite.openDatabaseAsync(this.name);\n // Case-sensitive LIKE to match Dexie's startsWith() behavior\n await this.db.execAsync('PRAGMA case_sensitive_like = ON');\n this.opened = true;\n }\n })();\n\n try {\n await this.openPromise;\n } finally {\n this.openPromise = undefined;\n }\n }\n\n async close(): Promise<void> {\n const db = this.db;\n this.db = null;\n this.opened = false;\n this.openPromise = undefined;\n if (db?.closeAsync) {\n await db.closeAsync();\n }\n }\n\n async execute(statement: string): Promise<void> {\n await this.run(statement, []);\n }\n\n async run(statement: string, values: any[] = []): Promise<SQLiteRunResult> {\n await this.open();\n const db = this.db!;\n const result = await db.runAsync(statement, values);\n return {\n changes: result.changes ?? 0,\n lastId: (result as any).lastInsertRowId ?? (result as any).lastInsertId ?? undefined,\n };\n }\n\n async query(statement: string, values: any[] = []): Promise<SQLiteQueryResult> {\n await this.open();\n const db = this.db!;\n const rows = await db.getAllAsync(statement, values);\n const first = rows[0];\n const columns = first ? Object.keys(first) : [];\n const valuesMatrix = rows.map((row) => columns.map((col) => (row as any)[col]));\n return { columns, values: valuesMatrix };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,aAAwB;AAIjB,IAAM,mBAAN,MAAuD;AAAA,EACjD,OAAO;AAAA,EACR,KAAmC;AAAA,EACnC;AAAA,EACA,SAAS;AAAA,EACR;AAAA,EAET,YAAY,MAAc;AACtB,SAAK,OAAO;AAAA,EAChB;AAAA,EAEA,MAAM,OAAsB;AACxB,QAAI,KAAK,OAAQ;AACjB,QAAI,KAAK,YAAa,QAAO,KAAK;AAElC,SAAK,eAAe,YAAY;AAC5B,UAAI,CAAC,KAAK,IAAI;AACV,aAAK,KAAK,MAAa,yBAAkB,KAAK,IAAI;AAElD,cAAM,KAAK,GAAG,UAAU,iCAAiC;AACzD,aAAK,SAAS;AAAA,MAClB;AAAA,IACJ,GAAG;AAEH,QAAI;AACA,YAAM,KAAK;AAAA,IACf,UAAE;AACE,WAAK,cAAc;AAAA,IACvB;AAAA,EACJ;AAAA,EAEA,MAAM,QAAuB;AACzB,UAAM,KAAK,KAAK;AAChB,SAAK,KAAK;AACV,SAAK,SAAS;AACd,SAAK,cAAc;AACnB,QAAI,IAAI,YAAY;AAChB,YAAM,GAAG,WAAW;AAAA,IACxB;AAAA,EACJ;AAAA,EAEA,MAAM,QAAQ,WAAkC;AAC5C,UAAM,KAAK,IAAI,WAAW,CAAC,CAAC;AAAA,EAChC;AAAA,EAEA,MAAM,IAAI,WAAmB,SAAgB,CAAC,GAA6B;AACvE,UAAM,KAAK,KAAK;AAChB,UAAM,KAAK,KAAK;AAChB,UAAM,SAAS,MAAM,GAAG,SAAS,WAAW,MAAM;AAClD,WAAO;AAAA,MACH,SAAS,OAAO,WAAW;AAAA,MAC3B,QAAS,OAAe,mBAAoB,OAAe,gBAAgB;AAAA,IAC/E;AAAA,EACJ;AAAA,EAEA,MAAM,MAAM,WAAmB,SAAgB,CAAC,GAA+B;AAC3E,UAAM,KAAK,KAAK;AAChB,UAAM,KAAK,KAAK;AAChB,UAAM,OAAO,MAAM,GAAG,YAAY,WAAW,MAAM;AACnD,UAAM,QAAQ,KAAK,CAAC;AACpB,UAAM,UAAU,QAAQ,OAAO,KAAK,KAAK,IAAI,CAAC;AAC9C,UAAM,eAAe,KAAK,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC,QAAS,IAAY,GAAG,CAAC,CAAC;AAC9E,WAAO,EAAE,SAAS,QAAQ,aAAa;AAAA,EAC3C;AACJ;","names":[]}
|
package/dist/expoSqlite.js
CHANGED
package/dist/expoSqlite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/storage/sqlite/drivers/ExpoSQLiteDriver.native.ts"],"sourcesContent":["import * as SQLite from 'expo-sqlite';\n\nimport type { SQLiteDatabaseDriver, SQLiteQueryResult, SQLiteRunResult } from '../types';\n\nexport class ExpoSQLiteDriver implements SQLiteDatabaseDriver {\n readonly type = 'ExpoSQLiteDriver';\n private db: SQLite.SQLiteDatabase | null = null;\n private openPromise?: Promise<void>;\n private opened = false;\n readonly name: string;\n\n constructor(name: string) {\n this.name = name;\n }\n\n async open(): Promise<void> {\n if (this.opened) return;\n if (this.openPromise) return this.openPromise;\n\n this.openPromise = (async () => {\n if (!this.db) {\n this.db = await SQLite.openDatabaseAsync(this.name);\n this.opened = true;\n }\n })();\n\n try {\n await this.openPromise;\n } finally {\n this.openPromise = undefined;\n }\n }\n\n async close(): Promise<void> {\n const db = this.db;\n this.db = null;\n this.opened = false;\n this.openPromise = undefined;\n if (db?.closeAsync) {\n await db.closeAsync();\n }\n }\n\n async execute(statement: string): Promise<void> {\n await this.run(statement, []);\n }\n\n async run(statement: string, values: any[] = []): Promise<SQLiteRunResult> {\n await this.open();\n const db = this.db!;\n const result = await db.runAsync(statement, values);\n return {\n changes: result.changes ?? 0,\n lastId: (result as any).lastInsertRowId ?? (result as any).lastInsertId ?? undefined,\n };\n }\n\n async query(statement: string, values: any[] = []): Promise<SQLiteQueryResult> {\n await this.open();\n const db = this.db!;\n const rows = await db.getAllAsync(statement, values);\n const first = rows[0];\n const columns = first ? Object.keys(first) : [];\n const valuesMatrix = rows.map((row) => columns.map((col) => (row as any)[col]));\n return { columns, values: valuesMatrix };\n }\n}\n"],"mappings":";AAAA,YAAY,YAAY;AAIjB,IAAM,mBAAN,MAAuD;AAAA,EACjD,OAAO;AAAA,EACR,KAAmC;AAAA,EACnC;AAAA,EACA,SAAS;AAAA,EACR;AAAA,EAET,YAAY,MAAc;AACtB,SAAK,OAAO;AAAA,EAChB;AAAA,EAEA,MAAM,OAAsB;AACxB,QAAI,KAAK,OAAQ;AACjB,QAAI,KAAK,YAAa,QAAO,KAAK;AAElC,SAAK,eAAe,YAAY;AAC5B,UAAI,CAAC,KAAK,IAAI;AACV,aAAK,KAAK,MAAa,yBAAkB,KAAK,IAAI;
|
|
1
|
+
{"version":3,"sources":["../src/storage/sqlite/drivers/ExpoSQLiteDriver.native.ts"],"sourcesContent":["import * as SQLite from 'expo-sqlite';\n\nimport type { SQLiteDatabaseDriver, SQLiteQueryResult, SQLiteRunResult } from '../types';\n\nexport class ExpoSQLiteDriver implements SQLiteDatabaseDriver {\n readonly type = 'ExpoSQLiteDriver';\n private db: SQLite.SQLiteDatabase | null = null;\n private openPromise?: Promise<void>;\n private opened = false;\n readonly name: string;\n\n constructor(name: string) {\n this.name = name;\n }\n\n async open(): Promise<void> {\n if (this.opened) return;\n if (this.openPromise) return this.openPromise;\n\n this.openPromise = (async () => {\n if (!this.db) {\n this.db = await SQLite.openDatabaseAsync(this.name);\n // Case-sensitive LIKE to match Dexie's startsWith() behavior\n await this.db.execAsync('PRAGMA case_sensitive_like = ON');\n this.opened = true;\n }\n })();\n\n try {\n await this.openPromise;\n } finally {\n this.openPromise = undefined;\n }\n }\n\n async close(): Promise<void> {\n const db = this.db;\n this.db = null;\n this.opened = false;\n this.openPromise = undefined;\n if (db?.closeAsync) {\n await db.closeAsync();\n }\n }\n\n async execute(statement: string): Promise<void> {\n await this.run(statement, []);\n }\n\n async run(statement: string, values: any[] = []): Promise<SQLiteRunResult> {\n await this.open();\n const db = this.db!;\n const result = await db.runAsync(statement, values);\n return {\n changes: result.changes ?? 0,\n lastId: (result as any).lastInsertRowId ?? (result as any).lastInsertId ?? undefined,\n };\n }\n\n async query(statement: string, values: any[] = []): Promise<SQLiteQueryResult> {\n await this.open();\n const db = this.db!;\n const rows = await db.getAllAsync(statement, values);\n const first = rows[0];\n const columns = first ? Object.keys(first) : [];\n const valuesMatrix = rows.map((row) => columns.map((col) => (row as any)[col]));\n return { columns, values: valuesMatrix };\n }\n}\n"],"mappings":";AAAA,YAAY,YAAY;AAIjB,IAAM,mBAAN,MAAuD;AAAA,EACjD,OAAO;AAAA,EACR,KAAmC;AAAA,EACnC;AAAA,EACA,SAAS;AAAA,EACR;AAAA,EAET,YAAY,MAAc;AACtB,SAAK,OAAO;AAAA,EAChB;AAAA,EAEA,MAAM,OAAsB;AACxB,QAAI,KAAK,OAAQ;AACjB,QAAI,KAAK,YAAa,QAAO,KAAK;AAElC,SAAK,eAAe,YAAY;AAC5B,UAAI,CAAC,KAAK,IAAI;AACV,aAAK,KAAK,MAAa,yBAAkB,KAAK,IAAI;AAElD,cAAM,KAAK,GAAG,UAAU,iCAAiC;AACzD,aAAK,SAAS;AAAA,MAClB;AAAA,IACJ,GAAG;AAEH,QAAI;AACA,YAAM,KAAK;AAAA,IACf,UAAE;AACE,WAAK,cAAc;AAAA,IACvB;AAAA,EACJ;AAAA,EAEA,MAAM,QAAuB;AACzB,UAAM,KAAK,KAAK;AAChB,SAAK,KAAK;AACV,SAAK,SAAS;AACd,SAAK,cAAc;AACnB,QAAI,IAAI,YAAY;AAChB,YAAM,GAAG,WAAW;AAAA,IACxB;AAAA,EACJ;AAAA,EAEA,MAAM,QAAQ,WAAkC;AAC5C,UAAM,KAAK,IAAI,WAAW,CAAC,CAAC;AAAA,EAChC;AAAA,EAEA,MAAM,IAAI,WAAmB,SAAgB,CAAC,GAA6B;AACvE,UAAM,KAAK,KAAK;AAChB,UAAM,KAAK,KAAK;AAChB,UAAM,SAAS,MAAM,GAAG,SAAS,WAAW,MAAM;AAClD,WAAO;AAAA,MACH,SAAS,OAAO,WAAW;AAAA,MAC3B,QAAS,OAAe,mBAAoB,OAAe,gBAAgB;AAAA,IAC/E;AAAA,EACJ;AAAA,EAEA,MAAM,MAAM,WAAmB,SAAgB,CAAC,GAA+B;AAC3E,UAAM,KAAK,KAAK;AAChB,UAAM,KAAK,KAAK;AAChB,UAAM,OAAO,MAAM,GAAG,YAAY,WAAW,MAAM;AACnD,UAAM,QAAQ,KAAK,CAAC;AACpB,UAAM,UAAU,QAAQ,OAAO,KAAK,KAAK,IAAI,CAAC;AAC9C,UAAM,eAAe,KAAK,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC,QAAS,IAAY,GAAG,CAAC,CAAC;AAC9E,WAAO,EAAE,SAAS,QAAQ,aAAa;AAAA,EAC3C;AACJ;","names":[]}
|
package/dist/index.cjs
CHANGED
|
@@ -2339,7 +2339,7 @@ var MemoryAdapter = class {
|
|
|
2339
2339
|
var SQLITE_SCHEMA_VERSION_STATE_KEY = "sqlite_schema_version";
|
|
2340
2340
|
var DEFAULT_STREAM_BATCH_SIZE = 200;
|
|
2341
2341
|
var createDefaultState2 = () => ({
|
|
2342
|
-
|
|
2342
|
+
orGroups: [[]],
|
|
2343
2343
|
jsPredicate: void 0,
|
|
2344
2344
|
orderBy: void 0,
|
|
2345
2345
|
reverse: false,
|
|
@@ -2347,19 +2347,26 @@ var createDefaultState2 = () => ({
|
|
|
2347
2347
|
limit: void 0,
|
|
2348
2348
|
distinct: false
|
|
2349
2349
|
});
|
|
2350
|
-
var buildWhereClause = (
|
|
2351
|
-
|
|
2350
|
+
var buildWhereClause = (orGroups) => {
|
|
2351
|
+
const nonEmptyGroups = orGroups.filter((group) => group.length > 0);
|
|
2352
|
+
if (nonEmptyGroups.length === 0) {
|
|
2352
2353
|
return { whereClause: "", parameters: [] };
|
|
2353
2354
|
}
|
|
2354
|
-
const
|
|
2355
|
+
const groupClauses = [];
|
|
2355
2356
|
const parameters = [];
|
|
2356
|
-
for (const
|
|
2357
|
-
const
|
|
2358
|
-
|
|
2359
|
-
|
|
2357
|
+
for (const group of nonEmptyGroups) {
|
|
2358
|
+
const conditionClauses = [];
|
|
2359
|
+
for (const condition of group) {
|
|
2360
|
+
const built = buildCondition(condition);
|
|
2361
|
+
conditionClauses.push(built.clause);
|
|
2362
|
+
parameters.push(...built.parameters);
|
|
2363
|
+
}
|
|
2364
|
+
const groupClause = conditionClauses.length === 1 ? conditionClauses[0] : `(${conditionClauses.join(" AND ")})`;
|
|
2365
|
+
groupClauses.push(groupClause);
|
|
2360
2366
|
}
|
|
2367
|
+
const whereContent = groupClauses.length === 1 ? groupClauses[0] : `(${groupClauses.join(" OR ")})`;
|
|
2361
2368
|
return {
|
|
2362
|
-
whereClause: `WHERE ${
|
|
2369
|
+
whereClause: `WHERE ${whereContent}`,
|
|
2363
2370
|
parameters
|
|
2364
2371
|
};
|
|
2365
2372
|
};
|
|
@@ -3610,25 +3617,26 @@ var SQLiteCollection2 = class _SQLiteCollection {
|
|
|
3610
3617
|
this.state = {
|
|
3611
3618
|
...base,
|
|
3612
3619
|
...state,
|
|
3613
|
-
|
|
3620
|
+
orGroups: state?.orGroups ?? base.orGroups,
|
|
3614
3621
|
jsPredicate: state?.jsPredicate
|
|
3615
3622
|
};
|
|
3616
3623
|
}
|
|
3617
3624
|
getState() {
|
|
3618
|
-
return { ...this.state,
|
|
3625
|
+
return { ...this.state, orGroups: this.state.orGroups.map((g) => [...g]) };
|
|
3619
3626
|
}
|
|
3620
|
-
// Add a SQL-expressible condition to
|
|
3627
|
+
// Add a SQL-expressible condition to the current OR group
|
|
3621
3628
|
addSqlCondition(condition) {
|
|
3629
|
+
const newGroups = this.state.orGroups.map((g, i) => i === this.state.orGroups.length - 1 ? [...g, condition] : g);
|
|
3622
3630
|
return new _SQLiteCollection(this.table, {
|
|
3623
3631
|
...this.state,
|
|
3624
|
-
|
|
3632
|
+
orGroups: newGroups
|
|
3625
3633
|
});
|
|
3626
3634
|
}
|
|
3627
3635
|
replicate(overrides) {
|
|
3628
3636
|
return new _SQLiteCollection(this.table, {
|
|
3629
3637
|
...this.state,
|
|
3630
3638
|
...overrides,
|
|
3631
|
-
|
|
3639
|
+
orGroups: overrides?.orGroups ?? this.state.orGroups,
|
|
3632
3640
|
jsPredicate: overrides?.jsPredicate !== void 0 ? overrides.jsPredicate : this.state.jsPredicate
|
|
3633
3641
|
});
|
|
3634
3642
|
}
|
|
@@ -3654,7 +3662,7 @@ var SQLiteCollection2 = class _SQLiteCollection {
|
|
|
3654
3662
|
* and apply them after JS filtering.
|
|
3655
3663
|
*/
|
|
3656
3664
|
async executeQuery(options = {}) {
|
|
3657
|
-
const { whereClause, parameters } = buildWhereClause(this.state.
|
|
3665
|
+
const { whereClause, parameters } = buildWhereClause(this.state.orGroups);
|
|
3658
3666
|
const ordering = options.orderByOverride ?? this.resolveOrdering();
|
|
3659
3667
|
const cloneValues = options.clone !== false;
|
|
3660
3668
|
const hasJsFilter = this.hasJsPredicate();
|
|
@@ -3721,7 +3729,7 @@ var SQLiteCollection2 = class _SQLiteCollection {
|
|
|
3721
3729
|
}
|
|
3722
3730
|
async keys() {
|
|
3723
3731
|
if (!this.hasJsPredicate()) {
|
|
3724
|
-
const { whereClause, parameters } = buildWhereClause(this.state.
|
|
3732
|
+
const { whereClause, parameters } = buildWhereClause(this.state.orGroups);
|
|
3725
3733
|
const ordering = this.resolveOrdering();
|
|
3726
3734
|
return this.table.queryKeysWithConditions({
|
|
3727
3735
|
whereClause,
|
|
@@ -3740,7 +3748,7 @@ var SQLiteCollection2 = class _SQLiteCollection {
|
|
|
3740
3748
|
}
|
|
3741
3749
|
async uniqueKeys() {
|
|
3742
3750
|
if (!this.hasJsPredicate()) {
|
|
3743
|
-
const { whereClause, parameters } = buildWhereClause(this.state.
|
|
3751
|
+
const { whereClause, parameters } = buildWhereClause(this.state.orGroups);
|
|
3744
3752
|
const ordering = this.resolveOrdering();
|
|
3745
3753
|
return this.table.queryKeysWithConditions({
|
|
3746
3754
|
whereClause,
|
|
@@ -3757,8 +3765,8 @@ var SQLiteCollection2 = class _SQLiteCollection {
|
|
|
3757
3765
|
async count() {
|
|
3758
3766
|
if (!this.hasJsPredicate()) {
|
|
3759
3767
|
return this.table.countWithConditions({
|
|
3760
|
-
whereClause: buildWhereClause(this.state.
|
|
3761
|
-
parameters: buildWhereClause(this.state.
|
|
3768
|
+
whereClause: buildWhereClause(this.state.orGroups).whereClause,
|
|
3769
|
+
parameters: buildWhereClause(this.state.orGroups).parameters,
|
|
3762
3770
|
distinct: this.state.distinct
|
|
3763
3771
|
});
|
|
3764
3772
|
}
|
|
@@ -3778,7 +3786,11 @@ var SQLiteCollection2 = class _SQLiteCollection {
|
|
|
3778
3786
|
return this.withJsPredicate((record) => predicate(cloneValue(record)));
|
|
3779
3787
|
}
|
|
3780
3788
|
or(index) {
|
|
3781
|
-
|
|
3789
|
+
const newCollection = new _SQLiteCollection(this.table, {
|
|
3790
|
+
...this.state,
|
|
3791
|
+
orGroups: [...this.state.orGroups, []]
|
|
3792
|
+
});
|
|
3793
|
+
return this.table.createWhereClause(index, newCollection);
|
|
3782
3794
|
}
|
|
3783
3795
|
clone(_props) {
|
|
3784
3796
|
return this.replicate();
|
|
@@ -3797,7 +3809,7 @@ var SQLiteCollection2 = class _SQLiteCollection {
|
|
|
3797
3809
|
}
|
|
3798
3810
|
async delete() {
|
|
3799
3811
|
if (!this.hasJsPredicate()) {
|
|
3800
|
-
const { whereClause, parameters } = buildWhereClause(this.state.
|
|
3812
|
+
const { whereClause, parameters } = buildWhereClause(this.state.orGroups);
|
|
3801
3813
|
return this.table.deleteWithConditions({ whereClause, parameters });
|
|
3802
3814
|
}
|
|
3803
3815
|
const entries = await this.executeQuery({ clone: false });
|
|
@@ -3808,7 +3820,7 @@ var SQLiteCollection2 = class _SQLiteCollection {
|
|
|
3808
3820
|
}
|
|
3809
3821
|
async modify(changes) {
|
|
3810
3822
|
if (typeof changes !== "function" && !this.hasJsPredicate()) {
|
|
3811
|
-
const { whereClause, parameters } = buildWhereClause(this.state.
|
|
3823
|
+
const { whereClause, parameters } = buildWhereClause(this.state.orGroups);
|
|
3812
3824
|
return this.table.updateWithConditions({ whereClause, parameters, changes });
|
|
3813
3825
|
}
|
|
3814
3826
|
const entries = await this.executeQuery();
|