multitude
Version:
Comprehensive streams for push and pull
28 lines (23 loc) • 2.36 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Accessor = void 0;
class Accessor {
static define(obj, key, value) {
Object.defineProperty(obj, key, {
enumerable: false,
writable: true,
value
});
}
static fallback(obj, key, fn) {
const response = obj[key];
if (response !== undefined) return response;
const value = fn();
this.define(obj, key, value);
return value;
}
}
exports.Accessor = Accessor;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL0FjY2Vzc29yLnRzIl0sIm5hbWVzIjpbIkFjY2Vzc29yIiwiZGVmaW5lIiwib2JqIiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImZhbGxiYWNrIiwiZm4iLCJyZXNwb25zZSIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVPLE1BQU1BLFFBQU4sQ0FBZTtBQUNBLFNBQU5DLE1BQU0sQ0FDbEJDLEdBRGtCLEVBRWxCQyxHQUZrQixFQUdsQkMsS0FIa0IsRUFJWjtBQUNOQyxJQUFBQSxNQUFNLENBQUNDLGNBQVAsQ0FBc0JKLEdBQXRCLEVBQTJCQyxHQUEzQixFQUFnQztBQUM5QkksTUFBQUEsVUFBVSxFQUFFLEtBRGtCO0FBRTlCQyxNQUFBQSxRQUFRLEVBQUUsSUFGb0I7QUFHOUJKLE1BQUFBO0FBSDhCLEtBQWhDO0FBS0Q7O0FBQ3FCLFNBQVJLLFFBQVEsQ0FDcEJQLEdBRG9CLEVBRXBCQyxHQUZvQixFQUdwQk8sRUFIb0IsRUFJakI7QUFDSCxVQUFNQyxRQUFRLEdBQUlULEdBQUQsQ0FBYUMsR0FBYixDQUFqQjtBQUNBLFFBQUlRLFFBQVEsS0FBS0MsU0FBakIsRUFBNEIsT0FBT0QsUUFBUDtBQUU1QixVQUFNUCxLQUFLLEdBQUdNLEVBQUUsRUFBaEI7QUFDQSxTQUFLVCxNQUFMLENBQVlDLEdBQVosRUFBaUJDLEdBQWpCLEVBQXNCQyxLQUF0QjtBQUNBLFdBQU9BLEtBQVA7QUFDRDs7QUF2Qm1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdGlvbmFyeSwgTnVsbGFyeUZuIH0gZnJvbSAndHlwZS1jb3JlJztcblxuZXhwb3J0IGNsYXNzIEFjY2Vzc29yIHtcbiAgcHVibGljIHN0YXRpYyBkZWZpbmU8VD4oXG4gICAgb2JqOiBEaWN0aW9uYXJ5LFxuICAgIGtleTogc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sLFxuICAgIHZhbHVlOiBUXG4gICk6IHZvaWQge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlXG4gICAgfSk7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBmYWxsYmFjazxUPihcbiAgICBvYmo6IERpY3Rpb25hcnksXG4gICAga2V5OiBzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsXG4gICAgZm46IE51bGxhcnlGbjxUPlxuICApOiBUIHtcbiAgICBjb25zdCByZXNwb25zZSA9IChvYmogYXMgYW55KVtrZXldO1xuICAgIGlmIChyZXNwb25zZSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gcmVzcG9uc2U7XG5cbiAgICBjb25zdCB2YWx1ZSA9IGZuKCk7XG4gICAgdGhpcy5kZWZpbmUob2JqLCBrZXksIHZhbHVlKTtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cbiJdfQ==
;