40 lines
1.5 KiB
JavaScript
40 lines
1.5 KiB
JavaScript
|
"use strict";
|
||
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.transformer = void 0;
|
||
|
const path_1 = __importDefault(require("path"));
|
||
|
const stylus_1 = __importDefault(require("stylus"));
|
||
|
const utils_1 = require("../modules/utils");
|
||
|
const transformer = ({ content, filename, options = {}, }) => {
|
||
|
options = {
|
||
|
paths: (0, utils_1.getIncludePaths)(filename, options.paths),
|
||
|
...options,
|
||
|
};
|
||
|
return new Promise((resolve, reject) => {
|
||
|
const style = (0, stylus_1.default)(content, {
|
||
|
filename,
|
||
|
...options,
|
||
|
}).set('sourcemap', options.sourcemap);
|
||
|
style.render((err, css) => {
|
||
|
var _a;
|
||
|
// istanbul ignore next
|
||
|
if (err)
|
||
|
reject(err);
|
||
|
if ((_a = style.sourcemap) === null || _a === void 0 ? void 0 : _a.sources) {
|
||
|
style.sourcemap.sources = style.sourcemap.sources.map((source) => path_1.default.resolve(source));
|
||
|
}
|
||
|
resolve({
|
||
|
code: css,
|
||
|
map: style.sourcemap,
|
||
|
// .map() necessary for windows compatibility
|
||
|
dependencies: style
|
||
|
.deps(filename)
|
||
|
.map((filePath) => path_1.default.resolve(filePath)),
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
};
|
||
|
exports.transformer = transformer;
|