/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
/* * asyncStoreHelper wraps asyncStorage so that it is easy to define project * specific properties. It is similar to PrefsHelper. * * e.g. * const asyncStore = asyncStoreHelper("r", {a: "_a"}) * asyncStore.a // => asyncStorage.getItem("r._a") * asyncStore.a = 2 // => asyncStorage.setItem("r._a", 2)
*/ function asyncStoreHelper(root, mappings) {
let store = {};
function getMappingKey(key) { return Array.isArray(mappings[key]) ? mappings[key][0] : mappings[key];
}
function getMappingDefaultValue(key) { return Array.isArray(mappings[key]) ? mappings[key][1] : null;
}
store = new Proxy(store, {
set(target, property) { if (!mappings.hasOwnProperty(property)) { thrownew Error(`AsyncStore: ${property} is not defined in mappings`);
}
Reflect.set(...arguments); returntrue;
},
});
return store;
}
module.exports = asyncStoreHelper;
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.