@webiny/db 0.0.0-unstable.06b2ede40f β†’ 0.0.0-unstable.0d717d18dd

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/README.md CHANGED
@@ -1,20 +1,11 @@
1
1
  # @webiny/db
2
- [![](https://img.shields.io/npm/dw/webiny-data.svg)](https://www.npmjs.com/package/webiny-data)
3
- [![](https://img.shields.io/npm/v/webiny-data.svg)](https://www.npmjs.com/package/webiny-data)
4
- [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
5
- [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
6
2
 
7
- A set of frequently used data higher order functions.
3
+ > [!NOTE]
4
+ > This package is part of the [Webiny](https://www.webiny.com) monorepo.
5
+ > It’s **included in every Webiny project by default** and is not meant to be used as a standalone package.
8
6
 
9
- For more information, please visit
10
- [the official docs](https://github.com/doitadrian/data).
11
-
12
- ## Install
13
- ```
14
- npm install --save @webiny/db
15
- ```
7
+ πŸ“˜ **Documentation:** [https://www.webiny.com/docs](https://www.webiny.com/docs)
16
8
 
17
- Or if you prefer yarn:
18
- ```
19
- yarn add @webiny/db
20
- ```
9
+ ---
10
+
11
+ _This README file is automatically generated during the publish process._
@@ -0,0 +1 @@
1
+ export { DbRegistry, DbRegistryFeature } from "../../features/DbRegistry/index.js";
@@ -0,0 +1 @@
1
+ export { DbRegistry, DbRegistryFeature } from "../../features/DbRegistry/index.js";
@@ -0,0 +1,12 @@
1
+ import { DbRegistry as DbRegistryAbstraction } from "./abstractions.js";
2
+ declare class DbRegistryImpl implements DbRegistryAbstraction.Interface {
3
+ private readonly items;
4
+ register<T = unknown>(input: DbRegistryAbstraction.RegisterParams<T>): void;
5
+ getOneItem<T = unknown>(cb: (item: DbRegistryAbstraction.RegistryItem<T>) => boolean): DbRegistryAbstraction.RegistryItem<T>;
6
+ getItem<T = unknown>(cb: (item: DbRegistryAbstraction.RegistryItem<T>) => boolean): DbRegistryAbstraction.RegistryItem<T> | null;
7
+ getItems<T = unknown>(cb: (item: DbRegistryAbstraction.RegistryItem<T>) => boolean): DbRegistryAbstraction.RegistryItem<T>[];
8
+ }
9
+ export declare const DbRegistry: typeof DbRegistryImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IRegistry>;
11
+ };
12
+ export {};
@@ -0,0 +1,37 @@
1
+ import { DbRegistry } from "./abstractions.js";
2
+ class DbRegistryImpl {
3
+ register(input) {
4
+ const key = `${input.app}-${input.tags.sort().join("-")}`;
5
+ if (this.items[key]) throw new Error(`Item with app "${input.app}" and tags "${input.tags.join(", ")}" is already registered.`);
6
+ this.items[key] = input;
7
+ }
8
+ getOneItem(cb) {
9
+ const item = this.getItem(cb);
10
+ if (!item) throw new Error("Item not found.");
11
+ return item;
12
+ }
13
+ getItem(cb) {
14
+ const items = this.getItems(cb);
15
+ if (0 === items.length) return null;
16
+ if (items.length > 1) throw new Error("More than one item found with the provided criteria.");
17
+ return items[0];
18
+ }
19
+ getItems(cb) {
20
+ const results = [];
21
+ for(const key in this.items){
22
+ const item = this.items[key];
23
+ if (cb(item)) results.push(item);
24
+ }
25
+ return results;
26
+ }
27
+ constructor(){
28
+ this.items = {};
29
+ }
30
+ }
31
+ const DbRegistry_DbRegistry = DbRegistry.createImplementation({
32
+ implementation: DbRegistryImpl,
33
+ dependencies: []
34
+ });
35
+ export { DbRegistry_DbRegistry as DbRegistry };
36
+
37
+ //# sourceMappingURL=DbRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/DbRegistry/DbRegistry.js","sources":["../../../src/features/DbRegistry/DbRegistry.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/api/types.js\";\nimport { DbRegistry as DbRegistryAbstraction } from \"./abstractions.js\";\n\nclass DbRegistryImpl implements DbRegistryAbstraction.Interface {\n private readonly items: GenericRecord<string, DbRegistryAbstraction.RegistryItem> = {};\n\n public register<T = unknown>(input: DbRegistryAbstraction.RegisterParams<T>): void {\n const key = `${input.app}-${input.tags.sort().join(\"-\")}`;\n\n if (this.items[key]) {\n throw new Error(\n `Item with app \"${input.app}\" and tags \"${input.tags.join(\n \", \"\n )}\" is already registered.`\n );\n }\n this.items[key] = input;\n }\n\n public getOneItem<T = unknown>(\n cb: (item: DbRegistryAbstraction.RegistryItem<T>) => boolean\n ): DbRegistryAbstraction.RegistryItem<T> {\n const item = this.getItem(cb);\n if (!item) {\n throw new Error(\"Item not found.\");\n }\n return item;\n }\n\n public getItem<T = unknown>(\n cb: (item: DbRegistryAbstraction.RegistryItem<T>) => boolean\n ): DbRegistryAbstraction.RegistryItem<T> | null {\n const items = this.getItems(cb);\n if (items.length === 0) {\n return null;\n } else if (items.length > 1) {\n throw new Error(\"More than one item found with the provided criteria.\");\n }\n return items[0];\n }\n\n public getItems<T = unknown>(\n cb: (item: DbRegistryAbstraction.RegistryItem<T>) => boolean\n ): DbRegistryAbstraction.RegistryItem<T>[] {\n const results: DbRegistryAbstraction.RegistryItem<T>[] = [];\n for (const key in this.items) {\n const item = this.items[key] as DbRegistryAbstraction.RegistryItem<T>;\n if (cb(item)) {\n results.push(item);\n }\n }\n\n return results;\n }\n}\n\nexport const DbRegistry = DbRegistryAbstraction.createImplementation({\n implementation: DbRegistryImpl,\n dependencies: []\n});\n"],"names":["DbRegistryImpl","input","key","Error","cb","item","items","results","DbRegistry","DbRegistryAbstraction"],"mappings":";AAGA,MAAMA;IAGK,SAAsBC,KAA8C,EAAQ;QAC/E,MAAMC,MAAM,GAAGD,MAAM,GAAG,CAAC,CAAC,EAAEA,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM;QAEzD,IAAI,IAAI,CAAC,KAAK,CAACC,IAAI,EACf,MAAM,IAAIC,MACN,CAAC,eAAe,EAAEF,MAAM,GAAG,CAAC,YAAY,EAAEA,MAAM,IAAI,CAAC,IAAI,CACrD,MACF,wBAAwB,CAAC;QAGnC,IAAI,CAAC,KAAK,CAACC,IAAI,GAAGD;IACtB;IAEO,WACHG,EAA4D,EACvB;QACrC,MAAMC,OAAO,IAAI,CAAC,OAAO,CAACD;QAC1B,IAAI,CAACC,MACD,MAAM,IAAIF,MAAM;QAEpB,OAAOE;IACX;IAEO,QACHD,EAA4D,EAChB;QAC5C,MAAME,QAAQ,IAAI,CAAC,QAAQ,CAACF;QAC5B,IAAIE,AAAiB,MAAjBA,MAAM,MAAM,EACZ,OAAO;QACJ,IAAIA,MAAM,MAAM,GAAG,GACtB,MAAM,IAAIH,MAAM;QAEpB,OAAOG,KAAK,CAAC,EAAE;IACnB;IAEO,SACHF,EAA4D,EACrB;QACvC,MAAMG,UAAmD,EAAE;QAC3D,IAAK,MAAML,OAAO,IAAI,CAAC,KAAK,CAAE;YAC1B,MAAMG,OAAO,IAAI,CAAC,KAAK,CAACH,IAAI;YAC5B,IAAIE,GAAGC,OACHE,QAAQ,IAAI,CAACF;QAErB;QAEA,OAAOE;IACX;;aAjDiB,KAAK,GAA8D,CAAC;;AAkDzF;AAEO,MAAMC,wBAAaC,WAAAA,oBAA0C,CAAC;IACjE,gBAAgBT;IAChB,cAAc,EAAE;AACpB"}
@@ -0,0 +1,29 @@
1
+ import type { NonEmptyArray } from "@webiny/api/types.js";
2
+ export interface IRegistryRegisterParams<T = unknown> {
3
+ item: T;
4
+ app: string;
5
+ tags: NonEmptyArray<string>;
6
+ }
7
+ export interface IRegistryItem<T = unknown> {
8
+ item: T;
9
+ app: string;
10
+ tags: NonEmptyArray<string>;
11
+ }
12
+ export interface IRegistry {
13
+ register<T = unknown>(params: IRegistryRegisterParams<T>): void;
14
+ /**
15
+ * Throws an error if more than one item is found or there is no item found.
16
+ */
17
+ getOneItem<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T>;
18
+ /**
19
+ * Throws an error if more than one item is found.
20
+ */
21
+ getItem<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T> | null;
22
+ getItems<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T>[];
23
+ }
24
+ export declare const DbRegistry: import("@webiny/di").Abstraction<IRegistry>;
25
+ export declare namespace DbRegistry {
26
+ type Interface = IRegistry;
27
+ type RegisterParams<T = unknown> = IRegistryRegisterParams<T>;
28
+ type RegistryItem<T = unknown> = IRegistryItem<T>;
29
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const DbRegistry = createAbstraction("Db/DbRegistry");
3
+ export { DbRegistry };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/DbRegistry/abstractions.js","sources":["../../../src/features/DbRegistry/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { NonEmptyArray } from \"@webiny/api/types.js\";\n\nexport interface IRegistryRegisterParams<T = unknown> {\n item: T;\n app: string;\n tags: NonEmptyArray<string>;\n}\n\nexport interface IRegistryItem<T = unknown> {\n item: T;\n app: string;\n tags: NonEmptyArray<string>;\n}\n\nexport interface IRegistry {\n register<T = unknown>(params: IRegistryRegisterParams<T>): void;\n /**\n * Throws an error if more than one item is found or there is no item found.\n */\n getOneItem<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T>;\n /**\n * Throws an error if more than one item is found.\n */\n getItem<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T> | null;\n getItems<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T>[];\n}\n\nexport const DbRegistry = createAbstraction<IRegistry>(\"Db/DbRegistry\");\n\nexport namespace DbRegistry {\n export type Interface = IRegistry;\n export type RegisterParams<T = unknown> = IRegistryRegisterParams<T>;\n export type RegistryItem<T = unknown> = IRegistryItem<T>;\n}\n"],"names":["DbRegistry","createAbstraction"],"mappings":";AA4BO,MAAMA,aAAaC,kBAA6B"}
@@ -0,0 +1,4 @@
1
+ export declare const DbRegistryFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,14 @@
1
+ import { createFeature } from "@webiny/feature/api/index.js";
2
+ import { DbRegistry } from "./DbRegistry.js";
3
+ const registeredContainers = new WeakSet();
4
+ const DbRegistryFeature = createFeature({
5
+ name: "DbRegistry",
6
+ register: (container)=>{
7
+ if (registeredContainers.has(container)) return;
8
+ registeredContainers.add(container);
9
+ container.register(DbRegistry).inSingletonScope();
10
+ }
11
+ });
12
+ export { DbRegistryFeature };
13
+
14
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/DbRegistry/feature.js","sources":["../../../src/features/DbRegistry/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api/index.js\";\nimport { DbRegistry } from \"./DbRegistry.js\";\n\n/**\n * Track containers DbRegistry has already been registered on. The container's `register()` APPENDS\n * registrations and `resolve()` uses the LAST one, caching singletons per-registration β€” so calling\n * this feature twice on the same container creates a second DbRegistry singleton and orphans the\n * first. That breaks consumers that register into DbRegistry at different times (e.g. the CMS\n * storage `beforeInit` registers entities into registration #1, while a later resolve β€” like the\n * search-index-tasks sync β€” gets the empty registration #2). Registering once per container\n * keeps a single shared instance.\n */\nconst registeredContainers = new WeakSet<object>();\n\nexport const DbRegistryFeature = createFeature({\n name: \"DbRegistry\",\n register: container => {\n if (registeredContainers.has(container)) {\n return;\n }\n registeredContainers.add(container);\n container.register(DbRegistry).inSingletonScope();\n }\n});\n"],"names":["registeredContainers","WeakSet","DbRegistryFeature","createFeature","container","DbRegistry"],"mappings":";;AAYA,MAAMA,uBAAuB,IAAIC;AAE1B,MAAMC,oBAAoBC,cAAc;IAC3C,MAAM;IACN,UAAUC,CAAAA;QACN,IAAIJ,qBAAqB,GAAG,CAACI,YACzB;QAEJJ,qBAAqB,GAAG,CAACI;QACzBA,UAAU,QAAQ,CAACC,YAAY,gBAAgB;IACnD;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { DbRegistryFeature } from "./feature.js";
2
+ export { DbRegistry } from "./abstractions.js";
@@ -0,0 +1,2 @@
1
+ export { DbRegistryFeature } from "./feature.js";
2
+ export { DbRegistry } from "./abstractions.js";
package/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- import { DbRegistry } from "./DbRegistry";
2
- import type { IStore } from "./store/types";
3
- export * from "./types";
1
+ import type { IStore } from "./store/types.js";
2
+ export * from "./types.js";
4
3
  export interface DbDriver<T> extends IStore {
5
4
  getClient(): T;
6
5
  }
@@ -12,7 +11,6 @@ declare class Db<T> {
12
11
  driver: DbDriver<T>;
13
12
  readonly table?: string;
14
13
  readonly store: IStore;
15
- readonly registry: DbRegistry;
16
14
  constructor({ driver, table }: ConstructorArgs<T>);
17
15
  }
18
16
  export { Db };
package/index.js CHANGED
@@ -1,39 +1,14 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _exportNames = {
7
- Db: true
8
- };
9
- exports.Db = void 0;
10
- var _DbRegistry = require("./DbRegistry");
11
- var _Store = require("./store/Store");
12
- var _types = require("./types");
13
- Object.keys(_types).forEach(function (key) {
14
- if (key === "default" || key === "__esModule") return;
15
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
16
- if (key in exports && exports[key] === _types[key]) return;
17
- Object.defineProperty(exports, key, {
18
- enumerable: true,
19
- get: function () {
20
- return _types[key];
21
- }
22
- });
23
- });
1
+ import { Store } from "./store/Store.js";
2
+ export * from "./types.js";
24
3
  class Db {
25
- registry = new _DbRegistry.DbRegistry();
26
- constructor({
27
- driver,
28
- table
29
- }) {
30
- this.table = table;
31
- this.driver = driver;
32
- this.store = new _Store.Store({
33
- driver
34
- });
35
- }
4
+ constructor({ driver, table }){
5
+ this.table = table;
6
+ this.driver = driver;
7
+ this.store = new Store({
8
+ driver
9
+ });
10
+ }
36
11
  }
37
- exports.Db = Db;
12
+ export { Db };
38
13
 
39
14
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_DbRegistry","require","_Store","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","Db","registry","DbRegistry","constructor","driver","table","store","Store"],"sources":["index.ts"],"sourcesContent":["import { DbRegistry } from \"~/DbRegistry\";\nimport type { IStore } from \"~/store/types\";\nimport { Store } from \"~/store/Store\";\n\nexport * from \"./types\";\n\nexport interface DbDriver<T> extends IStore {\n getClient(): T;\n}\n\nexport interface ConstructorArgs<T> {\n driver: DbDriver<T>;\n table?: string;\n}\n\nclass Db<T> {\n public driver: DbDriver<T>;\n public readonly table?: string;\n public readonly store: IStore;\n\n public readonly registry = new DbRegistry();\n\n constructor({ driver, table }: ConstructorArgs<T>) {\n this.table = table;\n this.driver = driver;\n this.store = new Store<T>({\n driver\n });\n }\n}\n\nexport { Db };\n"],"mappings":";;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAWA,MAAMS,EAAE,CAAI;EAKQC,QAAQ,GAAG,IAAIC,sBAAU,CAAC,CAAC;EAE3CC,WAAWA,CAAC;IAAEC,MAAM;IAAEC;EAA0B,CAAC,EAAE;IAC/C,IAAI,CAACA,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACD,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACE,KAAK,GAAG,IAAIC,YAAK,CAAI;MACtBH;IACJ,CAAC,CAAC;EACN;AACJ;AAACR,OAAA,CAAAI,EAAA,GAAAA,EAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import type { IStore } from \"~/store/types.js\";\nimport { Store } from \"~/store/Store.js\";\n\nexport * from \"./types.js\";\n\nexport interface DbDriver<T> extends IStore {\n getClient(): T;\n}\n\nexport interface ConstructorArgs<T> {\n driver: DbDriver<T>;\n table?: string;\n}\n\nclass Db<T> {\n public driver: DbDriver<T>;\n public readonly table?: string;\n public readonly store: IStore;\n\n constructor({ driver, table }: ConstructorArgs<T>) {\n this.table = table;\n this.driver = driver;\n this.store = new Store<T>({\n driver\n });\n }\n}\n\nexport { Db };\n"],"names":["Db","driver","table","Store"],"mappings":";;AAcA,MAAMA;IAKF,YAAY,EAAEC,MAAM,EAAEC,KAAK,EAAsB,CAAE;QAC/C,IAAI,CAAC,KAAK,GAAGA;QACb,IAAI,CAAC,MAAM,GAAGD;QACd,IAAI,CAAC,KAAK,GAAG,IAAIE,MAAS;YACtBF;QACJ;IACJ;AACJ"}
package/package.json CHANGED
@@ -1,7 +1,11 @@
1
1
  {
2
2
  "name": "@webiny/db",
3
- "version": "0.0.0-unstable.06b2ede40f",
4
- "main": "index.js",
3
+ "version": "0.0.0-unstable.0d717d18dd",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": "./index.js",
7
+ "./*": "./*"
8
+ },
5
9
  "repository": {
6
10
  "type": "git",
7
11
  "url": "https://github.com/webiny/webiny-js.git"
@@ -9,21 +13,20 @@
9
13
  "description": "A simple multi-database client.",
10
14
  "license": "MIT",
11
15
  "publishConfig": {
12
- "access": "public",
13
- "directory": "dist"
16
+ "access": "public"
14
17
  },
15
18
  "dependencies": {
16
- "@webiny/api": "0.0.0-unstable.06b2ede40f",
17
- "type-fest": "4.14.0"
19
+ "@webiny/api": "0.0.0-unstable.0d717d18dd",
20
+ "@webiny/feature": "0.0.0-unstable.0d717d18dd",
21
+ "type-fest": "5.8.0"
18
22
  },
19
23
  "devDependencies": {
20
- "@webiny/project-utils": "0.0.0-unstable.06b2ede40f",
21
- "rimraf": "6.0.1",
22
- "typescript": "5.3.3"
23
- },
24
- "scripts": {
25
- "build": "node ../cli/bin.js run build",
26
- "watch": "node ../cli/bin.js run watch"
24
+ "@webiny/build-tools": "0.0.0-unstable.0d717d18dd",
25
+ "rimraf": "6.1.3",
26
+ "typescript": "7.0.2"
27
27
  },
28
- "gitHead": "06b2ede40fc2212a70eeafd74afd50b56fb0ce82"
28
+ "gitHead": "8476da73b653c89cc1474d968baf55c1b0ae0e5f",
29
+ "webiny": {
30
+ "publishFrom": "dist"
31
+ }
29
32
  }
package/store/Store.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { GetValueResult, GetValuesResult, IListValuesParams, IStore, ListValuesResult, RemoveValueResult, RemoveValuesResult, StorageKey, StoreValueResult, StoreValuesResult } from "./types";
2
- import type { GenericRecord } from "@webiny/api/types";
3
- import type { DbDriver } from "../index";
1
+ import type { GetValueResult, GetValuesResult, IListValuesParams, IStore, ListValuesResult, RemoveValueResult, RemoveValuesResult, StorageKey, StoreValueResult, StoreValuesResult } from "./types.js";
2
+ import type { GenericRecord } from "@webiny/api/types.js";
3
+ import type { DbDriver } from "../index.js";
4
4
  export interface IStoreParams<T> {
5
5
  driver: DbDriver<T>;
6
6
  }
package/store/Store.js CHANGED
@@ -1,35 +1,29 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Store = void 0;
7
1
  class Store {
8
- constructor(params) {
9
- this.driver = params.driver;
10
- }
11
- async storeValue(key, value) {
12
- return this.driver.storeValue(key, value);
13
- }
14
- async storeValues(values) {
15
- return this.driver.storeValues(values);
16
- }
17
- async getValue(key) {
18
- return this.driver.getValue(key);
19
- }
20
- async getValues(keys) {
21
- return this.driver.getValues(keys);
22
- }
23
- async listValues(params) {
24
- return this.driver.listValues(params);
25
- }
26
- async removeValue(key) {
27
- return this.driver.removeValue(key);
28
- }
29
- async removeValues(keys) {
30
- return this.driver.removeValues(keys);
31
- }
2
+ constructor(params){
3
+ this.driver = params.driver;
4
+ }
5
+ async storeValue(key, value) {
6
+ return this.driver.storeValue(key, value);
7
+ }
8
+ async storeValues(values) {
9
+ return this.driver.storeValues(values);
10
+ }
11
+ async getValue(key) {
12
+ return this.driver.getValue(key);
13
+ }
14
+ async getValues(keys) {
15
+ return this.driver.getValues(keys);
16
+ }
17
+ async listValues(params) {
18
+ return this.driver.listValues(params);
19
+ }
20
+ async removeValue(key) {
21
+ return this.driver.removeValue(key);
22
+ }
23
+ async removeValues(keys) {
24
+ return this.driver.removeValues(keys);
25
+ }
32
26
  }
33
- exports.Store = Store;
27
+ export { Store };
34
28
 
35
29
  //# sourceMappingURL=Store.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Store","constructor","params","driver","storeValue","key","value","storeValues","values","getValue","getValues","keys","listValues","removeValue","removeValues","exports"],"sources":["Store.ts"],"sourcesContent":["import type {\n GetValueResult,\n GetValuesResult,\n IListValuesParams,\n IStore,\n ListValuesResult,\n RemoveValueResult,\n RemoveValuesResult,\n StorageKey,\n StoreValueResult,\n StoreValuesResult\n} from \"./types\";\nimport type { GenericRecord } from \"@webiny/api/types\";\nimport type { DbDriver } from \"~/index\";\n\nexport interface IStoreParams<T> {\n driver: DbDriver<T>;\n}\n\nexport class Store<T> implements IStore {\n private driver: DbDriver<T>;\n\n public constructor(params: IStoreParams<T>) {\n this.driver = params.driver;\n }\n\n public async storeValue<V>(key: StorageKey, value: V): Promise<StoreValueResult<V>> {\n return this.driver.storeValue<V>(key, value);\n }\n\n public async storeValues<V extends GenericRecord<StorageKey>>(\n values: V\n ): Promise<StoreValuesResult<V>> {\n return this.driver.storeValues<V>(values);\n }\n\n public async getValue<V>(key: StorageKey): Promise<GetValueResult<V>> {\n return this.driver.getValue<V>(key);\n }\n\n public async getValues<V extends GenericRecord<StorageKey>>(\n keys: (keyof V)[]\n ): Promise<GetValuesResult<V>> {\n return this.driver.getValues<V>(keys);\n }\n\n public async listValues<V extends GenericRecord<StorageKey>>(\n params?: IListValuesParams\n ): Promise<ListValuesResult<V>> {\n return this.driver.listValues<V>(params);\n }\n\n public async removeValue<V>(key: StorageKey): Promise<RemoveValueResult<V>> {\n return this.driver.removeValue<V>(key);\n }\n\n public async removeValues<V extends GenericRecord<StorageKey>>(\n keys: (keyof V)[]\n ): Promise<RemoveValuesResult<V>> {\n return this.driver.removeValues<V>(keys);\n }\n}\n"],"mappings":";;;;;;AAmBO,MAAMA,KAAK,CAAsB;EAG7BC,WAAWA,CAACC,MAAuB,EAAE;IACxC,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM;EAC/B;EAEA,MAAaC,UAAUA,CAAIC,GAAe,EAAEC,KAAQ,EAAgC;IAChF,OAAO,IAAI,CAACH,MAAM,CAACC,UAAU,CAAIC,GAAG,EAAEC,KAAK,CAAC;EAChD;EAEA,MAAaC,WAAWA,CACpBC,MAAS,EACoB;IAC7B,OAAO,IAAI,CAACL,MAAM,CAACI,WAAW,CAAIC,MAAM,CAAC;EAC7C;EAEA,MAAaC,QAAQA,CAAIJ,GAAe,EAA8B;IAClE,OAAO,IAAI,CAACF,MAAM,CAACM,QAAQ,CAAIJ,GAAG,CAAC;EACvC;EAEA,MAAaK,SAASA,CAClBC,IAAiB,EACU;IAC3B,OAAO,IAAI,CAACR,MAAM,CAACO,SAAS,CAAIC,IAAI,CAAC;EACzC;EAEA,MAAaC,UAAUA,CACnBV,MAA0B,EACE;IAC5B,OAAO,IAAI,CAACC,MAAM,CAACS,UAAU,CAAIV,MAAM,CAAC;EAC5C;EAEA,MAAaW,WAAWA,CAAIR,GAAe,EAAiC;IACxE,OAAO,IAAI,CAACF,MAAM,CAACU,WAAW,CAAIR,GAAG,CAAC;EAC1C;EAEA,MAAaS,YAAYA,CACrBH,IAAiB,EACa;IAC9B,OAAO,IAAI,CAACR,MAAM,CAACW,YAAY,CAAIH,IAAI,CAAC;EAC5C;AACJ;AAACI,OAAA,CAAAf,KAAA,GAAAA,KAAA","ignoreList":[]}
1
+ {"version":3,"file":"store/Store.js","sources":["../../src/store/Store.ts"],"sourcesContent":["import type {\n GetValueResult,\n GetValuesResult,\n IListValuesParams,\n IStore,\n ListValuesResult,\n RemoveValueResult,\n RemoveValuesResult,\n StorageKey,\n StoreValueResult,\n StoreValuesResult\n} from \"./types.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { DbDriver } from \"~/index.js\";\n\nexport interface IStoreParams<T> {\n driver: DbDriver<T>;\n}\n\nexport class Store<T> implements IStore {\n private driver: DbDriver<T>;\n\n public constructor(params: IStoreParams<T>) {\n this.driver = params.driver;\n }\n\n public async storeValue<V>(key: StorageKey, value: V): Promise<StoreValueResult<V>> {\n return this.driver.storeValue<V>(key, value);\n }\n\n public async storeValues<V extends GenericRecord<StorageKey>>(\n values: V\n ): Promise<StoreValuesResult<V>> {\n return this.driver.storeValues<V>(values);\n }\n\n public async getValue<V>(key: StorageKey): Promise<GetValueResult<V>> {\n return this.driver.getValue<V>(key);\n }\n\n public async getValues<V extends GenericRecord<StorageKey>>(\n keys: (keyof V)[]\n ): Promise<GetValuesResult<V>> {\n return this.driver.getValues<V>(keys);\n }\n\n public async listValues<V extends GenericRecord<StorageKey>>(\n params?: IListValuesParams\n ): Promise<ListValuesResult<V>> {\n return this.driver.listValues<V>(params);\n }\n\n public async removeValue<V>(key: StorageKey): Promise<RemoveValueResult<V>> {\n return this.driver.removeValue<V>(key);\n }\n\n public async removeValues<V extends GenericRecord<StorageKey>>(\n keys: (keyof V)[]\n ): Promise<RemoveValuesResult<V>> {\n return this.driver.removeValues<V>(keys);\n }\n}\n"],"names":["Store","params","key","value","values","keys"],"mappings":"AAmBO,MAAMA;IAGT,YAAmBC,MAAuB,CAAE;QACxC,IAAI,CAAC,MAAM,GAAGA,OAAO,MAAM;IAC/B;IAEA,MAAa,WAAcC,GAAe,EAAEC,KAAQ,EAAgC;QAChF,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAID,KAAKC;IAC1C;IAEA,MAAa,YACTC,MAAS,EACoB;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAIA;IACtC;IAEA,MAAa,SAAYF,GAAe,EAA8B;QAClE,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAIA;IACnC;IAEA,MAAa,UACTG,IAAiB,EACU;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAIA;IACpC;IAEA,MAAa,WACTJ,MAA0B,EACE;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAIA;IACrC;IAEA,MAAa,YAAeC,GAAe,EAAiC;QACxE,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAIA;IACtC;IAEA,MAAa,aACTG,IAAiB,EACa;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAIA;IACvC;AACJ"}
package/store/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { CamelCase } from "type-fest";
2
- import type { GenericRecord } from "@webiny/api/types";
2
+ import type { GenericRecord } from "@webiny/api/types.js";
3
3
  export type StorageKey = `${CamelCase<string>}`;
4
4
  export interface IStoreValueSuccessResult<V> {
5
5
  key: StorageKey;
package/store/types.js CHANGED
@@ -1,7 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- //# sourceMappingURL=types.js.map
package/types.d.ts CHANGED
@@ -1,24 +1 @@
1
- import type { NonEmptyArray } from "@webiny/api/types";
2
- export interface IRegistryRegisterParams<T = unknown> {
3
- item: T;
4
- app: string;
5
- tags: NonEmptyArray<string>;
6
- }
7
- export interface IRegistryItem<T = unknown> {
8
- item: T;
9
- app: string;
10
- tags: NonEmptyArray<string>;
11
- }
12
- export interface IRegistry {
13
- register<T = unknown>(params: IRegistryRegisterParams<T>): void;
14
- /**
15
- * Throws an error if more than one item is found or there is no item found.
16
- */
17
- getOneItem<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T>;
18
- /**
19
- * Throws an error if more than one item is found.
20
- */
21
- getItem<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T> | null;
22
- getItems<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T>[];
23
- }
24
- export * from "./store/types";
1
+ export * from "./store/types.js";
package/types.js CHANGED
@@ -1,18 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _types = require("./store/types");
7
- Object.keys(_types).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _types[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _types[key];
14
- }
15
- });
16
- });
17
-
18
- //# sourceMappingURL=types.js.map
1
+ export * from "./store/types.js";
package/DbRegistry.d.ts DELETED
@@ -1,8 +0,0 @@
1
- import type { IRegistry, IRegistryItem, IRegistryRegisterParams } from "./types";
2
- export declare class DbRegistry implements IRegistry {
3
- private readonly items;
4
- register<T = unknown>(input: IRegistryRegisterParams<T>): void;
5
- getOneItem<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T>;
6
- getItem<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T> | null;
7
- getItems<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T>[];
8
- }
package/DbRegistry.js DELETED
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DbRegistry = void 0;
7
- class DbRegistry {
8
- items = {};
9
- register(input) {
10
- const key = `${input.app}-${input.tags.sort().join("-")}`;
11
- if (this.items[key]) {
12
- throw new Error(`Item with app "${input.app}" and tags "${input.tags.join(", ")}" is already registered.`);
13
- }
14
- this.items[key] = input;
15
- }
16
- getOneItem(cb) {
17
- const item = this.getItem(cb);
18
- if (!item) {
19
- throw new Error("Item not found.");
20
- }
21
- return item;
22
- }
23
- getItem(cb) {
24
- const items = this.getItems(cb);
25
- if (items.length === 0) {
26
- return null;
27
- } else if (items.length > 1) {
28
- throw new Error("More than one item found with the provided criteria.");
29
- }
30
- return items[0];
31
- }
32
- getItems(cb) {
33
- const results = [];
34
- for (const key in this.items) {
35
- const item = this.items[key];
36
- if (cb(item)) {
37
- results.push(item);
38
- }
39
- }
40
- return results;
41
- }
42
- }
43
- exports.DbRegistry = DbRegistry;
44
-
45
- //# sourceMappingURL=DbRegistry.js.map
package/DbRegistry.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"names":["DbRegistry","items","register","input","key","app","tags","sort","join","Error","getOneItem","cb","item","getItem","getItems","length","results","push","exports"],"sources":["DbRegistry.ts"],"sourcesContent":["import type { IRegistry, IRegistryItem, IRegistryRegisterParams } from \"./types\";\nimport type { GenericRecord } from \"@webiny/api/types\";\n\nexport class DbRegistry implements IRegistry {\n private readonly items: GenericRecord<string, IRegistryItem> = {};\n\n public register<T = unknown>(input: IRegistryRegisterParams<T>): void {\n const key = `${input.app}-${input.tags.sort().join(\"-\")}`;\n\n if (this.items[key]) {\n throw new Error(\n `Item with app \"${input.app}\" and tags \"${input.tags.join(\n \", \"\n )}\" is already registered.`\n );\n }\n this.items[key] = input;\n }\n\n public getOneItem<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T> {\n const item = this.getItem(cb);\n if (!item) {\n throw new Error(\"Item not found.\");\n }\n return item;\n }\n\n public getItem<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T> | null {\n const items = this.getItems(cb);\n if (items.length === 0) {\n return null;\n } else if (items.length > 1) {\n throw new Error(\"More than one item found with the provided criteria.\");\n }\n return items[0];\n }\n\n public getItems<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T>[] {\n const results: IRegistryItem<T>[] = [];\n for (const key in this.items) {\n const item = this.items[key] as IRegistryItem<T>;\n if (cb(item)) {\n results.push(item);\n }\n }\n\n return results;\n }\n}\n"],"mappings":";;;;;;AAGO,MAAMA,UAAU,CAAsB;EACxBC,KAAK,GAAyC,CAAC,CAAC;EAE1DC,QAAQA,CAAcC,KAAiC,EAAQ;IAClE,MAAMC,GAAG,GAAG,GAAGD,KAAK,CAACE,GAAG,IAAIF,KAAK,CAACG,IAAI,CAACC,IAAI,CAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,EAAE;IAEzD,IAAI,IAAI,CAACP,KAAK,CAACG,GAAG,CAAC,EAAE;MACjB,MAAM,IAAIK,KAAK,CACX,kBAAkBN,KAAK,CAACE,GAAG,eAAeF,KAAK,CAACG,IAAI,CAACE,IAAI,CACrD,IACJ,CAAC,0BACL,CAAC;IACL;IACA,IAAI,CAACP,KAAK,CAACG,GAAG,CAAC,GAAGD,KAAK;EAC3B;EAEOO,UAAUA,CAAcC,EAAuC,EAAoB;IACtF,MAAMC,IAAI,GAAG,IAAI,CAACC,OAAO,CAACF,EAAE,CAAC;IAC7B,IAAI,CAACC,IAAI,EAAE;MACP,MAAM,IAAIH,KAAK,CAAC,iBAAiB,CAAC;IACtC;IACA,OAAOG,IAAI;EACf;EAEOC,OAAOA,CAAcF,EAAuC,EAA2B;IAC1F,MAAMV,KAAK,GAAG,IAAI,CAACa,QAAQ,CAACH,EAAE,CAAC;IAC/B,IAAIV,KAAK,CAACc,MAAM,KAAK,CAAC,EAAE;MACpB,OAAO,IAAI;IACf,CAAC,MAAM,IAAId,KAAK,CAACc,MAAM,GAAG,CAAC,EAAE;MACzB,MAAM,IAAIN,KAAK,CAAC,sDAAsD,CAAC;IAC3E;IACA,OAAOR,KAAK,CAAC,CAAC,CAAC;EACnB;EAEOa,QAAQA,CAAcH,EAAuC,EAAsB;IACtF,MAAMK,OAA2B,GAAG,EAAE;IACtC,KAAK,MAAMZ,GAAG,IAAI,IAAI,CAACH,KAAK,EAAE;MAC1B,MAAMW,IAAI,GAAG,IAAI,CAACX,KAAK,CAACG,GAAG,CAAqB;MAChD,IAAIO,EAAE,CAACC,IAAI,CAAC,EAAE;QACVI,OAAO,CAACC,IAAI,CAACL,IAAI,CAAC;MACtB;IACJ;IAEA,OAAOI,OAAO;EAClB;AACJ;AAACE,OAAA,CAAAlB,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { CamelCase } from \"type-fest\";\nimport type { GenericRecord } from \"@webiny/api/types\";\n\nexport type StorageKey = `${CamelCase<string>}`;\n\nexport interface IStoreValueSuccessResult<V> {\n key: StorageKey;\n data: V | null | undefined;\n error?: undefined;\n}\n\nexport interface IStoreValueErrorResult {\n key: StorageKey;\n data?: never;\n error: Error;\n}\n\nexport type StoreValueResult<V> = IStoreValueSuccessResult<V> | IStoreValueErrorResult;\n\nexport interface IStoreValuesSuccessResult<V extends GenericRecord<StorageKey>> {\n keys: (keyof V)[];\n data: V;\n error?: undefined;\n}\n\nexport interface IStoreValuesErrorResult<V> {\n keys: (keyof V)[];\n data?: never;\n error: Error;\n}\n\nexport type StoreValuesResult<V extends GenericRecord<StorageKey>> =\n | IStoreValuesSuccessResult<V>\n | IStoreValuesErrorResult<V>;\n\nexport interface IGetValueSuccessResult<V> {\n key: StorageKey;\n data: V | null | undefined;\n error?: undefined;\n}\n\nexport interface IGetValueErrorResult {\n key: StorageKey;\n data?: never;\n error: Error;\n}\n\nexport type GetValueResult<V> = IGetValueSuccessResult<V> | IGetValueErrorResult;\n\nexport interface IGetValuesSuccessResult<V extends GenericRecord<StorageKey>> {\n keys: (keyof V)[];\n data: V;\n error?: undefined;\n}\n\nexport interface IGetValuesErrorResult<V> {\n keys: (keyof V)[];\n data?: never;\n error: Error;\n}\n\nexport type GetValuesResult<V extends GenericRecord<StorageKey>> =\n | IGetValuesSuccessResult<V>\n | IGetValuesErrorResult<V>;\n\nexport interface IListValuesSuccessResult<V extends GenericRecord<StorageKey>> {\n keys: (keyof V)[];\n data: V;\n error?: undefined;\n}\n\nexport interface IListValuesErrorResult {\n data?: never;\n error: Error;\n}\n\nexport type ListValuesResult<V extends GenericRecord<StorageKey>> =\n | IListValuesSuccessResult<V>\n | IListValuesErrorResult;\n\nexport type IListValuesParams =\n | {\n beginsWith: string;\n }\n | {\n eq: string;\n }\n | {\n gt: string;\n }\n | {\n gte: string;\n }\n | {\n lt: string;\n }\n | {\n lte: string;\n };\n\nexport type RemoveValueResult<V> = StoreValueResult<V>;\n\nexport interface RemoveValuesResult<V extends GenericRecord<StorageKey>> {\n keys: (keyof V)[];\n error?: Error;\n}\n\nexport interface IStore {\n storeValue<V>(key: StorageKey, value: V): Promise<StoreValueResult<V>>;\n storeValues<V extends GenericRecord<StorageKey>>(values: V): Promise<StoreValuesResult<V>>;\n getValue<V>(key: StorageKey): Promise<GetValueResult<V>>;\n getValues<V extends GenericRecord<StorageKey>>(keys: (keyof V)[]): Promise<GetValuesResult<V>>;\n listValues<V extends GenericRecord<StorageKey>>(\n params?: IListValuesParams\n ): Promise<ListValuesResult<V>>;\n removeValue<V>(key: StorageKey): Promise<RemoveValueResult<V>>;\n removeValues<V extends GenericRecord<StorageKey>>(\n keys: (keyof V)[]\n ): Promise<RemoveValuesResult<V>>;\n}\n"],"mappings":"","ignoreList":[]}
package/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"names":["_types","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["types.ts"],"sourcesContent":["import type { NonEmptyArray } from \"@webiny/api/types\";\n\nexport interface IRegistryRegisterParams<T = unknown> {\n item: T;\n app: string;\n tags: NonEmptyArray<string>;\n}\n\nexport interface IRegistryItem<T = unknown> {\n item: T;\n app: string;\n tags: NonEmptyArray<string>;\n}\n\nexport interface IRegistry {\n register<T = unknown>(params: IRegistryRegisterParams<T>): void;\n /**\n * Throws an error if more than one item is found or there is no item found.\n */\n getOneItem<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T>;\n /**\n * Throws an error if more than one item is found.\n */\n getItem<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T> | null;\n getItems<T = unknown>(cb: (item: IRegistryItem<T>) => boolean): IRegistryItem<T>[];\n}\n\nexport * from \"./store/types\";\n"],"mappings":";;;;;AA2BA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}