esbuild-plugin-lit
Version:
Import CSS, SVG, HTML, XLIFF files as tagged-template literals. Optionally minify with esbuild minifier.
34 lines • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CSSLoader = void 0;
const asset_loader_js_1 = require("./asset-loader.js");
class CSSLoader extends asset_loader_js_1.AssetLoader {
extension = /\.css$/;
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.sourcemap = !!build.initialOptions.sourcemap;
}
async load(input, filename) {
let output = this.transform(input, filename);
let sourcemap = "";
const { code, map } = await this.build.esbuild.transform(output, {
loader: "css",
minify: this.minify,
sourcemap: this.sourcemap,
sourcefile: filename,
});
if (this.sourcemap)
sourcemap = this.toSourceMapURL(map);
output = this.sanitize(code);
return `import { css } from '${this.specifier}';
export const styles = css\`${output}\`;
export default styles;${sourcemap}`;
}
}
exports.CSSLoader = CSSLoader;
//# sourceMappingURL=css-loader.js.map