@qualifyze/airtable-formulator
Version:
Airtable Formula Manipulator
32 lines • 1.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createNodeErrorMessage = exports.isTokenNode = exports.isNode = void 0;
const tokenize_1 = require("../../tokenize");
const group_1 = require("./group");
function isNodeType(type) {
return ((0, tokenize_1.isTokenName)(type) ||
(0, group_1.isGroupType)(type) ||
type === "fieldReference" ||
type === "functionReference");
}
function isNode(node) {
if (typeof node !== "object" || node === null) {
return false;
}
const { type, start, end, value } = node;
return (typeof type === "string" &&
isNodeType(type) &&
typeof start === "number" &&
typeof end === "number" &&
typeof value === "string");
}
exports.isNode = isNode;
function isTokenNode(node) {
return (0, tokenize_1.isTokenName)(node.type);
}
exports.isTokenNode = isTokenNode;
function createNodeErrorMessage(node, message, type = "Syntax") {
return `${type} Error while parsing ${node.type} node at position ${node.start}: ${message}`;
}
exports.createNodeErrorMessage = createNodeErrorMessage;
//# sourceMappingURL=node.js.map