UNPKG

@selfage/observable

Version:

Runtime lib for generated observables.

34 lines 4.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseObservable = exports.OBSERVABLE_PARSER = exports.popArrayUntilTargetLength = exports.nullifyArray = exports.checkArrayType = exports.nullifyOutput = exports.checkSourceNonNull = void 0; const observable_array_1 = require("@selfage/observable_array"); const parser_1 = require("@selfage/message/parser"); const assembler_1 = require("./assembler"); function checkSourceNonNull(source) { return Boolean(source) && typeof source === "object"; } exports.checkSourceNonNull = checkSourceNonNull; function nullifyOutput() { return undefined; } exports.nullifyOutput = nullifyOutput; function checkArrayType(sourceField) { return Array.isArray(sourceField) || sourceField instanceof observable_array_1.ObservableArray; } exports.checkArrayType = checkArrayType; function nullifyArray(ret, fieldName) { ret[fieldName] = undefined; } exports.nullifyArray = nullifyArray; function popArrayUntilTargetLength(retArrayField, targetLength) { for (let i = retArrayField.length; i > targetLength; i--) { retArrayField.pop(); } } exports.popArrayUntilTargetLength = popArrayUntilTargetLength; exports.OBSERVABLE_PARSER = new assembler_1.ObservableAssembler(checkSourceNonNull, nullifyOutput, checkArrayType, nullifyArray, popArrayUntilTargetLength, parser_1.parsePrimitive, parser_1.parseEnum, parser_1.parseMessage); function parseObservable(raw, descriptor, output) { return exports.OBSERVABLE_PARSER.processObservableType(raw, descriptor, output); } exports.parseObservable = parseObservable; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGdFQUE0RDtBQUM1RCxvREFJaUM7QUFFakMsMkNBQWtEO0FBRWxELFNBQWdCLGtCQUFrQixDQUFDLE1BQVc7SUFDNUMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDO0FBQ3ZELENBQUM7QUFGRCxnREFFQztBQUVELFNBQWdCLGFBQWE7SUFDM0IsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUZELHNDQUVDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLFdBQWdCO0lBQzdDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxXQUFXLFlBQVksa0NBQWUsQ0FBQztBQUM5RSxDQUFDO0FBRkQsd0NBRUM7QUFFRCxTQUFnQixZQUFZLENBQUMsR0FBUSxFQUFFLFNBQWlCO0lBQ3RELEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUM7QUFDN0IsQ0FBQztBQUZELG9DQUVDO0FBRUQsU0FBZ0IseUJBQXlCLENBQ3ZDLGFBQWtCLEVBQ2xCLFlBQW9CO0lBRXBCLEtBQUssSUFBSSxDQUFDLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3hELGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUNyQjtBQUNILENBQUM7QUFQRCw4REFPQztBQUVVLFFBQUEsaUJBQWlCLEdBQUcsSUFBSSwrQkFBbUIsQ0FDcEQsa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixjQUFjLEVBQ2QsWUFBWSxFQUNaLHlCQUF5QixFQUN6Qix1QkFBYyxFQUNkLGtCQUFTLEVBQ1QscUJBQVksQ0FDYixDQUFDO0FBRUYsU0FBZ0IsZUFBZSxDQUM3QixHQUFRLEVBQ1IsVUFBbUMsRUFDbkMsTUFBVTtJQUVWLE9BQU8seUJBQWlCLENBQUMscUJBQXFCLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBTkQsMENBTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlQXJyYXkgfSBmcm9tIFwiQHNlbGZhZ2Uvb2JzZXJ2YWJsZV9hcnJheVwiO1xuaW1wb3J0IHtcbiAgcGFyc2VQcmltaXRpdmUsXG4gIHBhcnNlRW51bSxcbiAgcGFyc2VNZXNzYWdlLFxufSBmcm9tIFwiQHNlbGZhZ2UvbWVzc2FnZS9wYXJzZXJcIjtcbmltcG9ydCB7IE9ic2VydmFibGVEZXNjcmlwdG9yIH0gZnJvbSBcIi4vZGVzY3JpcHRvclwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUFzc2VtYmxlciB9IGZyb20gXCIuL2Fzc2VtYmxlclwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tTb3VyY2VOb25OdWxsKHNvdXJjZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiBCb29sZWFuKHNvdXJjZSkgJiYgdHlwZW9mIHNvdXJjZSA9PT0gXCJvYmplY3RcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG51bGxpZnlPdXRwdXQoKTogYW55IHtcbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrQXJyYXlUeXBlKHNvdXJjZUZpZWxkOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoc291cmNlRmllbGQpIHx8IHNvdXJjZUZpZWxkIGluc3RhbmNlb2YgT2JzZXJ2YWJsZUFycmF5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbnVsbGlmeUFycmF5KHJldDogYW55LCBmaWVsZE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICByZXRbZmllbGROYW1lXSA9IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvcEFycmF5VW50aWxUYXJnZXRMZW5ndGgoXG4gIHJldEFycmF5RmllbGQ6IGFueSxcbiAgdGFyZ2V0TGVuZ3RoOiBudW1iZXJcbik6IHZvaWQge1xuICBmb3IgKGxldCBpID0gcmV0QXJyYXlGaWVsZC5sZW5ndGg7IGkgPiB0YXJnZXRMZW5ndGg7IGktLSkge1xuICAgIHJldEFycmF5RmllbGQucG9wKCk7XG4gIH1cbn1cblxuZXhwb3J0IGxldCBPQlNFUlZBQkxFX1BBUlNFUiA9IG5ldyBPYnNlcnZhYmxlQXNzZW1ibGVyKFxuICBjaGVja1NvdXJjZU5vbk51bGwsXG4gIG51bGxpZnlPdXRwdXQsXG4gIGNoZWNrQXJyYXlUeXBlLFxuICBudWxsaWZ5QXJyYXksXG4gIHBvcEFycmF5VW50aWxUYXJnZXRMZW5ndGgsXG4gIHBhcnNlUHJpbWl0aXZlLFxuICBwYXJzZUVudW0sXG4gIHBhcnNlTWVzc2FnZVxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlT2JzZXJ2YWJsZTxUPihcbiAgcmF3OiBhbnksXG4gIGRlc2NyaXB0b3I6IE9ic2VydmFibGVEZXNjcmlwdG9yPFQ+LFxuICBvdXRwdXQ/OiBUXG4pOiBUIHtcbiAgcmV0dXJuIE9CU0VSVkFCTEVfUEFSU0VSLnByb2Nlc3NPYnNlcnZhYmxlVHlwZShyYXcsIGRlc2NyaXB0b3IsIG91dHB1dCk7XG59XG4iXX0=