... to support more fine-grained commenting and collaboration.
| // http://cautionsingularityahead.blogspot.com/2012/07/resource-using-in-javascript.html | |
| // Say you have a heavy-weight resource that you can explicitly finalize - either through | |
| // some API or just by dropping a reference when you're done even if you want to hold onto | |
| // the wrapper: | |
| function Resource(a) { | |
| var res = "a resource of " + a; | |
| this.get = function() { | |
| return res; |
| # Custom prompt | |
| function prompt { | |
| write-host -NoNewLine -ForegroundColor Red $pwd | |
| # Current git branch name | |
| $branch = git rev-parse --abbrev-ref HEAD | |
| if ($branch) { | |
| write-host -NoNewLine -ForegroundColor Green (' [' + $branch + ']') | |
| } |
STATUS: Obsolete - see this updated proposal instead.
Extend IDBDatabase with:
interface IDBDatabase {
IDBExplicitTransaction explicitTransaction(scope, mode);
};
Status: Initial thought experiment. Feedback welcome.
There are times when Indexed DB's transaction-centric API is too heavyweight:
- Reading a single value
- Writing a single value
- Using some other locking mechanism
- Writing, and want immediate commit (see also: Indexed DB: Fast Commit)
| // Copyright 2019 Google LLC. | |
| // SPDX-License-Identifier: Apache-2.0 | |
| var name = 'db' + Date.now(); | |
| var openReq = indexedDB.open(name, 1); | |
| openReq.onupgradeneeded = function() { | |
| var db = openReq.result; | |
| var store = db.createObjectStore('store'); | |
| for (var i = 0; i < 100; i += 10) | |
| store.put("record-" + i, i); |
| ║ ═ ╔ ╗ ╚ ╝ ╠ ╣ ╦ ╩ ╬ -- normal | |
| │ ─ ┌ ┐ └ ┘ ├ ┤ ┬ ┴ ┼ -- infested | |
| Save the Marines: | |
| ╔═╦╦═╦╦═╗╔═╦╦═╗ | |
| ╠╗╠╬═╝╚╦╩╣╔╝╚╗╚╗ | |
| ║║║╚╗╔╦╝╔╬╝╔═╬═╝ | |
| ╚╝╚═╩╝╚═╣╚═╣╔╩╦╗ | |
| ║╔╗║╚╦╝║ |
Following proposal by @littledan
THIS NO LONGER MATCHES THE PROPOSED API AND SHOULD NOT BE USED
Just proof-of-concept. Do not use in production.
This is a redo of the solution over in Indexed DB - N-Dimensional Selection but with a revised "API". The sample here takes a query in the form of an array of IDBKeyRange instances (or null), e.g.
select(index, [IDBKeyRange.bound(5, 7), null, IDBKeyRange.lowerBound(15000)], callback, complete);This is a hacky prototype of what IDB-on-Promises could look like.
STATUS: See this updated proposal instead.
See also:
https://github.com/slightlyoff/Promises/tree/master/historical_interest/reworked_APIs/IndexedDB