@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
82 lines (80 loc) • 3.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const buffer_1 = require("buffer");
const path_1 = tslib_1.__importDefault(require("path"));
const plugin_error_1 = tslib_1.__importDefault(require("plugin-error"));
const through2_1 = tslib_1.__importDefault(require("through2"));
const vinyl_1 = tslib_1.__importDefault(require("vinyl"));
const util = tslib_1.__importStar(require("../utilities"));
const SvgCode = tslib_1.__importStar(require("./svg-code-convert"));
const PLUGIN_NAME = 'gulp-svg-code';
/**
* Plugin level function
*/
function gulpSvgCode() {
// eslint-disable-next-line unused-imports/no-unused-vars
function extendError(pError, error) {
if (error && (typeof error === 'object')) {
['name', 'errno'].forEach(function (property) {
if (property in error) {
this[property] = error[property];
}
}, pError);
}
return pError;
}
let pathPrefix = null;
const collection = {};
return through2_1.default.obj(function (file, enc, cb) {
let error = null;
try {
const path = path_1.default.parse(file.path);
if (path.ext === '.svg') {
if (pathPrefix === null) {
pathPrefix = path.dir;
}
else {
const segments = path.dir.split('\\');
const segPrefix = pathPrefix.split('\\');
const newPrefix = [];
for (let i = 0; i < segPrefix.length; i++) {
if (segments[i].toLocaleUpperCase() !== segPrefix[i].toLocaleUpperCase()) {
pathPrefix = newPrefix.join('\\');
break;
}
newPrefix.push(segments[i]);
}
}
const data = file.contents.toString('utf8');
collection[file.path] = data;
}
}
catch (e) {
error = (!e.plugin || (e.plugin !== PLUGIN_NAME)) ?
util.extendError(new plugin_error_1.default({ plugin: PLUGIN_NAME, message: e.message }), e) : e;
}
return cb(error);
}, function (cb) {
const converter = new SvgCode.SvgCodeConverter();
converter.contentReset();
converter.generate(collection, pathPrefix);
const cssFile = new vinyl_1.default({
cwd: '/',
base: pathPrefix,
path: pathPrefix + '\\svg.css',
contents: buffer_1.Buffer.from(converter.contentCss, 'utf8')
});
this.push(cssFile);
const tsFile = new vinyl_1.default({
cwd: '/',
base: pathPrefix,
path: pathPrefix + '\\svg.ts',
contents: buffer_1.Buffer.from(converter.contentTs, 'utf8')
});
this.push(tsFile);
cb();
});
}
module.exports = gulpSvgCode;
//# sourceMappingURL=index.js.map