Comments (4)
Ah, thank you; my extrapolation from https://github.com/jakearchibald/idb-keyval/blob/master/idb-keyval.js definitely doesn't work in this case.
Would you mind dropping the code you would suggest (in JS, presumably) for the kind of API we're trying to create here? I.e. at what point should we create the store? Alternately I can look it up myself if you're busy.
from kv-storage.
I think the easiest thing to do is use a single fixed store name so you never deal with upgrades, and use a compound key.
i.e. instead the guts of get()
become:
const transaction = this.#connection.transaction("store", "readonly");
const store = transaction.objectStore("store");
const request = store.get([key,this.#storeName]);
Where "store"
is a Well Known Name in the API's use of IDB just like "async-local-storage"
This means certain operations (e.g. clear()
, keys()
, etc) become explicit range operations, which is unfortunately tricky given a lack of prefix ranges.
from kv-storage.
Hmm, I'm not sure that sounds so easy :-/.
Maybe instead we should use a single fixed store name, but a separate database per StorageArea?
from kv-storage.
Yep, that'd work too. More overhead per area but that's an implementation's problem to optimize.
from kv-storage.
Related Issues (20)
- Use Web IDL, while preserving our goals HOT 6
- "for (const key of storage.keys()) {"
- Cannot store promise-like values HOT 4
- Async parsing like Cloudflare KV API HOT 4
- README incorrectly refer to AngularJS as Angular HOT 1
- Make storage a default export HOT 2
- Atomic compare-and-swap operation? HOT 5
- Performance concerns HOT 20
- Cross browser compatibility HOT 2
- " })(); " HOT 1
- Can't we use web workers for Async access to LS HOT 4
- Bulk read/write API HOT 7
- Derive from %AsyncIteratorPrototype%? HOT 2
- Handle [[LastKey]] being "not yet started" HOT 2
- Name is unclear HOT 2
- Notate points where the implementation could commit
- [kv-storage] WebAppsWG TPAC F2F agenda (Fukuoka, Sep 19-20 2019) HOT 2
- feature-request - add appendFile-like capability to overcome nedb performance-bottleneck HOT 4
- Range Queries Please 🤓 HOT 1
- Query on implementation status HOT 4
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 kv-storage.