mini-interactions-database 0.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.
@@ -0,0 +1,20 @@
1
+ interface DatabaseAdapter {
2
+ get<T>(key: string): Promise<T | null>;
3
+ set<T>(key: string, value: T): Promise<void>;
4
+ delete(key: string): Promise<boolean>;
5
+ }
6
+ declare class MiniDatabase {
7
+ private readonly adapter;
8
+ constructor(adapter: DatabaseAdapter);
9
+ get<T>(key: string): Promise<T | null>;
10
+ set<T>(key: string, value: T): Promise<void>;
11
+ delete(key: string): Promise<boolean>;
12
+ }
13
+ declare class MemoryDatabaseAdapter implements DatabaseAdapter {
14
+ #private;
15
+ get<T>(key: string): Promise<T | null>;
16
+ set<T>(key: string, value: T): Promise<void>;
17
+ delete(key: string): Promise<boolean>;
18
+ }
19
+
20
+ export { type DatabaseAdapter, MemoryDatabaseAdapter, MiniDatabase };
package/dist/index.js ADDED
@@ -0,0 +1,42 @@
1
+ // src/index.ts
2
+ function validateKey(key) {
3
+ if (key.trim().length === 0) throw new TypeError("key must not be empty");
4
+ }
5
+ var MiniDatabase = class {
6
+ constructor(adapter) {
7
+ this.adapter = adapter;
8
+ if (adapter === void 0 || adapter === null) throw new TypeError("adapter must be provided");
9
+ }
10
+ adapter;
11
+ get(key) {
12
+ validateKey(key);
13
+ return this.adapter.get(key);
14
+ }
15
+ set(key, value) {
16
+ validateKey(key);
17
+ return this.adapter.set(key, value);
18
+ }
19
+ delete(key) {
20
+ validateKey(key);
21
+ return this.adapter.delete(key);
22
+ }
23
+ };
24
+ var MemoryDatabaseAdapter = class {
25
+ #values = /* @__PURE__ */ new Map();
26
+ async get(key) {
27
+ validateKey(key);
28
+ return this.#values.get(key) ?? null;
29
+ }
30
+ async set(key, value) {
31
+ validateKey(key);
32
+ this.#values.set(key, value);
33
+ }
34
+ async delete(key) {
35
+ validateKey(key);
36
+ return this.#values.delete(key);
37
+ }
38
+ };
39
+
40
+ export { MemoryDatabaseAdapter, MiniDatabase };
41
+ //# sourceMappingURL=index.js.map
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";AAMA,SAAS,YAAY,GAAA,EAAmB;AACtC,EAAA,IAAI,GAAA,CAAI,MAAK,CAAE,MAAA,KAAW,GAAG,MAAM,IAAI,UAAU,uBAAuB,CAAA;AAC1E;AAEO,IAAM,eAAN,MAAmB;AAAA,EACjB,YAA6B,OAAA,EAA0B;AAA1B,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAClC,IAAA,IAAI,YAAY,MAAA,IAAa,OAAA,KAAY,MAAM,MAAM,IAAI,UAAU,0BAA0B,CAAA;AAAA,EAC/F;AAAA,EAFoC,OAAA;AAAA,EAG7B,IAAO,GAAA,EAAgC;AAAE,IAAA,WAAA,CAAY,GAAG,CAAA;AAAG,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAO,GAAG,CAAA;AAAA,EAAG;AAAA,EAC5F,GAAA,CAAO,KAAa,KAAA,EAAyB;AAAE,IAAA,WAAA,CAAY,GAAG,CAAA;AAAG,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,GAAA,EAAK,KAAK,CAAA;AAAA,EAAG;AAAA,EACtG,OAAO,GAAA,EAA+B;AAAE,IAAA,WAAA,CAAY,GAAG,CAAA;AAAG,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,MAAA,CAAO,GAAG,CAAA;AAAA,EAAG;AACpG;AAEO,IAAM,wBAAN,MAAuD;AAAA,EACnD,OAAA,uBAAc,GAAA,EAAqB;AAAA,EAC5C,MAAa,IAAO,GAAA,EAAgC;AAAE,IAAA,WAAA,CAAY,GAAG,CAAA;AAAG,IAAA,OAAQ,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,GAAG,CAAA,IAAuB,IAAA;AAAA,EAAM;AAAA,EACjI,MAAa,GAAA,CAAO,GAAA,EAAa,KAAA,EAAyB;AAAE,IAAA,WAAA,CAAY,GAAG,CAAA;AAAG,IAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,GAAA,EAAK,KAAK,CAAA;AAAA,EAAG;AAAA,EAC5G,MAAa,OAAO,GAAA,EAA+B;AAAE,IAAA,WAAA,CAAY,GAAG,CAAA;AAAG,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,MAAA,CAAO,GAAG,CAAA;AAAA,EAAG;AAC1G","file":"index.js","sourcesContent":["export interface DatabaseAdapter {\n get<T>(key: string): Promise<T | null>;\n set<T>(key: string, value: T): Promise<void>;\n delete(key: string): Promise<boolean>;\n}\n\nfunction validateKey(key: string): void {\n if (key.trim().length === 0) throw new TypeError(\"key must not be empty\");\n}\n\nexport class MiniDatabase {\n public constructor(private readonly adapter: DatabaseAdapter) {\n if (adapter === undefined || adapter === null) throw new TypeError(\"adapter must be provided\");\n }\n public get<T>(key: string): Promise<T | null> { validateKey(key); return this.adapter.get<T>(key); }\n public set<T>(key: string, value: T): Promise<void> { validateKey(key); return this.adapter.set(key, value); }\n public delete(key: string): Promise<boolean> { validateKey(key); return this.adapter.delete(key); }\n}\n\nexport class MemoryDatabaseAdapter implements DatabaseAdapter {\n readonly #values = new Map<string, unknown>();\n public async get<T>(key: string): Promise<T | null> { validateKey(key); return (this.#values.get(key) as T | undefined) ?? null; }\n public async set<T>(key: string, value: T): Promise<void> { validateKey(key); this.#values.set(key, value); }\n public async delete(key: string): Promise<boolean> { validateKey(key); return this.#values.delete(key); }\n}\n"]}
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "mini-interactions-database",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "sideEffects": false,
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ },
14
+ "./package.json": "./package.json"
15
+ },
16
+ "dependencies": {
17
+ "mini-interactions-core": "0.1.0"
18
+ },
19
+ "scripts": {
20
+ "build": "tsup",
21
+ "dev": "tsup --watch",
22
+ "typecheck": "tsc --noEmit",
23
+ "test": "vitest run",
24
+ "clean": "rm -rf dist"
25
+ }
26
+ }