@benev/nubs
Version:
user-input system for web games
57 lines • 3.7 kB
JavaScript
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _Bindings_Controller_schema, _Bindings_Controller_bindings, _Bindings_Controller_store, _Bindings_Controller_on_bindings_change;
import { extract_bindings } from "./extract_bindings.js";
import { jsonStorageProxy } from "../../../tools/json-storage.js";
import { default_bindings_schema } from "./default_bindings_schema.js";
import { detect_bindings_version } from "./utils/detect_bindings_version.js";
import { migrate_bindings_to_latest_version } from "./utils/migrate_bindings_to_latest_version.js";
export class Bindings_Controller {
constructor({ storage, on_bindings_change }) {
this.storage_key = `nub_bindings`;
_Bindings_Controller_schema.set(this, default_bindings_schema);
_Bindings_Controller_bindings.set(this, this.defaults);
_Bindings_Controller_store.set(this, void 0);
_Bindings_Controller_on_bindings_change.set(this, void 0);
__classPrivateFieldSet(this, _Bindings_Controller_store, jsonStorageProxy(storage), "f");
__classPrivateFieldSet(this, _Bindings_Controller_on_bindings_change, on_bindings_change, "f");
}
get defaults() {
return extract_bindings(__classPrivateFieldGet(this, _Bindings_Controller_schema, "f"));
}
get schema() {
return __classPrivateFieldGet(this, _Bindings_Controller_schema, "f");
}
set schema(s) {
__classPrivateFieldSet(this, _Bindings_Controller_schema, s, "f");
this.bindings = this.defaults;
}
get bindings() {
return __classPrivateFieldGet(this, _Bindings_Controller_bindings, "f");
}
set bindings(b) {
__classPrivateFieldSet(this, _Bindings_Controller_bindings, b, "f");
this.save_to_storage();
__classPrivateFieldGet(this, _Bindings_Controller_on_bindings_change, "f").call(this, b);
}
save_to_storage() {
__classPrivateFieldGet(this, _Bindings_Controller_store, "f")[this.storage_key] = __classPrivateFieldGet(this, _Bindings_Controller_bindings, "f");
}
load_from_storage() {
var _a;
const read_bindings = ((_a = __classPrivateFieldGet(this, _Bindings_Controller_store, "f")[this.storage_key]) !== null && _a !== void 0 ? _a : this.defaults);
const bindings_version = detect_bindings_version(read_bindings);
this.bindings = migrate_bindings_to_latest_version(read_bindings, bindings_version);
}
}
_Bindings_Controller_schema = new WeakMap(), _Bindings_Controller_bindings = new WeakMap(), _Bindings_Controller_store = new WeakMap(), _Bindings_Controller_on_bindings_change = new WeakMap();
//# sourceMappingURL=bindings_controller.js.map