Comments (4)
It does support that, and there are many unit tests including that syntax such as
So I suspect you're running into some other problem. Can you post a self-contained code example?
from fakeindexeddb.
Here's a simple demo via jest
:
require("fake-indexeddb/auto");
export default class IndexDBWrapper {
constructor(dbName, dbVersion = 1, onUpgrade) {
this.dbName = dbName;
this.dbVersion = dbVersion;
this.onUpgrade = onUpgrade;
this.db = null;
this.dbInitPromise = this.initDB();
this.dbInitPromise.catch((err) => { console.log('init db error ', err) });
}
initDB() {
return new Promise((resolve, reject) => {
const { dbName, dbVersion, onUpgrade } = this;
const request = window.indexedDB.open(dbName, dbVersion);
request.onsuccess = () => {
this.db = request.result;
this.db.onversionchange = () => {
if (this.db) {
this.db.close();
window.location.reload();
}
};
resolve(this.db);
};
request.onerror = (event) => {
reject(event);
};
request.onupgradeneeded = (event) => {
if (onUpgrade) onUpgrade(event.target.result);
};
});
}
getTx(table, permission) {
try {
console.log('table = ', table);
return Promise.resolve(this.db.transaction(table, permission).objectStore(table));
} catch (err) {
console.error('getTx err = ', err);
Promise.reject(err);
}
}
}
const testTable = 'test-table';
const onUpgrade = (db) => {
if (!db.objectStoreNames.contains(testTable)) {
db.createObjectStore(testTable, { keyPath: 'id' });
}
};
const idb = new IndexDBWrapper('test-db', 1, onUpgrade);
describe('test code', () => {
test('support array', async () => {
await idb.dbInitPromise;
await idb.getTx([testTable]);
});
});
The error shows: Error [NotFoundError]: The operation failed because the requested database object could not be found. For example, an object store did not exist but was being opened.
from fakeindexeddb.
return Promise.resolve(this.db.transaction(table, permission).objectStore(table));
The problem is not the call to transaction
, it is the call to objectStore
- the argument needs to be a string, not an array.
from fakeindexeddb.
👍
from fakeindexeddb.
Related Issues (20)
- setTimeout problems / questions HOT 4
- 3.1.6 regression: `ReferenceError: setImmediate is not defined` HOT 1
- orderBy support HOT 4
- initialize the DB before the use. HOT 2
- Add observation for Dexie users HOT 3
- [BUG] Context loosing for `FakeDOMStringList` members while wrapping IDB
- [BUG] Invalid behavior for concurrent insertion data HOT 1
- Ref of Observable from liveQuery is not reactive HOT 7
- fake-indexeddb fails when happy-dom is loaded prior to fake-indexeddb HOT 3
- Running this in Chrome throws "Cannot set property indexedDB of #<Window> which has only a getter" HOT 3
- Release new version to npm with latest types fix HOT 3
- DataCloneError: The data being stored could not be cloned by the internal structured cloning algorithm. HOT 2
- Problem storing and retrieving CryptoKeys HOT 2
- structuredClone and jsdom HOT 7
- `Uint8Array` keys don't respect offsets from underlying ArrayBuffers HOT 3
- Serializing (and restoring) the state of Fake IDB HOT 1
- Unable to use in tests that mock timers (e.g. overriding `globalThis.setImmediate`) HOT 6
- `IDBObjectStore.count` is `O(n^2)` HOT 3
- Try using built-in Node.js Blob HOT 1
- How to read one of the chrome database HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fakeindexeddb.