shelving 1.119.0 → 1.120.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.
@@ -1,18 +1,11 @@
1
- import type { AsyncProvider, Provider } from "./Provider.js";
1
+ import type { DatabaseChange, DatabaseChanges } from "../change/Change.js";
2
2
  import type { MutableArray } from "../util/array.js";
3
- import type { AsyncValueCallback, ValueCallback } from "../util/callback.js";
4
3
  import type { DataKey, Database } from "../util/data.js";
5
4
  import type { ItemQuery } from "../util/item.js";
6
5
  import type { Updates } from "../util/update.js";
7
- import { type DatabaseChange, type DatabaseChanges } from "../change/Change.js";
8
- import { type Optional } from "../util/optional.js";
9
6
  import { AsyncThroughProvider, ThroughProvider } from "./ThroughProvider.js";
10
- /** Synchronous callback that runs write operations on asynchronous provider. */
11
- export type Operation<T extends Database> = ValueCallback<Provider<T>> | DatabaseChange<T>;
12
- /** Write a set of operations or changes to a synchronous provider and return an array of the changes that were written. */
13
- export declare function writeOperations<T extends Database>(provider: Provider<T>, ...operations: Optional<DatabaseChange<T> | Operation<T>>[]): DatabaseChanges<T>;
14
7
  /** Synchronous provider that keeps a log of any written changes to its `.written` property. */
15
- export declare class OperationProvider<T extends Database> extends ThroughProvider<T> {
8
+ export declare class LoggedProvider<T extends Database> extends ThroughProvider<T> {
16
9
  get written(): DatabaseChanges<T>;
17
10
  readonly _written: MutableArray<DatabaseChange<T>>;
18
11
  addItem<K extends DataKey<T>>(collection: K, data: T[K]): string;
@@ -23,12 +16,8 @@ export declare class OperationProvider<T extends Database> extends ThroughProvid
23
16
  updateQuery<K extends DataKey<T>>(collection: K, query: ItemQuery<T[K]>, updates: Updates<T[K]>): void;
24
17
  deleteQuery<K extends DataKey<T>>(collection: K, query: ItemQuery<T[K]>): void;
25
18
  }
26
- /** Synchronous callback that runs write operations on asynchronous provider. */
27
- export type AsyncOperation<T extends Database> = AsyncValueCallback<AsyncProvider<T>> | DatabaseChange<T>;
28
- /** Write a set of operations or changes to an asynchronous provider and return an array of the changes that were written. */
29
- export declare function writeAsyncOperations<T extends Database>(provider: AsyncProvider<T>, ...operations: Optional<AsyncOperation<T>>[]): Promise<DatabaseChanges<T>>;
30
19
  /** Asynchronous provider that keeps a log of any written changes to its `.written` property. */
31
- export declare class AsyncOperationProvider<T extends Database> extends AsyncThroughProvider<T> {
20
+ export declare class AsyncLoggedProvider<T extends Database> extends AsyncThroughProvider<T> {
32
21
  get written(): DatabaseChanges<T>;
33
22
  readonly _written: MutableArray<DatabaseChange<T>>;
34
23
  addItem<K extends DataKey<T>>(collection: K, data: T[K]): Promise<string>;
@@ -1,22 +1,6 @@
1
- import { writeAsyncChange, writeChange } from "../change/Change.js";
2
- import { notOptional } from "../util/optional.js";
3
1
  import { AsyncThroughProvider, ThroughProvider } from "./ThroughProvider.js";
4
- /** Write a set of operations or changes to a synchronous provider and return an array of the changes that were written. */
5
- export function writeOperations(provider, ...operations) {
6
- const changed = operations.filter(notOptional).map(op => {
7
- if (typeof op === "function") {
8
- const db = new OperationProvider(provider);
9
- op(db);
10
- return db.written;
11
- }
12
- else {
13
- return writeChange(provider, op);
14
- }
15
- });
16
- return changed.flat();
17
- }
18
2
  /** Synchronous provider that keeps a log of any written changes to its `.written` property. */
19
- export class OperationProvider extends ThroughProvider {
3
+ export class LoggedProvider extends ThroughProvider {
20
4
  get written() {
21
5
  return this._written;
22
6
  }
@@ -51,22 +35,8 @@ export class OperationProvider extends ThroughProvider {
51
35
  this._written.push({ action: "delete", collection, query });
52
36
  }
53
37
  }
54
- /** Write a set of operations or changes to an asynchronous provider and return an array of the changes that were written. */
55
- export async function writeAsyncOperations(provider, ...operations) {
56
- const changed = await Promise.all(operations.filter(notOptional).map(async (op) => {
57
- if (typeof op === "function") {
58
- const db = new AsyncOperationProvider(provider);
59
- await op(db);
60
- return db.written;
61
- }
62
- else {
63
- return writeAsyncChange(provider, op);
64
- }
65
- }));
66
- return changed.flat();
67
- }
68
38
  /** Asynchronous provider that keeps a log of any written changes to its `.written` property. */
69
- export class AsyncOperationProvider extends AsyncThroughProvider {
39
+ export class AsyncLoggedProvider extends AsyncThroughProvider {
70
40
  get written() {
71
41
  return this._written;
72
42
  }
package/db/index.d.ts CHANGED
@@ -4,6 +4,6 @@ export * from "./Provider.js";
4
4
  export * from "./ThroughProvider.js";
5
5
  export * from "./CacheProvider.js";
6
6
  export * from "./DebugProvider.js";
7
+ export * from "./LoggedProvider.js";
7
8
  export * from "./MemoryProvider.js";
8
- export * from "./OperationProvider.js";
9
9
  export * from "./ValidationProvider.js";
package/db/index.js CHANGED
@@ -6,6 +6,6 @@ export * from "./Provider.js";
6
6
  export * from "./ThroughProvider.js";
7
7
  export * from "./CacheProvider.js";
8
8
  export * from "./DebugProvider.js";
9
+ export * from "./LoggedProvider.js";
9
10
  export * from "./MemoryProvider.js";
10
- export * from "./OperationProvider.js";
11
11
  export * from "./ValidationProvider.js";
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "state-management",
12
12
  "query-builder"
13
13
  ],
14
- "version": "1.119.0",
14
+ "version": "1.120.0",
15
15
  "repository": "https://github.com/dhoulb/shelving",
16
16
  "author": "Dave Houlbrooke <dave@shax.com>",
17
17
  "license": "0BSD",