UNPKG

@embroider/macros

Version:

Standardized build-time macros for ember apps.

31 lines 1.3 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.maybeAttrs = maybeAttrs; const evaluate_1 = __importDefault(require("./evaluate")); function maybeAttrs(elementNode, node, builders) { let [predicate, ...bareAttrs] = node.params; if (!predicate) { throw new Error(`macroMaybeAttrs requires at least one argument`); } let result = (0, evaluate_1.default)(predicate); if (!result.confident) { throw new Error(`first argument to macroMaybeAttrs must be statically analyzable`); } for (let bareAttr of bareAttrs) { if (bareAttr.type !== 'PathExpression') { throw new Error(`macroMaybeAttrs found a ${bareAttr.type} where it expected a PathExpression`); } } if (result.value) { for (let bareAttr of bareAttrs) { elementNode.attributes.push(builders.attr(bareAttr.original, builders.text(''), bareAttr.loc)); } for (let attr of node.hash.pairs) { elementNode.attributes.push(builders.attr(attr.key, builders.mustache(attr.value), attr.loc)); } } } //# sourceMappingURL=macro-maybe-attrs.js.map