21 lines
726 B
JavaScript
21 lines
726 B
JavaScript
|
export default function (source, sourceMap) {
|
||
|
const { implementation, ...options } = this.getOptions();
|
||
|
const callback = this.async();
|
||
|
|
||
|
if (typeof implementation !== 'function') {
|
||
|
throw new TypeError(
|
||
|
`[lightningcss-loader]: The "implementation" option is required and must provide "transform" function of the LightningCSS`,
|
||
|
);
|
||
|
}
|
||
|
|
||
|
const { code, map } = implementation({
|
||
|
filename: this.resourcePath,
|
||
|
code: Buffer.from(source),
|
||
|
sourceMap: this.sourceMap,
|
||
|
inputSourceMap: this.sourceMap && sourceMap ? JSON.stringify(sourceMap) : undefined,
|
||
|
...options,
|
||
|
});
|
||
|
|
||
|
callback(undefined, code.toString(), map && JSON.parse(map.toString()));
|
||
|
}
|