UNPKG

@hlang-org/runtime

Version:

A FBP-Inspired language for universal applications.

33 lines 3.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const graph_1 = require("../core/graph"); const run_1 = require("../core/run"); const build_1 = require("../core/build"); const sort_1 = require("../utils/sort"); const type_1 = require("../type"); const Runner = (node, flow) => { const graph = new graph_1.default(true); return { run: function () { // step 1: build graph with root-node (0, build_1.default)(graph)(node); // step 2: run graph with sorted nodes (0, run_1.default)(graph)((0, sort_1.default)(graph), flow); }, }; }; class Flow { constructor(opts = {}) { this.opts = opts; this.cache = new Map(); } run(rootNode) { if (rootNode.type !== type_1.NODE_TYPE.READABLE) { throw new Error('Flow must run with a READABLE node.'); } const runner = Runner(rootNode, this); runner.run(); } } exports.default = Flow; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlL2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBa0M7QUFDbEMscUNBQThCO0FBQzlCLHlDQUFrQztBQUNsQyx3Q0FBaUM7QUFDakMsa0NBQStDO0FBRy9DLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO0lBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUksZUFBSyxDQUFrQixJQUFJLENBQUMsQ0FBQztJQUUvQyxPQUFPO1FBQ0wsR0FBRyxFQUFFO1lBQ0gscUNBQXFDO1lBQ3JDLElBQUEsZUFBSyxFQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25CLHNDQUFzQztZQUN0QyxJQUFBLGFBQUcsRUFBQyxLQUFLLENBQUMsQ0FBQyxJQUFBLGNBQUksRUFBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQXFCLElBQUk7SUFJdkIsWUFBWSxJQUFJLEdBQUcsRUFBRTtRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELEdBQUcsQ0FBQyxRQUFRO1FBQ1YsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLGdCQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNmLENBQUM7Q0FDRjtBQWpCRCx1QkFpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR3JhcGggZnJvbSAnLi4vY29yZS9ncmFwaCc7XG5pbXBvcnQgcnVuIGZyb20gJy4uL2NvcmUvcnVuJztcbmltcG9ydCBidWlsZCBmcm9tICcuLi9jb3JlL2J1aWxkJztcbmltcG9ydCBzb3J0IGZyb20gJy4uL3V0aWxzL3NvcnQnO1xuaW1wb3J0IHsgSVBvcnREZXNjLCBOT0RFX1RZUEUgfSBmcm9tICcuLi90eXBlJztcbmltcG9ydCBOb2RlIGZyb20gJy4uL25vZGUnO1xuXG5jb25zdCBSdW5uZXIgPSAobm9kZSwgZmxvdykgPT4ge1xuICBjb25zdCBncmFwaCA9IG5ldyBHcmFwaDxJUG9ydERlc2MsIE5vZGU+KHRydWUpO1xuXG4gIHJldHVybiB7XG4gICAgcnVuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBzdGVwIDE6IGJ1aWxkIGdyYXBoIHdpdGggcm9vdC1ub2RlXG4gICAgICBidWlsZChncmFwaCkobm9kZSk7XG4gICAgICAvLyBzdGVwIDI6IHJ1biBncmFwaCB3aXRoIHNvcnRlZCBub2Rlc1xuICAgICAgcnVuKGdyYXBoKShzb3J0KGdyYXBoKSwgZmxvdyk7XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZsb3cge1xuICBvcHRzOiB7W2tleTogc3RyaW5nXTphbnl9O1xuICBjYWNoZTogTWFwPHN0cmluZywgYW55PjtcblxuICBjb25zdHJ1Y3RvcihvcHRzID0ge30pIHtcbiAgICB0aGlzLm9wdHMgPSBvcHRzO1xuICAgIHRoaXMuY2FjaGUgPSBuZXcgTWFwKCk7XG4gIH1cblxuICBydW4ocm9vdE5vZGUpIHtcbiAgICBpZiAocm9vdE5vZGUudHlwZSAhPT0gTk9ERV9UWVBFLlJFQURBQkxFKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Zsb3cgbXVzdCBydW4gd2l0aCBhIFJFQURBQkxFIG5vZGUuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcnVubmVyID0gUnVubmVyKHJvb3ROb2RlLCB0aGlzKTtcbiAgICBydW5uZXIucnVuKCk7XG4gIH1cbn1cbiJdfQ==