UNPKG

grind-assets

Version:
76 lines (59 loc) 7.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CssPostCssPostProcessor = void 0; var _PostProcessor = require("./PostProcessor.js"); var _makeSyntaxError = require("../Errors/makeSyntaxError.js"); var _optional = require("../Support/optional.js"); function _isnil(val) { return val === null || typeof val === 'undefined'; } const PostCSS = (0, _optional.optional)('postcss', '>=7.0.0'); class CssPostCssPostProcessor extends _PostProcessor.PostProcessor { constructor(app, shouldOptimize, sourceMaps) { super(app, shouldOptimize, sourceMaps); this.priority = 100; this.supportedExtensions = ['css']; this.plugins = []; this.options = {}; const plugins = app.config.get('assets.post_processors.css.postcss', {}); for (const [plugin, config] of Object.entries(plugins)) { if (config === false) { continue; } this.plugins.push([(0, _optional.optional)(plugin), config]); } } process(sourcePath, targetPath, contents) { if (this.plugins.length === 0 || !PostCSS.resolve()) { return Promise.resolve(contents); } const plugins = []; for (const [plugin, config] of this.plugins) { if (!plugin.resolve()) { continue; } if (!_isnil(config) && typeof config === 'object') { plugins.push(plugin.pkg(config)); } else { plugins.push(plugin.pkg); } } return PostCSS.pkg(plugins).process(contents, { from: sourcePath, to: targetPath, map: this.sourceMaps === false ? false : { inline: true } }).then(result => result.css).catch(async err => { if (typeof err.file !== 'string') { err.file = (err.input || {}).file || sourcePath; } throw await (0, _makeSyntaxError.makeSyntaxError)(this.app, { message: err.reason || err.message, causedBy: err }); }); } } exports.CssPostCssPostProcessor = CssPostCssPostProcessor; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Qb3N0UHJvY2Vzc29ycy9Dc3NQb3N0Q3NzUG9zdFByb2Nlc3Nvci5qcyJdLCJuYW1lcyI6WyJQb3N0Q1NTIiwiQ3NzUG9zdENzc1Bvc3RQcm9jZXNzb3IiLCJQb3N0UHJvY2Vzc29yIiwiY29uc3RydWN0b3IiLCJhcHAiLCJzaG91bGRPcHRpbWl6ZSIsInNvdXJjZU1hcHMiLCJwcmlvcml0eSIsInN1cHBvcnRlZEV4dGVuc2lvbnMiLCJwbHVnaW5zIiwib3B0aW9ucyIsImNvbmZpZyIsImdldCIsInBsdWdpbiIsIk9iamVjdCIsImVudHJpZXMiLCJwdXNoIiwicHJvY2VzcyIsInNvdXJjZVBhdGgiLCJ0YXJnZXRQYXRoIiwiY29udGVudHMiLCJsZW5ndGgiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInBrZyIsImZyb20iLCJ0byIsIm1hcCIsImlubGluZSIsInRoZW4iLCJyZXN1bHQiLCJjc3MiLCJjYXRjaCIsImVyciIsImZpbGUiLCJpbnB1dCIsIm1lc3NhZ2UiLCJyZWFzb24iLCJjYXVzZWRCeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBS0EsTUFBTUEsT0FBTyxHQUFHLHdCQUFTLFNBQVQsRUFBb0IsU0FBcEIsQ0FBaEI7O0FBRU8sTUFBTUMsdUJBQU4sU0FBc0NDLDRCQUF0QyxDQUFvRDtBQU0xREMsRUFBQUEsV0FBVyxDQUFDQyxHQUFELEVBQU1DLGNBQU4sRUFBc0JDLFVBQXRCLEVBQWtDO0FBQzVDLFVBQU1GLEdBQU4sRUFBV0MsY0FBWCxFQUEyQkMsVUFBM0I7QUFENEMsU0FMN0NDLFFBSzZDLEdBTGxDLEdBS2tDO0FBQUEsU0FKN0NDLG1CQUk2QyxHQUp2QixDQUFDLEtBQUQsQ0FJdUI7QUFBQSxTQUg3Q0MsT0FHNkMsR0FIbkMsRUFHbUM7QUFBQSxTQUY3Q0MsT0FFNkMsR0FGbkMsRUFFbUM7QUFHNUMsVUFBTUQsT0FBTyxHQUFHTCxHQUFHLENBQUNPLE1BQUosQ0FBV0MsR0FBWCxDQUFlLG9DQUFmLEVBQXFELEVBQXJELENBQWhCOztBQUVBLFNBQUssTUFBTSxDQUFDQyxNQUFELEVBQVNGLE1BQVQsQ0FBWCxJQUErQkcsTUFBTSxDQUFDQyxPQUFQLENBQWVOLE9BQWYsQ0FBL0IsRUFBd0Q7QUFDdkQsVUFBSUUsTUFBTSxLQUFLLEtBQWYsRUFBc0I7QUFDckI7QUFDQTs7QUFFRCxXQUFLRixPQUFMLENBQWFPLElBQWIsQ0FBa0IsQ0FBQyx3QkFBU0gsTUFBVCxDQUFELEVBQW1CRixNQUFuQixDQUFsQjtBQUNBO0FBQ0Q7O0FBRURNLEVBQUFBLE9BQU8sQ0FBQ0MsVUFBRCxFQUFhQyxVQUFiLEVBQXlCQyxRQUF6QixFQUFtQztBQUN6QyxRQUFJLEtBQUtYLE9BQUwsQ0FBYVksTUFBYixLQUF3QixDQUF4QixJQUE2QixDQUFDckIsT0FBTyxDQUFDc0IsT0FBUixFQUFsQyxFQUFxRDtBQUNwRCxhQUFPQyxPQUFPLENBQUNELE9BQVIsQ0FBZ0JGLFFBQWhCLENBQVA7QUFDQTs7QUFFRCxVQUFNWCxPQUFPLEdBQUcsRUFBaEI7O0FBRUEsU0FBSyxNQUFNLENBQUNJLE1BQUQsRUFBU0YsTUFBVCxDQUFYLElBQStCLEtBQUtGLE9BQXBDLEVBQTZDO0FBQzVDLFVBQUksQ0FBQ0ksTUFBTSxDQUFDUyxPQUFQLEVBQUwsRUFBdUI7QUFDdEI7QUFDQTs7QUFFRCxVQUFJLFFBQUNYLE1BQUQsS0FBaUIsT0FBT0EsTUFBUCxLQUFrQixRQUF2QyxFQUFpRDtBQUNoREYsUUFBQUEsT0FBTyxDQUFDTyxJQUFSLENBQWFILE1BQU0sQ0FBQ1csR0FBUCxDQUFXYixNQUFYLENBQWI7QUFDQSxPQUZELE1BRU87QUFDTkYsUUFBQUEsT0FBTyxDQUFDTyxJQUFSLENBQWFILE1BQU0sQ0FBQ1csR0FBcEI7QUFDQTtBQUNEOztBQUVELFdBQU94QixPQUFPLENBQUN3QixHQUFSLENBQVlmLE9BQVosRUFDTFEsT0FESyxDQUNHRyxRQURILEVBQ2E7QUFDbEJLLE1BQUFBLElBQUksRUFBRVAsVUFEWTtBQUVsQlEsTUFBQUEsRUFBRSxFQUFFUCxVQUZjO0FBR2xCUSxNQUFBQSxHQUFHLEVBQ0YsS0FBS3JCLFVBQUwsS0FBb0IsS0FBcEIsR0FDRyxLQURILEdBRUc7QUFDQXNCLFFBQUFBLE1BQU0sRUFBRTtBQURSO0FBTmMsS0FEYixFQVdMQyxJQVhLLENBV0FDLE1BQU0sSUFBSUEsTUFBTSxDQUFDQyxHQVhqQixFQVlMQyxLQVpLLENBWUMsTUFBTUMsR0FBTixJQUFhO0FBQ25CLFVBQUksT0FBT0EsR0FBRyxDQUFDQyxJQUFYLEtBQW9CLFFBQXhCLEVBQWtDO0FBQ2pDRCxRQUFBQSxHQUFHLENBQUNDLElBQUosR0FBVyxDQUFDRCxHQUFHLENBQUNFLEtBQUosSUFBYSxFQUFkLEVBQWtCRCxJQUFsQixJQUEwQmhCLFVBQXJDO0FBQ0E7O0FBRUQsWUFBTSxNQUFNLHNDQUFnQixLQUFLZCxHQUFyQixFQUEwQjtBQUNyQ2dDLFFBQUFBLE9BQU8sRUFBRUgsR0FBRyxDQUFDSSxNQUFKLElBQWNKLEdBQUcsQ0FBQ0csT0FEVTtBQUVyQ0UsUUFBQUEsUUFBUSxFQUFFTDtBQUYyQixPQUExQixDQUFaO0FBSUEsS0FyQkssQ0FBUDtBQXNCQTs7QUE3RHlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuL1Bvc3RQcm9jZXNzb3InXG5cbmltcG9ydCAnLi4vRXJyb3JzL21ha2VTeW50YXhFcnJvcidcbmltcG9ydCAnLi4vU3VwcG9ydC9vcHRpb25hbCdcblxuY29uc3QgUG9zdENTUyA9IG9wdGlvbmFsKCdwb3N0Y3NzJywgJz49Ny4wLjAnKVxuXG5leHBvcnQgY2xhc3MgQ3NzUG9zdENzc1Bvc3RQcm9jZXNzb3IgZXh0ZW5kcyBQb3N0UHJvY2Vzc29yIHtcblx0cHJpb3JpdHkgPSAxMDBcblx0c3VwcG9ydGVkRXh0ZW5zaW9ucyA9IFsnY3NzJ11cblx0cGx1Z2lucyA9IFtdXG5cdG9wdGlvbnMgPSB7fVxuXG5cdGNvbnN0cnVjdG9yKGFwcCwgc2hvdWxkT3B0aW1pemUsIHNvdXJjZU1hcHMpIHtcblx0XHRzdXBlcihhcHAsIHNob3VsZE9wdGltaXplLCBzb3VyY2VNYXBzKVxuXG5cdFx0Y29uc3QgcGx1Z2lucyA9IGFwcC5jb25maWcuZ2V0KCdhc3NldHMucG9zdF9wcm9jZXNzb3JzLmNzcy5wb3N0Y3NzJywge30pXG5cblx0XHRmb3IgKGNvbnN0IFtwbHVnaW4sIGNvbmZpZ10gb2YgT2JqZWN0LmVudHJpZXMocGx1Z2lucykpIHtcblx0XHRcdGlmIChjb25maWcgPT09IGZhbHNlKSB7XG5cdFx0XHRcdGNvbnRpbnVlXG5cdFx0XHR9XG5cblx0XHRcdHRoaXMucGx1Z2lucy5wdXNoKFtvcHRpb25hbChwbHVnaW4pLCBjb25maWddKVxuXHRcdH1cblx0fVxuXG5cdHByb2Nlc3Moc291cmNlUGF0aCwgdGFyZ2V0UGF0aCwgY29udGVudHMpIHtcblx0XHRpZiAodGhpcy5wbHVnaW5zLmxlbmd0aCA9PT0gMCB8fCAhUG9zdENTUy5yZXNvbHZlKCkpIHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoY29udGVudHMpXG5cdFx0fVxuXG5cdFx0Y29uc3QgcGx1Z2lucyA9IFtdXG5cblx0XHRmb3IgKGNvbnN0IFtwbHVnaW4sIGNvbmZpZ10gb2YgdGhpcy5wbHVnaW5zKSB7XG5cdFx0XHRpZiAoIXBsdWdpbi5yZXNvbHZlKCkpIHtcblx0XHRcdFx0Y29udGludWVcblx0XHRcdH1cblxuXHRcdFx0aWYgKCFjb25maWcuaXNOaWwgJiYgdHlwZW9mIGNvbmZpZyA9PT0gJ29iamVjdCcpIHtcblx0XHRcdFx0cGx1Z2lucy5wdXNoKHBsdWdpbi5wa2coY29uZmlnKSlcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHBsdWdpbnMucHVzaChwbHVnaW4ucGtnKVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBQb3N0Q1NTLnBrZyhwbHVnaW5zKVxuXHRcdFx0LnByb2Nlc3MoY29udGVudHMsIHtcblx0XHRcdFx0ZnJvbTogc291cmNlUGF0aCxcblx0XHRcdFx0dG86IHRhcmdldFBhdGgsXG5cdFx0XHRcdG1hcDpcblx0XHRcdFx0XHR0aGlzLnNvdXJjZU1hcHMgPT09IGZhbHNlXG5cdFx0XHRcdFx0XHQ/IGZhbHNlXG5cdFx0XHRcdFx0XHQ6IHtcblx0XHRcdFx0XHRcdFx0XHRpbmxpbmU6IHRydWUsXG5cdFx0XHRcdFx0XHQgIH0sXG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4ocmVzdWx0ID0+IHJlc3VsdC5jc3MpXG5cdFx0XHQuY2F0Y2goYXN5bmMgZXJyID0+IHtcblx0XHRcdFx0aWYgKHR5cGVvZiBlcnIuZmlsZSAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRlcnIuZmlsZSA9IChlcnIuaW5wdXQgfHwge30pLmZpbGUgfHwgc291cmNlUGF0aFxuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGhyb3cgYXdhaXQgbWFrZVN5bnRheEVycm9yKHRoaXMuYXBwLCB7XG5cdFx0XHRcdFx0bWVzc2FnZTogZXJyLnJlYXNvbiB8fCBlcnIubWVzc2FnZSxcblx0XHRcdFx0XHRjYXVzZWRCeTogZXJyLFxuXHRcdFx0XHR9KVxuXHRcdFx0fSlcblx0fVxufVxuIl19