UNPKG

@linaria/tags

Version:

Blazing fast zero-runtime CSS in JS library

51 lines (49 loc) 1.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _utils = require("@linaria/utils"); var _BaseProcessor = require("./BaseProcessor"); var _templateProcessor = _interopRequireDefault(require("./utils/templateProcessor")); var _validateParams = require("./utils/validateParams"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class TaggedTemplateProcessor extends _BaseProcessor.BaseProcessor { #template; constructor(params, ...args) { // Should have at least two params and the first one should be a callee. (0, _validateParams.validateParams)(params, ['callee', '*', '...'], TaggedTemplateProcessor.SKIP); (0, _validateParams.validateParams)(params, ['callee', 'template'], 'Invalid usage of template tag'); const [tag, [, template]] = params; super([tag], ...args); template.forEach(element => { if ('kind' in element && element.kind !== _utils.ValueType.FUNCTION) { this.dependencies.push(element); } }); this.#template = template; } build(values) { if (this.artifacts.length > 0) { // FIXME: why it was called twice? throw new Error('Tag is already built'); } const artifact = (0, _templateProcessor.default)(this, this.#template, values, this.options.variableNameConfig); if (artifact) { this.artifacts.push(['css', artifact]); } } toString() { return `${super.toString()}\`…\``; } /** * It is called for each resolved expression in a template literal. * @param node * @param precedingCss * @param source * @param unit * @return chunk of CSS that should be added to extracted CSS */ } exports.default = TaggedTemplateProcessor; //# sourceMappingURL=TaggedTemplateProcessor.js.map