grind-assets
Version:
Asset management for Grind
43 lines (32 loc) • 4.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.StoneExtension = void 0;
class StoneExtension {
static extend(view) {
view.extend('asset', (context, args) => this.asset(args));
for (const directive of ['style', 'css', 'sass', 'scss', 'styl', 'stylus', 'less']) {
view.extend(directive, (context, args) => this.append(`'${directive}', ${args}`));
}
for (const directive of ['script', 'js', 'babel', 'coffee']) {
view.extend(directive, (context, args) => this.append(`'${directive}', ${args}`));
}
}
static asset(rawArgs) {
const args = rawArgs.trim().split(/,/, 2).map(value => value.trim());
const type = args[0].toLowerCase();
if (type === "'render'" || type === '"render"' || type === '`render`') {
return this.render(args[1]);
}
return this.append(rawArgs);
}
static append(args) {
return `_assetContainer.append(${args});`;
}
static render(type) {
return `output += _assetContainer.render(${type});`;
}
}
exports.StoneExtension = StoneExtension;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9WaWV3L1N0b25lRXh0ZW5zaW9uLmpzIl0sIm5hbWVzIjpbIlN0b25lRXh0ZW5zaW9uIiwiZXh0ZW5kIiwidmlldyIsImNvbnRleHQiLCJhcmdzIiwiYXNzZXQiLCJkaXJlY3RpdmUiLCJhcHBlbmQiLCJyYXdBcmdzIiwidHJpbSIsInNwbGl0IiwibWFwIiwidmFsdWUiLCJ0eXBlIiwidG9Mb3dlckNhc2UiLCJyZW5kZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBTyxNQUFNQSxjQUFOLENBQXFCO0FBQ2QsU0FBTkMsTUFBTSxDQUFDQyxJQUFELEVBQU87QUFDbkJBLElBQUFBLElBQUksQ0FBQ0QsTUFBTCxDQUFZLE9BQVosRUFBcUIsQ0FBQ0UsT0FBRCxFQUFVQyxJQUFWLEtBQW1CLEtBQUtDLEtBQUwsQ0FBV0QsSUFBWCxDQUF4Qzs7QUFFQSxTQUFLLE1BQU1FLFNBQVgsSUFBd0IsQ0FBQyxPQUFELEVBQVUsS0FBVixFQUFpQixNQUFqQixFQUF5QixNQUF6QixFQUFpQyxNQUFqQyxFQUF5QyxRQUF6QyxFQUFtRCxNQUFuRCxDQUF4QixFQUFvRjtBQUNuRkosTUFBQUEsSUFBSSxDQUFDRCxNQUFMLENBQVlLLFNBQVosRUFBdUIsQ0FBQ0gsT0FBRCxFQUFVQyxJQUFWLEtBQW1CLEtBQUtHLE1BQUwsQ0FBYSxJQUFHRCxTQUFVLE1BQUtGLElBQUssRUFBcEMsQ0FBMUM7QUFDQTs7QUFFRCxTQUFLLE1BQU1FLFNBQVgsSUFBd0IsQ0FBQyxRQUFELEVBQVcsSUFBWCxFQUFpQixPQUFqQixFQUEwQixRQUExQixDQUF4QixFQUE2RDtBQUM1REosTUFBQUEsSUFBSSxDQUFDRCxNQUFMLENBQVlLLFNBQVosRUFBdUIsQ0FBQ0gsT0FBRCxFQUFVQyxJQUFWLEtBQW1CLEtBQUtHLE1BQUwsQ0FBYSxJQUFHRCxTQUFVLE1BQUtGLElBQUssRUFBcEMsQ0FBMUM7QUFDQTtBQUNEOztBQUVXLFNBQUxDLEtBQUssQ0FBQ0csT0FBRCxFQUFVO0FBQ3JCLFVBQU1KLElBQUksR0FBR0ksT0FBTyxDQUNsQkMsSUFEVyxHQUVYQyxLQUZXLENBRUwsR0FGSyxFQUVBLENBRkEsRUFHWEMsR0FIVyxDQUdQQyxLQUFLLElBQUlBLEtBQUssQ0FBQ0gsSUFBTixFQUhGLENBQWI7QUFJQSxVQUFNSSxJQUFJLEdBQUdULElBQUksQ0FBQyxDQUFELENBQUosQ0FBUVUsV0FBUixFQUFiOztBQUVBLFFBQUlELElBQUksS0FBSyxVQUFULElBQXVCQSxJQUFJLEtBQUssVUFBaEMsSUFBOENBLElBQUksS0FBSyxVQUEzRCxFQUF1RTtBQUN0RSxhQUFPLEtBQUtFLE1BQUwsQ0FBWVgsSUFBSSxDQUFDLENBQUQsQ0FBaEIsQ0FBUDtBQUNBOztBQUVELFdBQU8sS0FBS0csTUFBTCxDQUFZQyxPQUFaLENBQVA7QUFDQTs7QUFFWSxTQUFORCxNQUFNLENBQUNILElBQUQsRUFBTztBQUNuQixXQUFRLDBCQUF5QkEsSUFBSyxJQUF0QztBQUNBOztBQUVZLFNBQU5XLE1BQU0sQ0FBQ0YsSUFBRCxFQUFPO0FBQ25CLFdBQVEsb0NBQW1DQSxJQUFLLElBQWhEO0FBQ0E7O0FBakMwQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTdG9uZUV4dGVuc2lvbiB7XG5cdHN0YXRpYyBleHRlbmQodmlldykge1xuXHRcdHZpZXcuZXh0ZW5kKCdhc3NldCcsIChjb250ZXh0LCBhcmdzKSA9PiB0aGlzLmFzc2V0KGFyZ3MpKVxuXG5cdFx0Zm9yIChjb25zdCBkaXJlY3RpdmUgb2YgWydzdHlsZScsICdjc3MnLCAnc2FzcycsICdzY3NzJywgJ3N0eWwnLCAnc3R5bHVzJywgJ2xlc3MnXSkge1xuXHRcdFx0dmlldy5leHRlbmQoZGlyZWN0aXZlLCAoY29udGV4dCwgYXJncykgPT4gdGhpcy5hcHBlbmQoYCcke2RpcmVjdGl2ZX0nLCAke2FyZ3N9YCkpXG5cdFx0fVxuXG5cdFx0Zm9yIChjb25zdCBkaXJlY3RpdmUgb2YgWydzY3JpcHQnLCAnanMnLCAnYmFiZWwnLCAnY29mZmVlJ10pIHtcblx0XHRcdHZpZXcuZXh0ZW5kKGRpcmVjdGl2ZSwgKGNvbnRleHQsIGFyZ3MpID0+IHRoaXMuYXBwZW5kKGAnJHtkaXJlY3RpdmV9JywgJHthcmdzfWApKVxuXHRcdH1cblx0fVxuXG5cdHN0YXRpYyBhc3NldChyYXdBcmdzKSB7XG5cdFx0Y29uc3QgYXJncyA9IHJhd0FyZ3Ncblx0XHRcdC50cmltKClcblx0XHRcdC5zcGxpdCgvLC8sIDIpXG5cdFx0XHQubWFwKHZhbHVlID0+IHZhbHVlLnRyaW0oKSlcblx0XHRjb25zdCB0eXBlID0gYXJnc1swXS50b0xvd2VyQ2FzZSgpXG5cblx0XHRpZiAodHlwZSA9PT0gXCIncmVuZGVyJ1wiIHx8IHR5cGUgPT09ICdcInJlbmRlclwiJyB8fCB0eXBlID09PSAnYHJlbmRlcmAnKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5yZW5kZXIoYXJnc1sxXSlcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5hcHBlbmQocmF3QXJncylcblx0fVxuXG5cdHN0YXRpYyBhcHBlbmQoYXJncykge1xuXHRcdHJldHVybiBgX2Fzc2V0Q29udGFpbmVyLmFwcGVuZCgke2FyZ3N9KTtgXG5cdH1cblxuXHRzdGF0aWMgcmVuZGVyKHR5cGUpIHtcblx0XHRyZXR1cm4gYG91dHB1dCArPSBfYXNzZXRDb250YWluZXIucmVuZGVyKCR7dHlwZX0pO2Bcblx0fVxufVxuIl19