UNPKG

grind-assets

Version:
88 lines (68 loc) 7.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NunjucksExtension = void 0; function _isnil(val) { return val === null || typeof val === 'undefined'; } class NunjucksExtension { constructor() { this.tags = ['asset', 'style', 'css', 'sass', 'scss', 'styl', 'stylus', 'less', 'script', 'js', 'babel', 'coffee']; } parse(parser, nodes) { const tag = parser.peekToken().value; const token = parser.nextToken(); const args = parser.parseSignature(null, true); parser.advanceAfterBlockEnd(token.value); return new nodes.CallExtension(this, tag, args); } asset(context, type, value) { if (_isnil(context.ctx._assetContainer)) { Log.error('Missing asset container, ignoring asset tag.'); return; } if (_isnil(value)) { value = type; type = null; } if (type !== 'render') { context.ctx._assetContainer.append(type, value); } else { return context.ctx._assetContainer.render(value); } } style(context, value) { return this.asset(context, 'style', value); } css(context, value) { return this.asset(context, 'css', value); } sass(context, value) { return this.asset(context, 'sass', value); } scss(context, value) { return this.asset(context, 'scss', value); } styl(context, value) { return this.asset(context, 'styl', value); } stylus(context, value) { return this.asset(context, 'stylus', value); } less(context, value) { return this.asset(context, 'less', value); } script(context, value) { return this.asset(context, 'script', value); } js(context, value) { return this.asset(context, 'js', value); } babel(context, value) { return this.asset(context, 'babel', value); } coffee(context, value) { return this.asset(context, 'coffee', value); } } exports.NunjucksExtension = NunjucksExtension; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9WaWV3L051bmp1Y2tzRXh0ZW5zaW9uLmpzIl0sIm5hbWVzIjpbIk51bmp1Y2tzRXh0ZW5zaW9uIiwidGFncyIsInBhcnNlIiwicGFyc2VyIiwibm9kZXMiLCJ0YWciLCJwZWVrVG9rZW4iLCJ2YWx1ZSIsInRva2VuIiwibmV4dFRva2VuIiwiYXJncyIsInBhcnNlU2lnbmF0dXJlIiwiYWR2YW5jZUFmdGVyQmxvY2tFbmQiLCJDYWxsRXh0ZW5zaW9uIiwiYXNzZXQiLCJjb250ZXh0IiwidHlwZSIsImN0eCIsIl9hc3NldENvbnRhaW5lciIsIkxvZyIsImVycm9yIiwiYXBwZW5kIiwicmVuZGVyIiwic3R5bGUiLCJjc3MiLCJzYXNzIiwic2NzcyIsInN0eWwiLCJzdHlsdXMiLCJsZXNzIiwic2NyaXB0IiwianMiLCJiYWJlbCIsImNvZmZlZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQU8sTUFBTUEsaUJBQU4sQ0FBd0I7QUFBQTtBQUFBLFNBQzlCQyxJQUQ4QixHQUN2QixDQUNOLE9BRE0sRUFFTixPQUZNLEVBR04sS0FITSxFQUlOLE1BSk0sRUFLTixNQUxNLEVBTU4sTUFOTSxFQU9OLFFBUE0sRUFRTixNQVJNLEVBU04sUUFUTSxFQVVOLElBVk0sRUFXTixPQVhNLEVBWU4sUUFaTSxDQUR1QjtBQUFBOztBQWdCOUJDLEVBQUFBLEtBQUssQ0FBQ0MsTUFBRCxFQUFTQyxLQUFULEVBQWdCO0FBQ3BCLFVBQU1DLEdBQUcsR0FBR0YsTUFBTSxDQUFDRyxTQUFQLEdBQW1CQyxLQUEvQjtBQUNBLFVBQU1DLEtBQUssR0FBR0wsTUFBTSxDQUFDTSxTQUFQLEVBQWQ7QUFDQSxVQUFNQyxJQUFJLEdBQUdQLE1BQU0sQ0FBQ1EsY0FBUCxDQUFzQixJQUF0QixFQUE0QixJQUE1QixDQUFiO0FBQ0FSLElBQUFBLE1BQU0sQ0FBQ1Msb0JBQVAsQ0FBNEJKLEtBQUssQ0FBQ0QsS0FBbEM7QUFDQSxXQUFPLElBQUlILEtBQUssQ0FBQ1MsYUFBVixDQUF3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bmp1Y2tzRXh0ZW5zaW9uIHtcblx0dGFncyA9IFtcblx0XHQnYXNzZXQnLFxuXHRcdCdzdHlsZScsXG5cdFx0J2NzcycsXG5cdFx0J3Nhc3MnLFxuXHRcdCdzY3NzJyxcblx0XHQnc3R5bCcsXG5cdFx0J3N0eWx1cycsXG5cdFx0J2xlc3MnLFxuXHRcdCdzY3JpcHQnLFxuXHRcdCdqcycsXG5cdFx0J2JhYmVsJyxcblx0XHQnY29mZmVlJyxcblx0XVxuXG5cdHBhcnNlKHBhcnNlciwgbm9kZXMpIHtcblx0XHRjb25zdCB0YWcgPSBwYXJzZXIucGVla1Rva2VuKCkudmFsdWVcblx0XHRjb25zdCB0b2tlbiA9IHBhcnNlci5uZXh0VG9rZW4oKVxuXHRcdGNvbnN0IGFyZ3MgPSBwYXJzZXIucGFyc2VTaWduYXR1cmUobnVsbCwgdHJ1ZSlcblx0XHRwYXJzZXIuYWR2YW5jZUFmdGVyQmxvY2tFbmQodG9rZW4udmFsdWUpXG5cdFx0cmV0dXJuIG5ldyBub2Rlcy5DYWxsRXh0ZW5zaW9uKHRoaXMsIHRhZywgYXJncylcblx0fVxuXG5cdGFzc2V0KGNvbnRleHQsIHR5cGUsIHZhbHVlKSB7XG5cdFx0aWYgKGNvbnRleHQuY3R4Ll9hc3NldENvbnRhaW5lci5pc05pbCkge1xuXHRcdFx0TG9nLmVycm9yKCdNaXNzaW5nIGFzc2V0IGNvbnRhaW5lciwgaWdub3JpbmcgYXNzZXQgdGFnLicpXG5cdFx0XHRyZXR1cm5cblx0XHR9XG5cblx0XHRpZiAodmFsdWUuaXNOaWwpIHtcblx0XHRcdHZhbHVlID0gdHlwZVxuXHRcdFx0dHlwZSA9IG51bGxcblx0XHR9XG5cblx0XHRpZiAodHlwZSAhPT0gJ3JlbmRlcicpIHtcblx0XHRcdGNvbnRleHQuY3R4Ll9hc3NldENvbnRhaW5lci5hcHBlbmQodHlwZSwgdmFsdWUpXG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBjb250ZXh0LmN0eC5fYXNzZXRDb250YWluZXIucmVuZGVyKHZhbHVlKVxuXHRcdH1cblx0fVxuXG5cdHN0eWxlKGNvbnRleHQsIHZhbHVlKSB7XG5cdFx0cmV0dXJuIHRoaXMuYXNzZXQoY29udGV4dCwgJ3N0eWxlJywgdmFsdWUpXG5cdH1cblxuXHRjc3MoY29udGV4dCwgdmFsdWUpIHtcblx0XHRyZXR1cm4gdGhpcy5hc3NldChjb250ZXh0LCAnY3NzJywgdmFsdWUpXG5cdH1cblxuXHRzYXNzKGNvbnRleHQsIHZhbHVlKSB7XG5cdFx0cmV0dXJuIHRoaXMuYXNzZXQoY29udGV4dCwgJ3Nhc3MnLCB2YWx1ZSlcblx0fVxuXG5cdHNjc3MoY29udGV4dCwgdmFsdWUpIHtcblx0XHRyZXR1cm4gdGhpcy5hc3NldChjb250ZXh0LCAnc2NzcycsIHZhbHVlKVxuXHR9XG5cblx0c3R5bChjb250ZXh0LCB2YWx1ZSkge1xuXHRcdHJldHVybiB0aGlzLmFzc2V0KGNvbnRleHQsICdzdHlsJywgdmFsdWUpXG5cdH1cblxuXHRzdHlsdXMoY29udGV4dCwgdmFsdWUpIHtcblx0XHRyZXR1cm4gdGhpcy5hc3NldChjb250ZXh0LCAnc3R5bHVzJywgdmFsdWUpXG5cdH1cblxuXHRsZXNzKGNvbnRleHQsIHZhbHVlKSB7XG5cdFx0cmV0dXJuIHRoaXMuYXNzZXQoY29udGV4dCwgJ2xlc3MnLCB2YWx1ZSlcblx0fVxuXG5cdHNjcmlwdChjb250ZXh0LCB2YWx1ZSkge1xuXHRcdHJldHVybiB0aGlzLmFzc2V0KGNvbnRleHQsICdzY3JpcHQnLCB2YWx1ZSlcblx0fVxuXG5cdGpzKGNvbnRleHQsIHZhbHVlKSB7XG5cdFx0cmV0dXJuIHRoaXMuYXNzZXQoY29udGV4dCwgJ2pzJywgdmFsdWUpXG5cdH1cblxuXHRiYWJlbChjb250ZXh0LCB2YWx1ZSkge1xuXHRcdHJldHVybiB0aGlzLmFzc2V0KGNvbnRleHQsICdiYWJlbCcsIHZhbHVlKVxuXHR9XG5cblx0Y29mZmVlKGNvbnRleHQsIHZhbHVlKSB7XG5cdFx0cmV0dXJuIHRoaXMuYXNzZXQoY29udGV4dCwgJ2NvZmZlZScsIHZhbHVlKVxuXHR9XG59XG4iXX0=