st-bundle
Version:
CLI for watching and bundling SpringType projects.
54 lines (53 loc) • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const cssResolveModule_1 = require("../cssResolveModule");
const cssResolveURL_1 = require("../cssResolveURL");
const cssSourceMap_1 = require("../cssSourceMap");
const stylusRenderer_1 = require("./stylusRenderer");
async function renderModule(props) {
const data = await stylusRenderer_1.stylusRender({
contents: props.module.contents,
withSourceMaps: props.module.isCSSSourceMapRequired(),
paths: props.options.paths,
filePath: props.module.props.absPath,
onImportString: str => {
if (props.options.macros) {
return cssResolveModule_1.replaceCSSMacros(str, props.options.macros);
}
},
onURL: (filePath, value) => {
const result = cssResolveURL_1.resolveCSSResource(value, {
contents: '',
ctx: props.ctx,
filePath: filePath,
options: props.options,
});
if (result) {
return result.publicPath;
}
else {
props.ctx.log.warn(`Unable to resolve ${value} in ${filePath}`);
}
},
onImportFile: item => {
if (!item.isExternal) {
if (props.options.breakDependantsCache) {
props.module.breakDependantsCache = true;
}
props.module.addWeakReference(item.value);
}
},
});
let sourceMap;
if (data.map) {
sourceMap = cssSourceMap_1.alignCSSSourceMap({ module: props.module, sourceMap: data.map, ctx: props.ctx });
}
return { css: data.css, map: sourceMap };
}
function stylusHandler(props) {
const { ctx, module } = props;
return {
render: async () => renderModule({ ctx, module, options: props.options }),
};
}
exports.stylusHandler = stylusHandler;