UNPKG

@airtasker/form-schema-compiler

Version:
51 lines (36 loc) 1.62 kB
"use strict"; exports.__esModule = true; exports.parseTwoWayBindingString = exports.parseExpressionString = exports.parseTemplateString = undefined; var _parseExpressionTokenStream = require("./parseExpressionTokenStream"); var _parseExpressionTokenStream2 = _interopRequireDefault(_parseExpressionTokenStream); var _tokenizers = require("../tokenizers"); var _flowRight = require("lodash/flowRight"); var _flowRight2 = _interopRequireDefault(_flowRight); var _const = require("../const"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var parse = (0, _flowRight2["default"])(_parseExpressionTokenStream2["default"], _tokenizers.createExpressionTokenStream, _tokenizers.createInputStream); /** * parse template string * @param templateString:string */ var parseTemplateString = exports.parseTemplateString = function parseTemplateString(templateString) { return parse("`".concat(templateString, "`")); }; /** * parse expression string * @param expressionString:string */ var parseExpressionString = exports.parseExpressionString = parse; /** * parse two way binding string * Will throw error if TwoWayBinding is not a identifier. * @param expressionString */ var parseTwoWayBindingString = exports.parseTwoWayBindingString = function parseTwoWayBindingString(expressionString) { var ast = parse(expressionString); var id = ast.body[0]; if (id && id.type !== _const.TYPES.Identifier) { throw new Error("data binding type have to be Identifier instead of ".concat(ast.type, "(").concat(expressionString, ")")); } return ast; };