UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

82 lines (80 loc) 3.07 kB
'use strict'; 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