@ix-xs/node-comfort 2.0.0 → 2.1.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/CHANGELOG.md +150 -0
- package/README.md +32 -30
- package/index.js +3 -3
- package/package.json +8 -7
- package/src/Arr.js +222 -58
- package/src/Async.js +322 -90
- package/src/Cache.js +148 -44
- package/src/Checker.js +257 -26
- package/src/Cli.js +404 -145
- package/src/Color.js +224 -83
- package/src/Crypto.js +481 -106
- package/src/Emitter.js +104 -37
- package/src/Env.js +176 -42
- package/src/FS.js +203 -60
- package/src/Func.js +226 -76
- package/src/Http.js +311 -149
- package/src/Id.js +281 -96
- package/src/Logger.js +302 -78
- package/src/Num.js +182 -60
- package/src/Obj.js +340 -125
- package/src/SQLite.js +426 -105
- package/src/Schema.js +602 -87
- package/src/Str.js +316 -86
- package/src/Sys.js +197 -54
- package/src/Time.js +572 -317
- package/src/Utils.js +62 -41
- package/src/errors.js +54 -11
- package/src/internal/shared.js +415 -0
- package/types/index.d.ts +59 -17
- package/types/src/Arr.d.ts +78 -0
- package/types/src/Arr.d.ts.map +1 -1
- package/types/src/Async.d.ts +52 -1
- package/types/src/Async.d.ts.map +1 -1
- package/types/src/Cache.d.ts +33 -7
- package/types/src/Cache.d.ts.map +1 -1
- package/types/src/Checker.d.ts +155 -2
- package/types/src/Checker.d.ts.map +1 -1
- package/types/src/Cli.d.ts +97 -15
- package/types/src/Cli.d.ts.map +1 -1
- package/types/src/Color.d.ts +7 -1
- package/types/src/Color.d.ts.map +1 -1
- package/types/src/Crypto.d.ts +99 -13
- package/types/src/Crypto.d.ts.map +1 -1
- package/types/src/Emitter.d.ts +36 -17
- package/types/src/Emitter.d.ts.map +1 -1
- package/types/src/Env.d.ts +31 -1
- package/types/src/Env.d.ts.map +1 -1
- package/types/src/FS.d.ts +36 -5
- package/types/src/FS.d.ts.map +1 -1
- package/types/src/Func.d.ts +147 -19
- package/types/src/Func.d.ts.map +1 -1
- package/types/src/Http.d.ts +113 -43
- package/types/src/Http.d.ts.map +1 -1
- package/types/src/Id.d.ts +60 -8
- package/types/src/Id.d.ts.map +1 -1
- package/types/src/Logger.d.ts +53 -2
- package/types/src/Logger.d.ts.map +1 -1
- package/types/src/Num.d.ts +48 -7
- package/types/src/Num.d.ts.map +1 -1
- package/types/src/Obj.d.ts +67 -4
- package/types/src/Obj.d.ts.map +1 -1
- package/types/src/SQLite.d.ts +123 -14
- package/types/src/SQLite.d.ts.map +1 -1
- package/types/src/Schema.d.ts +256 -7
- package/types/src/Schema.d.ts.map +1 -1
- package/types/src/Str.d.ts +49 -1
- package/types/src/Str.d.ts.map +1 -1
- package/types/src/Sys.d.ts +51 -6
- package/types/src/Sys.d.ts.map +1 -1
- package/types/src/Time.d.ts +130 -34
- package/types/src/Time.d.ts.map +1 -1
- package/types/src/Utils.d.ts +15 -11
- package/types/src/Utils.d.ts.map +1 -1
- package/types/src/errors.d.ts +27 -3
- package/types/src/errors.d.ts.map +1 -1
- package/types/src/internal/shared.d.ts +123 -0
- package/types/src/internal/shared.d.ts.map +1 -0
package/types/src/Num.d.ts
CHANGED
|
@@ -59,7 +59,7 @@ export type FormatNumberOptions = {
|
|
|
59
59
|
/**
|
|
60
60
|
* `"percent"` multiplies by 100 and adds `%`.
|
|
61
61
|
*/
|
|
62
|
-
style?: "
|
|
62
|
+
style?: "percent" | "decimal" | undefined;
|
|
63
63
|
/**
|
|
64
64
|
* Any `Intl` unit: `"kilometer"`, `"celsius"`, `"megabyte"`...
|
|
65
65
|
*/
|
|
@@ -71,7 +71,7 @@ export type FormatNumberOptions = {
|
|
|
71
71
|
/**
|
|
72
72
|
* When to show the sign. `"exceptZero"` gives `+5`.
|
|
73
73
|
*/
|
|
74
|
-
signDisplay?: "
|
|
74
|
+
signDisplay?: "auto" | "always" | "never" | "exceptZero" | undefined;
|
|
75
75
|
/**
|
|
76
76
|
* Thousands separators. Defaults to `true`.
|
|
77
77
|
*/
|
|
@@ -92,7 +92,7 @@ export type CurrencyOptions = {
|
|
|
92
92
|
/**
|
|
93
93
|
* `€`, `€`, `EUR` or `euros`. Defaults to `"symbol"`.
|
|
94
94
|
*/
|
|
95
|
-
display?: "symbol" | "
|
|
95
|
+
display?: "symbol" | "name" | "code" | "narrowSymbol" | undefined;
|
|
96
96
|
/**
|
|
97
97
|
* Show negative amounts in parentheses, like `($5.00)`.
|
|
98
98
|
*/
|
|
@@ -121,8 +121,8 @@ export type VarianceOptions = {
|
|
|
121
121
|
sample?: boolean | undefined;
|
|
122
122
|
};
|
|
123
123
|
/**
|
|
124
|
-
* Sets the default language of `format`, `currency`, `
|
|
125
|
-
* `
|
|
124
|
+
* Sets the default language of `format`, `currency`, `ordinal` and
|
|
125
|
+
* `formatBytes`.
|
|
126
126
|
*
|
|
127
127
|
* @example
|
|
128
128
|
* num.setLocale("fr");
|
|
@@ -293,15 +293,26 @@ export function random(min?: number, max?: number): number;
|
|
|
293
293
|
*/
|
|
294
294
|
export function randomInt(min: number, max: number): number;
|
|
295
295
|
/**
|
|
296
|
-
* Adds up numbers.
|
|
296
|
+
* Adds up numbers, without the drift of a naive loop.
|
|
297
297
|
*
|
|
298
298
|
* @example
|
|
299
|
-
* num.sum([1, 2, 3]);
|
|
299
|
+
* num.sum([1, 2, 3]); // 6
|
|
300
|
+
* num.sum([0.1, 0.2, 0.3]); // 0.6, where a plain loop gives 0.6000000000000001
|
|
300
301
|
*
|
|
301
302
|
* @param {Iterable<number>} values
|
|
302
303
|
* @returns {number}
|
|
303
304
|
*/
|
|
304
305
|
export function sum(values: Iterable<number>): number;
|
|
306
|
+
/**
|
|
307
|
+
* Multiplies numbers. An empty list gives `1`.
|
|
308
|
+
*
|
|
309
|
+
* @example
|
|
310
|
+
* num.product([2, 3, 4]); // 24
|
|
311
|
+
*
|
|
312
|
+
* @param {Iterable<number>} values
|
|
313
|
+
* @returns {number}
|
|
314
|
+
*/
|
|
315
|
+
export function product(values: Iterable<number>): number;
|
|
305
316
|
/**
|
|
306
317
|
* The mean, or `0` for an empty list.
|
|
307
318
|
*
|
|
@@ -370,6 +381,7 @@ export function stdDev(values: Iterable<number>, options?: VarianceOptions): num
|
|
|
370
381
|
export function percentile(values: Iterable<number>, p: number): number;
|
|
371
382
|
/**
|
|
372
383
|
* The smallest number. Unlike `Math.min(...array)`, huge arrays are fine.
|
|
384
|
+
* Like `Math.min`, a `NaN` in the list gives `NaN`.
|
|
373
385
|
*
|
|
374
386
|
* @param {Iterable<number>} values
|
|
375
387
|
* @returns {number | undefined} `undefined` for an empty list.
|
|
@@ -377,6 +389,7 @@ export function percentile(values: Iterable<number>, p: number): number;
|
|
|
377
389
|
export function min(values: Iterable<number>): number | undefined;
|
|
378
390
|
/**
|
|
379
391
|
* The largest number. Unlike `Math.max(...array)`, huge arrays are fine.
|
|
392
|
+
* Like `Math.max`, a `NaN` in the list gives `NaN`.
|
|
380
393
|
*
|
|
381
394
|
* @param {Iterable<number>} values
|
|
382
395
|
* @returns {number | undefined} `undefined` for an empty list.
|
|
@@ -395,6 +408,20 @@ export function max(values: Iterable<number>): number | undefined;
|
|
|
395
408
|
* @returns {number}
|
|
396
409
|
*/
|
|
397
410
|
export function percent(value: number, total: number, decimals?: number): number;
|
|
411
|
+
/**
|
|
412
|
+
* How much a value changed, in percent. Going from `0` to anything else is
|
|
413
|
+
* an infinite change.
|
|
414
|
+
*
|
|
415
|
+
* @example
|
|
416
|
+
* num.percentChange(80, 100); // 25
|
|
417
|
+
* num.percentChange(100, 80); // -20
|
|
418
|
+
*
|
|
419
|
+
* @param {number} from
|
|
420
|
+
* @param {number} to
|
|
421
|
+
* @param {number} [decimals=2]
|
|
422
|
+
* @returns {number}
|
|
423
|
+
*/
|
|
424
|
+
export function percentChange(from: number, to: number, decimals?: number): number;
|
|
398
425
|
/**
|
|
399
426
|
* Greatest common divisor.
|
|
400
427
|
*
|
|
@@ -562,6 +589,20 @@ export function abbreviate(value: number, decimals?: number): string;
|
|
|
562
589
|
* @returns {string}
|
|
563
590
|
*/
|
|
564
591
|
export function thousands(value: number | string, separator?: string): string;
|
|
592
|
+
/**
|
|
593
|
+
* Pads the integer part with zeros (or another character).
|
|
594
|
+
*
|
|
595
|
+
* @example
|
|
596
|
+
* num.pad(7, 3); // "007"
|
|
597
|
+
* num.pad(-7, 3); // "-007"
|
|
598
|
+
* num.pad(3.5, 2); // "03.5"
|
|
599
|
+
*
|
|
600
|
+
* @param {number} value
|
|
601
|
+
* @param {number} length Digits wanted before the decimal point.
|
|
602
|
+
* @param {string} [char="0"]
|
|
603
|
+
* @returns {string}
|
|
604
|
+
*/
|
|
605
|
+
export function pad(value: number, length: number, char?: string): string;
|
|
565
606
|
/**
|
|
566
607
|
* Adds the ordinal suffix: 1st, 2nd, 3rd... in several languages.
|
|
567
608
|
*
|
package/types/src/Num.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Num.d.ts","sourceRoot":"","sources":["../../src/Num.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Num.d.ts","sourceRoot":"","sources":["../../src/Num.js"],"names":[],"mappings":"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"}
|
package/types/src/Obj.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
declare namespace _exports {
|
|
2
|
-
export { PathLeaf, Paths, NullishToUndefined, PathValue, PathStep, PathInput, DeepReadonly, Change, MergeOptions, CompactOptions };
|
|
2
|
+
export { PathLeaf, Paths, NullishToUndefined, PathValue, PathStep, PathInput, DeepReadonly, Change, MergeOptions, SortKeysOptions, CompactOptions };
|
|
3
3
|
}
|
|
4
4
|
declare namespace _exports {
|
|
5
5
|
export { clone };
|
|
@@ -10,6 +10,7 @@ declare namespace _exports {
|
|
|
10
10
|
export { diff };
|
|
11
11
|
export { get };
|
|
12
12
|
export { set };
|
|
13
|
+
export { update };
|
|
13
14
|
export { unset };
|
|
14
15
|
export { has };
|
|
15
16
|
export { pick };
|
|
@@ -22,6 +23,8 @@ declare namespace _exports {
|
|
|
22
23
|
export { compact };
|
|
23
24
|
export { flatten };
|
|
24
25
|
export { unflatten };
|
|
26
|
+
export { paths };
|
|
27
|
+
export { sortKeys };
|
|
25
28
|
export { keys };
|
|
26
29
|
export { entries };
|
|
27
30
|
export { fromEntries };
|
|
@@ -85,6 +88,19 @@ type MergeOptions = {
|
|
|
85
88
|
*/
|
|
86
89
|
skipUndefined?: boolean | undefined;
|
|
87
90
|
};
|
|
91
|
+
/**
|
|
92
|
+
* Options for `sortKeys()`.
|
|
93
|
+
*/
|
|
94
|
+
type SortKeysOptions = {
|
|
95
|
+
/**
|
|
96
|
+
* Sort nested objects too, arrays included. Defaults to `true`. With `false`, only the first level is copied and sorted: what it holds is shared with the original.
|
|
97
|
+
*/
|
|
98
|
+
deep?: boolean | undefined;
|
|
99
|
+
/**
|
|
100
|
+
* How to order two keys. Defaults to code-unit order, which is stable across machines.
|
|
101
|
+
*/
|
|
102
|
+
compare?: ((a: string, b: string) => number) | undefined;
|
|
103
|
+
};
|
|
88
104
|
/**
|
|
89
105
|
* Options for `compact()`.
|
|
90
106
|
*/
|
|
@@ -99,8 +115,9 @@ type CompactOptions = {
|
|
|
99
115
|
removeEmpty?: boolean | undefined;
|
|
100
116
|
};
|
|
101
117
|
/**
|
|
102
|
-
* Deep copy.
|
|
103
|
-
*
|
|
118
|
+
* Deep copy. Unlike `structuredClone`, it keeps functions and class
|
|
119
|
+
* instances (with their prototype), and it's faster on plain data. Shared
|
|
120
|
+
* references and cycles are preserved.
|
|
104
121
|
*
|
|
105
122
|
* @example
|
|
106
123
|
* const copy = obj.clone({ a: { b: [1, 2] }, when: new Date() });
|
|
@@ -263,6 +280,21 @@ declare function get<T, P extends string, F>(object: T, path: P | Paths<T> | Rea
|
|
|
263
280
|
* @returns {T}
|
|
264
281
|
*/
|
|
265
282
|
declare function set<T>(object: T, path: PathInput<T>, value: unknown): T;
|
|
283
|
+
/**
|
|
284
|
+
* Returns a copy where the value at `path` is replaced by what `updater`
|
|
285
|
+
* returns for it. Handy for counters and lists.
|
|
286
|
+
*
|
|
287
|
+
* @example
|
|
288
|
+
* obj.update(state, "stats.visits", (n = 0) => n + 1);
|
|
289
|
+
* obj.update(cart, "items", (items = []) => [...items, product]);
|
|
290
|
+
*
|
|
291
|
+
* @template T
|
|
292
|
+
* @param {T} object
|
|
293
|
+
* @param {PathInput<T>} path
|
|
294
|
+
* @param {(value: any) => unknown} updater Gets the current value, `undefined` if there's none.
|
|
295
|
+
* @returns {T}
|
|
296
|
+
*/
|
|
297
|
+
declare function update<T>(object: T, path: PathInput<T>, updater: (value: any) => unknown): T;
|
|
266
298
|
/**
|
|
267
299
|
* Returns a copy without the property at `path`.
|
|
268
300
|
*
|
|
@@ -407,6 +439,31 @@ declare function flatten(object: object, prefix?: string): Record<string, unknow
|
|
|
407
439
|
* @returns {Record<string, any>}
|
|
408
440
|
*/
|
|
409
441
|
declare function unflatten(object: Record<string, unknown>): Record<string, any>;
|
|
442
|
+
/**
|
|
443
|
+
* Every leaf path of an object, in dotted form. Arrays count as leaves.
|
|
444
|
+
*
|
|
445
|
+
* @example
|
|
446
|
+
* obj.paths({ db: { host: "x", port: 5432 }, tags: ["a"] }); // ["db.host", "db.port", "tags"]
|
|
447
|
+
*
|
|
448
|
+
* @param {object} object
|
|
449
|
+
* @returns {string[]}
|
|
450
|
+
*/
|
|
451
|
+
declare function paths(object: object): string[];
|
|
452
|
+
/**
|
|
453
|
+
* A copy with its keys in order, nested objects included. Two objects with
|
|
454
|
+
* the same content then give the same JSON, which makes stable hashes,
|
|
455
|
+
* cache keys and readable diffs.
|
|
456
|
+
*
|
|
457
|
+
* @example
|
|
458
|
+
* obj.sortKeys({ b: 1, a: { d: 1, c: 2 } }); // { a: { c: 2, d: 1 }, b: 1 }
|
|
459
|
+
* nc.crypto.hash(JSON.stringify(obj.sortKeys(payload)));
|
|
460
|
+
*
|
|
461
|
+
* @template T
|
|
462
|
+
* @param {T} object
|
|
463
|
+
* @param {SortKeysOptions} [options]
|
|
464
|
+
* @returns {T}
|
|
465
|
+
*/
|
|
466
|
+
declare function sortKeys<T>(object: T, options?: SortKeysOptions): T;
|
|
410
467
|
/**
|
|
411
468
|
* `Object.keys`, but typed with the object's actual keys.
|
|
412
469
|
*
|
|
@@ -451,7 +508,13 @@ declare function fromEntries<K extends PropertyKey, V>(pairs: Iterable<readonly
|
|
|
451
508
|
*/
|
|
452
509
|
declare function size(value: unknown): number;
|
|
453
510
|
/**
|
|
454
|
-
*
|
|
511
|
+
* Is there nothing in it? No own keys for an object, no entries for a Map
|
|
512
|
+
* or a Set. `null` and `undefined` count as empty; a date, a regular
|
|
513
|
+
* expression and an error never do.
|
|
514
|
+
*
|
|
515
|
+
* @example
|
|
516
|
+
* obj.isEmpty({}); // true
|
|
517
|
+
* obj.isEmpty(new Map([["a", 1]])); // false
|
|
455
518
|
*
|
|
456
519
|
* @param {unknown} object
|
|
457
520
|
* @returns {boolean}
|
package/types/src/Obj.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Obj.d.ts","sourceRoot":"","sources":["../../src/Obj.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Obj.d.ts","sourceRoot":"","sources":["../../src/Obj.js"],"names":[],"mappings":"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"}
|
package/types/src/SQLite.d.ts
CHANGED
|
@@ -41,8 +41,9 @@ declare class SQLite<R = Record<string, any>> {
|
|
|
41
41
|
lastInsertRowid: number | bigint;
|
|
42
42
|
};
|
|
43
43
|
/**
|
|
44
|
-
* Runs a query and returns the first row.
|
|
45
|
-
*
|
|
44
|
+
* Runs a query and returns the first row. JSON and boolean columns are
|
|
45
|
+
* converted like in `get()`, joins and renamed columns included. On Node.js
|
|
46
|
+
* before 22.16, that only works for a query on a single table.
|
|
46
47
|
*
|
|
47
48
|
* @example
|
|
48
49
|
* const user = db.queryOne("SELECT * FROM users WHERE email = ?", [email]);
|
|
@@ -201,6 +202,25 @@ declare class SQLite<R = Record<string, any>> {
|
|
|
201
202
|
* @throws {SQLiteError}
|
|
202
203
|
*/
|
|
203
204
|
getAll<T = R>(tableName: string, where?: Where<R>, options?: QueryOptions): T[];
|
|
205
|
+
/**
|
|
206
|
+
* One page of the rows that match, with what a pager needs to draw itself.
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* const { items, pages, hasNext } = db.paginate("posts", { status: "published" }, {
|
|
210
|
+
* page: 3,
|
|
211
|
+
* perPage: 20,
|
|
212
|
+
* orderBy: "created_at",
|
|
213
|
+
* direction: "DESC",
|
|
214
|
+
* });
|
|
215
|
+
*
|
|
216
|
+
* @template [T=R]
|
|
217
|
+
* @param {string} tableName
|
|
218
|
+
* @param {Where<R>} [where]
|
|
219
|
+
* @param {PaginateOptions} [options]
|
|
220
|
+
* @returns {import("./Arr").Page<T>} A page past the end gives the last one.
|
|
221
|
+
* @throws {SQLiteError}
|
|
222
|
+
*/
|
|
223
|
+
paginate<T = R>(tableName: string, where?: Where<R>, options?: PaginateOptions): import("./Arr").Page<T>;
|
|
204
224
|
/**
|
|
205
225
|
* Counts the rows that match.
|
|
206
226
|
*
|
|
@@ -232,26 +252,30 @@ declare class SQLite<R = Record<string, any>> {
|
|
|
232
252
|
*
|
|
233
253
|
* @example
|
|
234
254
|
* const { lastInsertRowid } = db.insert("users", { email: "ada@example.com", settings: { theme: "dark" } });
|
|
255
|
+
* db.insert("tags", { label: "news" }, { onConflict: "ignore" }); // no error if it's already there
|
|
235
256
|
*
|
|
236
257
|
* @param {string} tableName
|
|
237
258
|
* @param {Partial<R> & Record<string, unknown>} data
|
|
259
|
+
* @param {InsertOptions} [options]
|
|
238
260
|
* @returns {InsertResult}
|
|
239
261
|
* @throws {SQLiteError} On a constraint failure; `sqliteCode` tells you which, like `"SQLITE_CONSTRAINT_UNIQUE"`.
|
|
240
262
|
*/
|
|
241
|
-
insert(tableName: string, data: Partial<R> & Record<string, unknown
|
|
263
|
+
insert(tableName: string, data: Partial<R> & Record<string, unknown>, options?: InsertOptions): InsertResult;
|
|
242
264
|
/**
|
|
243
265
|
* Inserts many rows in one transaction: all or nothing, and much faster
|
|
244
266
|
* than one by one.
|
|
245
267
|
*
|
|
246
268
|
* @example
|
|
247
269
|
* db.insertMany("products", rowsFromCsv);
|
|
270
|
+
* db.insertMany("tags", labels.map((label) => ({ label })), { onConflict: "ignore" });
|
|
248
271
|
*
|
|
249
272
|
* @param {string} tableName
|
|
250
|
-
* @param {
|
|
273
|
+
* @param {Iterable<Partial<R> & Record<string, unknown>>} rows
|
|
274
|
+
* @param {InsertOptions} [options]
|
|
251
275
|
* @returns {ChangeResult}
|
|
252
276
|
* @throws {SQLiteError} If a row fails; nothing is inserted then.
|
|
253
277
|
*/
|
|
254
|
-
insertMany(tableName: string, rows:
|
|
278
|
+
insertMany(tableName: string, rows: Iterable<Partial<R> & Record<string, unknown>>, options?: InsertOptions): ChangeResult;
|
|
255
279
|
/**
|
|
256
280
|
* Updates the rows that match. The filter is required, so a forgotten
|
|
257
281
|
* condition can't rewrite the whole table.
|
|
@@ -306,6 +330,23 @@ declare class SQLite<R = Record<string, any>> {
|
|
|
306
330
|
* @throws {SQLiteError}
|
|
307
331
|
*/
|
|
308
332
|
delete(tableName: string, where: Where<R>): ChangeResult;
|
|
333
|
+
/**
|
|
334
|
+
* Adds to number columns in one statement, so two requests at the same
|
|
335
|
+
* moment both count. Reading the value, adding to it and writing it back
|
|
336
|
+
* would lose one of them. Negative numbers subtract; an empty column
|
|
337
|
+
* counts as 0.
|
|
338
|
+
*
|
|
339
|
+
* @example
|
|
340
|
+
* db.increment("posts", { views: 1 }, { id: post.id });
|
|
341
|
+
* db.increment("accounts", { balance: -25, withdrawals: 1 }, { id: account.id });
|
|
342
|
+
*
|
|
343
|
+
* @param {string} tableName
|
|
344
|
+
* @param {Partial<Record<keyof R & string, number>> & Record<string, number>} amounts Column names and how much to add.
|
|
345
|
+
* @param {Where<R>} where
|
|
346
|
+
* @returns {ChangeResult}
|
|
347
|
+
* @throws {SQLiteError}
|
|
348
|
+
*/
|
|
349
|
+
increment(tableName: string, amounts: Partial<Record<keyof R & string, number>> & Record<string, number>, where: Where<R>): ChangeResult;
|
|
309
350
|
/**
|
|
310
351
|
* Shortcuts bound to one table, so you don't repeat its name.
|
|
311
352
|
*
|
|
@@ -326,16 +367,17 @@ declare class SQLite<R = Record<string, any>> {
|
|
|
326
367
|
*
|
|
327
368
|
* @example
|
|
328
369
|
* db.transaction(() => {
|
|
329
|
-
* db.
|
|
330
|
-
* db.
|
|
370
|
+
* db.increment("accounts", { balance: -amount }, { id: from.id });
|
|
371
|
+
* db.increment("accounts", { balance: amount }, { id: to.id });
|
|
331
372
|
* });
|
|
332
373
|
*
|
|
333
374
|
* @template T
|
|
334
375
|
* @param {() => T} callback Can be async; the commit then waits for it.
|
|
376
|
+
* @param {TransactionOptions} [options]
|
|
335
377
|
* @returns {T}
|
|
336
378
|
* @throws Whatever `callback` threw, after rolling back.
|
|
337
379
|
*/
|
|
338
|
-
transaction<T>(callback: () => T): T;
|
|
380
|
+
transaction<T>(callback: () => T, options?: TransactionOptions): T;
|
|
339
381
|
/** Whether a transaction is open. */
|
|
340
382
|
get inTransaction(): boolean;
|
|
341
383
|
/**
|
|
@@ -416,7 +458,7 @@ declare class SQLite<R = Record<string, any>> {
|
|
|
416
458
|
#private;
|
|
417
459
|
}
|
|
418
460
|
declare namespace SQLite {
|
|
419
|
-
export { ColumnType, ForeignKeyAction, ColumnDefinition, TableConstraint, IndexDefinition, TableDefinition, WhereOperators, Where, WhereValue, SortDirection, QueryOptions, SQLiteOptions, InsertResult, ChangeResult, ColumnInfo, Migration, TableHandle };
|
|
461
|
+
export { ColumnType, ForeignKeyAction, ColumnDefinition, TableConstraint, IndexDefinition, TableDefinition, WhereOperators, Where, WhereValue, SortDirection, QueryOptions, SQLiteOptions, InsertResult, ChangeResult, ColumnInfo, Migration, TableHandle, InsertOptions, PaginateOptions, TransactionOptions, _Reader };
|
|
420
462
|
}
|
|
421
463
|
/**
|
|
422
464
|
* A column type. `JSON` and `BOOLEAN` columns give you back objects and
|
|
@@ -443,9 +485,13 @@ type ColumnDefinition = {
|
|
|
443
485
|
notNull?: boolean | undefined;
|
|
444
486
|
unique?: boolean | undefined;
|
|
445
487
|
/**
|
|
446
|
-
* Objects work for JSON columns, booleans for BOOLEAN ones.
|
|
488
|
+
* Objects work for JSON columns, booleans for BOOLEAN ones. `"CURRENT_TIMESTAMP"`, `"CURRENT_DATE"` and `"CURRENT_TIME"` mean the moment of the insert.
|
|
447
489
|
*/
|
|
448
490
|
defaultValue?: unknown;
|
|
491
|
+
/**
|
|
492
|
+
* A default computed by SQLite, like `"(unixepoch())"` or `"(lower(hex(randomblob(16))))"`. Written into the table as is: never build it from user input.
|
|
493
|
+
*/
|
|
494
|
+
defaultExpression?: string | undefined;
|
|
449
495
|
/**
|
|
450
496
|
* Allowed values.
|
|
451
497
|
*/
|
|
@@ -581,8 +627,13 @@ type WhereOperators = {
|
|
|
581
627
|
* A filter. Each key is a column: a value means "equals", `null` means
|
|
582
628
|
* `IS NULL`, an array means "one of", and an object uses operators. Keys
|
|
583
629
|
* combine with AND; use `$or` and `$and` for the rest.
|
|
630
|
+
*
|
|
631
|
+
* A key with dots looks inside a JSON column: `"settings.theme"` is the
|
|
632
|
+
* `theme` key of the `settings` column, `"tags.0"` the first item of `tags`.
|
|
584
633
|
*/
|
|
585
634
|
type Where<R = Record<string, any>> = { [K in keyof R]?: WhereValue; } & {
|
|
635
|
+
[path: `${string}.${string}`]: WhereValue;
|
|
636
|
+
} & {
|
|
586
637
|
$or?: Where<R>[];
|
|
587
638
|
$and?: Where<R>[];
|
|
588
639
|
};
|
|
@@ -641,9 +692,13 @@ type SQLiteOptions = {
|
|
|
641
692
|
*/
|
|
642
693
|
foreignKeys?: boolean | undefined;
|
|
643
694
|
/**
|
|
644
|
-
* How long to wait for a lock held by another connection, in ms
|
|
695
|
+
* How long to wait for a lock held by another connection, in ms or like `"5s"`. Defaults to 5 seconds.
|
|
696
|
+
*/
|
|
697
|
+
busyTimeout?: string | number | undefined;
|
|
698
|
+
/**
|
|
699
|
+
* How hard SQLite pushes each commit to the disk. With `wal`, `"NORMAL"` writes several times faster and can't corrupt the file; a power cut may undo the last commits. Defaults to SQLite's own setting, `"FULL"`.
|
|
645
700
|
*/
|
|
646
|
-
|
|
701
|
+
synchronous?: "OFF" | "NORMAL" | "FULL" | "EXTRA" | undefined;
|
|
647
702
|
readOnly?: boolean | undefined;
|
|
648
703
|
};
|
|
649
704
|
/**
|
|
@@ -695,18 +750,26 @@ type TableHandle<R = Record<string, any>> = {
|
|
|
695
750
|
* All matching rows.
|
|
696
751
|
*/
|
|
697
752
|
getAll: (where?: Where<R>, options?: QueryOptions) => R[];
|
|
753
|
+
/**
|
|
754
|
+
* One page of matching rows.
|
|
755
|
+
*/
|
|
756
|
+
paginate: (where?: Where<R>, options?: PaginateOptions) => import("./Arr").Page<R>;
|
|
698
757
|
/**
|
|
699
758
|
* Inserts a row.
|
|
700
759
|
*/
|
|
701
|
-
insert: (data: Partial<R
|
|
760
|
+
insert: (data: Partial<R>, options?: InsertOptions) => InsertResult;
|
|
702
761
|
/**
|
|
703
762
|
* Inserts rows in one transaction.
|
|
704
763
|
*/
|
|
705
|
-
insertMany: (rows:
|
|
764
|
+
insertMany: (rows: Iterable<Partial<R>>, options?: InsertOptions) => ChangeResult;
|
|
706
765
|
/**
|
|
707
766
|
* Updates matching rows.
|
|
708
767
|
*/
|
|
709
768
|
update: (data: Partial<R>, where: Where<R>) => ChangeResult;
|
|
769
|
+
/**
|
|
770
|
+
* Adds to number columns.
|
|
771
|
+
*/
|
|
772
|
+
increment: (amounts: Partial<Record<keyof R & string, number>>, where: Where<R>) => ChangeResult;
|
|
710
773
|
/**
|
|
711
774
|
* Inserts, or updates on conflict.
|
|
712
775
|
*/
|
|
@@ -730,4 +793,50 @@ type TableHandle<R = Record<string, any>> = {
|
|
|
730
793
|
ok: true;
|
|
731
794
|
};
|
|
732
795
|
};
|
|
796
|
+
/**
|
|
797
|
+
* Options for `insert()` and `insertMany()`.
|
|
798
|
+
*/
|
|
799
|
+
type InsertOptions = {
|
|
800
|
+
/**
|
|
801
|
+
* What to do when a row clashes with an existing one: `"ignore"` skips it, `"replace"` deletes the old row first. By default, the insert fails.
|
|
802
|
+
*/
|
|
803
|
+
onConflict?: "replace" | "ignore" | undefined;
|
|
804
|
+
};
|
|
805
|
+
/**
|
|
806
|
+
* Options for `paginate()`.
|
|
807
|
+
*/
|
|
808
|
+
type PaginateOptions = {
|
|
809
|
+
/**
|
|
810
|
+
* Starts at 1, which is the default.
|
|
811
|
+
*/
|
|
812
|
+
page?: number | undefined;
|
|
813
|
+
/**
|
|
814
|
+
* Defaults to `20`.
|
|
815
|
+
*/
|
|
816
|
+
perPage?: number | undefined;
|
|
817
|
+
/**
|
|
818
|
+
* Give one: without it, SQLite is free to return the rows in any order.
|
|
819
|
+
*/
|
|
820
|
+
orderBy?: string | (string | [string, SortDirection])[] | undefined;
|
|
821
|
+
direction?: SortDirection | undefined;
|
|
822
|
+
columns?: string[] | undefined;
|
|
823
|
+
};
|
|
824
|
+
/**
|
|
825
|
+
* Options for `transaction()`.
|
|
826
|
+
*/
|
|
827
|
+
type TransactionOptions = {
|
|
828
|
+
/**
|
|
829
|
+
* Take the write lock right away, instead of on the first write. Use it for read-then-write work when several processes share the database: they then wait for each other instead of failing with `SQLITE_BUSY`.
|
|
830
|
+
*/
|
|
831
|
+
immediate?: boolean | undefined;
|
|
832
|
+
};
|
|
833
|
+
/**
|
|
834
|
+
* A prepared query and what's needed to turn its rows into objects.
|
|
835
|
+
*/
|
|
836
|
+
type _Reader = {
|
|
837
|
+
stmt: import("node:sqlite").StatementSync;
|
|
838
|
+
names: string[] | undefined;
|
|
839
|
+
kinds: Uint8Array | undefined;
|
|
840
|
+
table: string | undefined;
|
|
841
|
+
};
|
|
733
842
|
//# sourceMappingURL=SQLite.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLite.d.ts","sourceRoot":"","sources":["../../src/SQLite.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"SQLite.d.ts","sourceRoot":"","sources":["../../src/SQLite.js"],"names":[],"mappings":"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"}
|