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
JavaScript
;
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;