idb-ts 3.1.0 → 3.3.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/README.md CHANGED
@@ -1,12 +1,29 @@
1
1
  # 🚀 idb-ts
2
2
 
3
- [![npm version](https://img.shields.io/npm/v/idb-ts.svg)](https://www.npmjs.com/package/idb-ts)
4
- [![minified](https://badgen.net/bundlephobia/min/idb-ts)](https://badgen.net/bundlephobia/min/idb-ts)
5
- [![minified + gzipped](https://badgen.net/bundlephobia/minzip/idb-ts)](https://badgen.net/bundlephobia/minzip/idb-ts)
3
+ <p align="center">
4
+ <a href="https://www.npmjs.com/package/idb-ts">
5
+ <img src="https://img.shields.io/npm/v/idb-ts.svg" alt="npm version">
6
+ </a>
7
+ <a href="https://badgen.net/bundlephobia/min/idb-ts">
8
+ <img src="https://badgen.net/bundlephobia/min/idb-ts&cache-control=no-cache" alt="minified">
9
+ </a>
10
+ <a href="https://badgen.net/bundlephobia/minzip/idb-ts">
11
+ <img src="https://badgen.net/bundlephobia/minzip/idb-ts&cache-control=no-cache" alt="minified + gzipped">
12
+ </a>
13
+ </p>
14
+
15
+ <p align="center">
16
+ <a href="https://github.com/maifeeulasad/idb-ts/stargazers">
17
+ <img src="https://img.shields.io/github/stars/maifeeulasad/idb-ts" alt="GitHub stars">
18
+ </a>
19
+ <a href="https://github.com/maifeeulasad/idb-ts/watchers">
20
+ <img src="https://img.shields.io/github/watchers/maifeeulasad/idb-ts" alt="GitHub watchers">
21
+ </a>
22
+ <a href="https://img.shields.io/github/commits-since/maifeeulasad/idb-ts/latest/main?include_prereleases">
23
+ <img src="https://img.shields.io/github/commits-since/maifeeulasad/idb-ts/latest/main?include_prereleases" alt="Commits after release">
24
+ </a>
25
+ </p>
6
26
 
7
- [![GitHub stars](https://img.shields.io/github/stars/maifeeulasad/idb-ts)](https://github.com/maifeeulasad/idb-ts/stargazers)
8
- [![GitHub watchers](https://img.shields.io/github/watchers/maifeeulasad/idb-ts)](https://github.com/maifeeulasad/idb-ts/watchers)
9
- [![Commits after release](https://img.shields.io/github/commits-since/maifeeulasad/idb-ts/latest/main?include_prereleases)](https://img.shields.io/github/commits-since/maifeeulasad/idb-ts/latest/main?include_prereleases)
10
27
 
11
28
  ## 📌 Introduction
12
29
  **idb-ts** is a lightweight, declarative, and type-safe way to work with IndexedDB using TypeScript. Effortlessly perform CRUD operations on your database with clean, structured code! 🔥
package/lib/index.d.ts CHANGED
@@ -24,5 +24,8 @@ declare class Database {
24
24
  list<T>(cls: {
25
25
  new (...args: any[]): T;
26
26
  }): Promise<T[]>;
27
+ listPaginated<T>(cls: {
28
+ new (...args: any[]): T;
29
+ }, page: number, pageSize: number): Promise<T[]>;
27
30
  }
28
31
  export { Database, KeyPath, DataClass };
package/lib/index.esm.js CHANGED
@@ -54,7 +54,7 @@ class Database {
54
54
  };
55
55
  request.onsuccess = () => {
56
56
  this.db = request.result;
57
- console.log(`Database initialized with object stores for: ${this.classes.map(cls => cls.name).join(", ")}`);
57
+ console.debug(`Database initialized with object stores for: ${this.classes.map(cls => cls.name).join(", ")}`);
58
58
  resolve();
59
59
  };
60
60
  request.onerror = () => {
@@ -79,7 +79,7 @@ class Database {
79
79
  const store = this.getObjectStore(cls.name, "readwrite");
80
80
  const request = store.add(item);
81
81
  request.onsuccess = () => {
82
- console.log(`Item added to ${cls.name}:`, item);
82
+ console.debug(`Item added to ${cls.name}:`, item);
83
83
  resolve();
84
84
  };
85
85
  request.onerror = () => {
@@ -100,7 +100,7 @@ class Database {
100
100
  const store = this.getObjectStore(cls.name, "readonly");
101
101
  const request = store.get(key);
102
102
  request.onsuccess = () => {
103
- console.log(`Item read from ${cls.name}:`, request.result);
103
+ console.debug(`Item read from ${cls.name}:`, request.result);
104
104
  resolve(request.result);
105
105
  };
106
106
  request.onerror = () => {
@@ -121,7 +121,7 @@ class Database {
121
121
  const store = this.getObjectStore(cls.name, "readwrite");
122
122
  const request = store.put(item);
123
123
  request.onsuccess = () => {
124
- console.log(`Item updated in ${cls.name}:`, item);
124
+ console.debug(`Item updated in ${cls.name}:`, item);
125
125
  resolve();
126
126
  };
127
127
  request.onerror = () => {
@@ -142,7 +142,7 @@ class Database {
142
142
  const store = this.getObjectStore(cls.name, "readwrite");
143
143
  const request = store.delete(key);
144
144
  request.onsuccess = () => {
145
- console.log(`Item deleted from ${cls.name}:`, key);
145
+ console.debug(`Item deleted from ${cls.name}:`, key);
146
146
  resolve();
147
147
  };
148
148
  request.onerror = () => {
@@ -163,7 +163,7 @@ class Database {
163
163
  const store = this.getObjectStore(cls.name, "readonly");
164
164
  const request = store.getAll();
165
165
  request.onsuccess = () => {
166
- console.log(`All items from ${cls.name}:`, request.result);
166
+ console.debug(`All items from ${cls.name}:`, request.result);
167
167
  resolve(request.result);
168
168
  };
169
169
  request.onerror = () => {
@@ -177,5 +177,28 @@ class Database {
177
177
  });
178
178
  });
179
179
  }
180
+ listPaginated(cls, page, pageSize) {
181
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
182
+ return new Promise((resolve, reject) => {
183
+ try {
184
+ const store = this.getObjectStore(cls.name, "readonly");
185
+ const request = store.getAll();
186
+ request.onsuccess = () => {
187
+ const items = request.result;
188
+ const paginatedItems = items.slice((page - 1) * pageSize, page * pageSize);
189
+ console.debug(`Paginated items from ${cls.name}:`, paginatedItems);
190
+ resolve(paginatedItems);
191
+ };
192
+ request.onerror = () => {
193
+ console.error(`Error listing items from ${cls.name}:`, request.error);
194
+ reject(request.error);
195
+ };
196
+ }
197
+ catch (error) {
198
+ reject(error);
199
+ }
200
+ });
201
+ });
202
+ }
180
203
  }
181
204
  exports.Database = Database;
package/lib/index.js CHANGED
@@ -63,7 +63,7 @@ class Database {
63
63
  };
64
64
  request.onsuccess = () => {
65
65
  this.db = request.result;
66
- console.log(`Database initialized with object stores for: ${this.classes.map(cls => cls.name).join(", ")}`);
66
+ console.debug(`Database initialized with object stores for: ${this.classes.map(cls => cls.name).join(", ")}`);
67
67
  resolve();
68
68
  };
69
69
  request.onerror = () => {
@@ -88,7 +88,7 @@ class Database {
88
88
  const store = this.getObjectStore(cls.name, "readwrite");
89
89
  const request = store.add(item);
90
90
  request.onsuccess = () => {
91
- console.log(`Item added to ${cls.name}:`, item);
91
+ console.debug(`Item added to ${cls.name}:`, item);
92
92
  resolve();
93
93
  };
94
94
  request.onerror = () => {
@@ -109,7 +109,7 @@ class Database {
109
109
  const store = this.getObjectStore(cls.name, "readonly");
110
110
  const request = store.get(key);
111
111
  request.onsuccess = () => {
112
- console.log(`Item read from ${cls.name}:`, request.result);
112
+ console.debug(`Item read from ${cls.name}:`, request.result);
113
113
  resolve(request.result);
114
114
  };
115
115
  request.onerror = () => {
@@ -130,7 +130,7 @@ class Database {
130
130
  const store = this.getObjectStore(cls.name, "readwrite");
131
131
  const request = store.put(item);
132
132
  request.onsuccess = () => {
133
- console.log(`Item updated in ${cls.name}:`, item);
133
+ console.debug(`Item updated in ${cls.name}:`, item);
134
134
  resolve();
135
135
  };
136
136
  request.onerror = () => {
@@ -151,7 +151,7 @@ class Database {
151
151
  const store = this.getObjectStore(cls.name, "readwrite");
152
152
  const request = store.delete(key);
153
153
  request.onsuccess = () => {
154
- console.log(`Item deleted from ${cls.name}:`, key);
154
+ console.debug(`Item deleted from ${cls.name}:`, key);
155
155
  resolve();
156
156
  };
157
157
  request.onerror = () => {
@@ -172,7 +172,7 @@ class Database {
172
172
  const store = this.getObjectStore(cls.name, "readonly");
173
173
  const request = store.getAll();
174
174
  request.onsuccess = () => {
175
- console.log(`All items from ${cls.name}:`, request.result);
175
+ console.debug(`All items from ${cls.name}:`, request.result);
176
176
  resolve(request.result);
177
177
  };
178
178
  request.onerror = () => {
@@ -186,5 +186,28 @@ class Database {
186
186
  });
187
187
  });
188
188
  }
189
+ listPaginated(cls, page, pageSize) {
190
+ return __awaiter(this, void 0, void 0, function* () {
191
+ return new Promise((resolve, reject) => {
192
+ try {
193
+ const store = this.getObjectStore(cls.name, "readonly");
194
+ const request = store.getAll();
195
+ request.onsuccess = () => {
196
+ const items = request.result;
197
+ const paginatedItems = items.slice((page - 1) * pageSize, page * pageSize);
198
+ console.debug(`Paginated items from ${cls.name}:`, paginatedItems);
199
+ resolve(paginatedItems);
200
+ };
201
+ request.onerror = () => {
202
+ console.error(`Error listing items from ${cls.name}:`, request.error);
203
+ reject(request.error);
204
+ };
205
+ }
206
+ catch (error) {
207
+ reject(error);
208
+ }
209
+ });
210
+ });
211
+ }
189
212
  }
190
213
  exports.Database = Database;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "idb-ts",
3
- "version": "3.1.0",
3
+ "version": "3.3.0",
4
4
  "description": "Easy CRUD for indexed-db, written in TypeScript",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.esm.js",
@@ -24,7 +24,13 @@
24
24
  "keywords": [
25
25
  "idb",
26
26
  "ts",
27
- "indexed-db"
27
+ "indexed-db",
28
+ "typescript",
29
+ "database",
30
+ "db",
31
+ "indexeddb",
32
+ "crud",
33
+ "storage"
28
34
  ],
29
35
  "author": "Maifee Ul Asad <maifeeulasad@gmail.com>",
30
36
  "license": "MIT",