UNPKG

sqrl-cli-functions

Version:

SQRL (A Safe, Stateful Rules Language for Event Streams) - functions intended for command line tools

52 lines (51 loc) 2.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.register = exports.CliManipulator = void 0; const sqrl_1 = require("sqrl"); const util = require("util"); const CliManipulator_1 = require("./CliManipulator"); const SourceFunctions_1 = require("./SourceFunctions"); const BlockFunctions_1 = require("./BlockFunctions"); var CliManipulator_2 = require("./CliManipulator"); Object.defineProperty(exports, "CliManipulator", { enumerable: true, get: function () { return CliManipulator_2.CliManipulator; } }); function register(instance) { (0, SourceFunctions_1.registerSourceFunction)(instance); (0, BlockFunctions_1.registerBlockFunctions)(instance); instance.registerStatement("SqrlLogStatements", async function log(state, format, ...args) { const message = util.format(format, ...args); if (!(state.manipulator instanceof CliManipulator_1.CliManipulator)) { throw new Error("Expected CliManipulator"); } state.manipulator.log(message); }, { allowNull: true, args: [sqrl_1.AT.state, sqrl_1.AT.any.string, sqrl_1.AT.any.repeated], argstring: "format string, value...", docstring: "Logs a message using sprintf style formatting", }); instance.registerStatement("SqrlLogStatements", async function _logFeature(state, name, value) { if (!(state.manipulator instanceof CliManipulator_1.CliManipulator)) { throw new Error("Expected CliManipulator"); } state.manipulator.logFeature(name, value); }, { allowSqrlObjects: true, allowNull: true, args: [sqrl_1.AT.state, sqrl_1.AT.constant.string, sqrl_1.AT.any], }); instance.registerTransform(function logFeature(state, ast) { const [feature] = ast.args; if (feature.type !== "feature") { throw new Error("expected feature argument"); } return sqrl_1.AstBuilder.call("_logFeature", [ sqrl_1.AstBuilder.constant(feature.value), feature, ]); }, { args: [sqrl_1.AT.feature], argstring: "feature", docstring: "Logs the given feature and its value", }); } exports.register = register;