ervu-account-applications/frontend/normalize-css-path.js

33 lines
1.3 KiB
JavaScript
Raw Permalink Normal View History

2025-02-26 09:47:36 +03:00
"use strict";
exports.__esModule = true;
var fs = require('fs');
var mfeBaseUrlKey = 'MFE_BASE_URL';
var srcUrlRegex = /url\((\\?["'])?(?!data:)\S+(\\?["'])?\)/g;
function normalizeCssPaths(params) {
params.paths = params.paths ? params.paths : [];
params.paths.forEach(function (path) { return normalizeCssPath(path, params.outDir); });
}
exports.normalizeCssPaths = normalizeCssPaths;
function normalizeCssPath(path, outputDirectory) {
console.log("Start processing " + path);
var css = fs.readFileSync(path, 'utf8');
var counter = 0;
var processedCss = css.replace(srcUrlRegex, function (srcUrl) {
if (srcUrl.search(outputDirectory) != -1)
return srcUrl;
var fileName = getFileName(srcUrl);
var processedUrl = "url('" + outputDirectory + "/" + fileName + "')";
counter++;
console.log("Replaced " + srcUrl + " -> " + processedUrl);
return processedUrl;
});
console.log("Replaced " + counter + " urls");
fs.writeFileSync(path, processedCss);
}
function getFileName(srcUrl) {
var url = srcUrl.substring(4, srcUrl.length - 1); // unbox 'url(...)'
url = url.replace(/(\\?["'])/g, '');
var urlPaths = url.split('/');
return urlPaths[urlPaths.length - 1].split('?')[0];
}