Compare commits

...

12 Commits

Author SHA1 Message Date
94280da45c 2.0.8 2023-05-01 14:40:20 +02:00
9902414f5a fix(core): update 2023-05-01 14:40:19 +02:00
65fe260519 2.0.7 2023-05-01 12:45:00 +02:00
6f425906e5 fix(core): update 2023-05-01 12:44:59 +02:00
257b995ca0 2.0.6 2023-05-01 12:17:40 +02:00
2500ba4cd4 fix(core): update 2023-05-01 12:17:39 +02:00
20a81e8209 2.0.5 2022-08-01 15:50:05 +02:00
18145a27e2 fix(core): update 2022-08-01 15:50:05 +02:00
f62e0f87ce 2.0.4 2022-07-07 08:49:31 +02:00
4e74159a54 fix(core): update 2022-07-07 08:49:31 +02:00
2e8d3ca7e8 2.0.3 2022-05-29 20:04:44 +02:00
dfb4a4f62a fix(core): update 2022-05-29 20:04:44 +02:00
7 changed files with 4727 additions and 10185 deletions

10168
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "@pushrocks/webstore", "name": "@pushrocks/webstore",
"version": "2.0.2", "version": "2.0.8",
"private": false, "private": false,
"description": "high performance storage in the browser using indexed db", "description": "high performance storage in the browser using indexed db",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",
@ -13,20 +13,22 @@
"build": "(tsbuild --web --allowimplicitany)" "build": "(tsbuild --web --allowimplicitany)"
}, },
"devDependencies": { "devDependencies": {
"@gitzone/tsbuild": "^2.1.63", "@gitzone/tsbuild": "^2.1.65",
"@gitzone/tstest": "^1.0.71", "@gitzone/tsrun": "^1.2.39",
"@pushrocks/tapbundle": "^5.0.3", "@gitzone/tstest": "^1.0.74",
"@types/node": "^17.0.36" "@pushrocks/smartntml": "^2.0.3",
"@pushrocks/tapbundle": "^5.0.4",
"@types/node": "^18.16.3"
}, },
"dependencies": { "dependencies": {
"@apiglobal/typedrequest-interfaces": "^1.0.15", "@apiglobal/typedrequest-interfaces": "^2.0.1",
"@pushrocks/lik": "^6.0.0", "@pushrocks/lik": "^6.0.2",
"@pushrocks/smartenv": "^5.0.1", "@pushrocks/smartenv": "^5.0.5",
"@pushrocks/smartjson": "^4.0.6", "@pushrocks/smartjson": "^5.0.5",
"@pushrocks/smartpromise": "^3.1.6", "@pushrocks/smartpromise": "^4.0.2",
"@pushrocks/smartrx": "^2.0.25", "@pushrocks/smartrx": "^3.0.0",
"fake-indexeddb": "^3.1.7", "fake-indexeddb": "^4.0.1",
"idb": "7.0.1-fixed-02" "idb": "^7.1.1"
}, },
"browserslist": [ "browserslist": [
"last 1 chrome versions" "last 1 chrome versions"

4649
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,44 @@
import { expect, tap } from '@pushrocks/tapbundle';
import * as smartntml from '@pushrocks/smartntml';
const smartntmlInstance = new smartntml.Smartntml();
import * as webstore from '../ts/index.js';
let testWebstore: webstore.WebStore;
tap.test('first test', async () => {
testWebstore = new webstore.WebStore({
dbName: 'mytest-db',
storeName: 'mytest-store',
});
expect(testWebstore).toBeInstanceOf(webstore.WebStore);
});
tap.test('should allow storing a string', async () => {
await testWebstore.set('mystring', 'heythere');
expect(await testWebstore.get('mystring')).toEqual('heythere');
});
tap.test('should allow storing an object', async () => {
await testWebstore.set('testProp1', {
wow: 'wowVal',
});
console.log(JSON.stringify(await testWebstore.get('testProp1')));
});
tap.test('should overwrite a value', async () => {
await testWebstore.set('testProp1', {
wow: 'wowVal2',
});
console.log(JSON.stringify(await testWebstore.get('testProp1')));
});
tap.test('should correctly check the existence of keys', async () => {
const resultNotThere = await testWebstore.check('notThere');
const resultThere = await testWebstore.check('testProp1');
expect(resultNotThere).toBeFalse();
expect(resultThere).toBeTrue();
});
tap.start();

View File

@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@pushrocks/webstore', name: '@pushrocks/webstore',
version: '2.0.2', version: '2.0.8',
description: 'high performance storage in the browser using indexed db' description: 'high performance storage in the browser using indexed db'
} }

View File

@ -24,9 +24,14 @@ export class WebStore<T = any> {
this.initCalled = true; this.initCalled = true;
const smartenv = new plugins.smartenv.Smartenv(); const smartenv = new plugins.smartenv.Smartenv();
if (!smartenv.isBrowser) { if (!smartenv.isBrowser && !globalThis.indexedDB) {
const fetch = await smartenv.getSafeNodeModule('fake-indexeddb/auto.js'); console.log('hey');
globalThis.fetch = fetch.default; console.log(globalThis.indexedDB);
await smartenv.getSafeNodeModule('fake-indexeddb/auto');
if (!globalThis.indexedDB) {
const mod = await smartenv.getSafeNodeModule('fake-indexeddb');
globalThis.indexedDB = new mod.IDBFactory();
}
} }
this.db = await plugins.idb.openDB(this.options.dbName, 1, { this.db = await plugins.idb.openDB(this.options.dbName, 1, {

10
tsconfig.json Normal file
View File

@ -0,0 +1,10 @@
{
"compilerOptions": {
"experimentalDecorators": true,
"useDefineForClassFields": false,
"target": "ES2022",
"module": "ES2022",
"moduleResolution": "nodenext",
"esModuleInterop": true
}
}