esbuild-plugin-lit
Version:
Import CSS, SVG, HTML, XLIFF files as tagged-template literals. Optionally minify with esbuild minifier.
32 lines • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SVGLoader = void 0;
const asset_loader_js_1 = require("./asset-loader.js");
class SVGLoader extends asset_loader_js_1.AssetLoader {
extension = /\.svg$/;
constructor(build, options = {}, specifier = "lit", minifier) {
super(build, options, specifier, minifier);
if (options.extension)
this.extension = options.extension;
if (options.transform)
this.transform = options.transform;
this.minify = !!build.initialOptions.minify && options.minify !== false &&
!!this.minifier;
}
load(input, filename) {
let output = this.transform(input, filename);
if (this.minify) {
const transformed = this.minifier(output, this.options.svgo || {})
.data;
if (!transformed)
return Promise.resolve(``); //TODO: error
output = transformed;
}
output = this.sanitize(output);
return Promise.resolve(`import { html } from '${this.specifier}';
export const template = html\`${output}\`;
export default template;`);
}
}
exports.SVGLoader = SVGLoader;
//# sourceMappingURL=svg-loader.js.map