UNPKG

grind-assets

Version:
77 lines (61 loc) 7.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BrowserifyStage = void 0; var _Stage = require("./Stage.js"); var _makeSyntaxError = require("../../Errors/makeSyntaxError.js"); var _optional = require("../../Support/optional.js"); function _isnil(val) { return val === null || typeof val === 'undefined'; } const Browserify = (0, _optional.optional)('browserify', '>=16.2.0'); const Babelify = (0, _optional.optional)('babelify', '>=10.0.0'); class BrowserifyStage extends _Stage.Stage { constructor(app, sourceMaps, { enabled = true, ...options } = {}) { super(app, sourceMaps); this.options = null; this.browserifyOptions = { debug: this.sourceMaps === 'auto', ...options }; this.enabled = enabled; } compile(pathname, stream = null) { Browserify.assert(); if (this.handleBabel && _isnil(Babelify)) { Babelify.assert(); } const browserify = Browserify.pkg({ ...this.options, basedir: this.app.paths.base() }); if (this.handleBabel) { browserify.transform('babelify'); } browserify.add(stream || pathname); return new Promise((resolve, reject) => { browserify.bundle((err, contents) => { if (!_isnil(err)) { if (!(err instanceof SyntaxError)) { return reject(err); } let message = err.message; message = err.message.split(/\n/)[0]; message = message.substring(message.indexOf(':') + 1).trim(); const loc = err.loc || {}; return (0, _makeSyntaxError.makeSyntaxError)(this.app, { message, lineNumber: loc.line, columnNumber: loc.column, causedBy: err }).catch(reject).then(reject); } resolve(contents); }); }); } } exports.BrowserifyStage = BrowserifyStage; BrowserifyStage.configName = 'browserify'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9Db21waWxlcnMvQmFiZWxDb21waWxlci9Ccm93c2VyaWZ5U3RhZ2UuanMiXSwibmFtZXMiOlsiQnJvd3NlcmlmeSIsIkJhYmVsaWZ5IiwiQnJvd3NlcmlmeVN0YWdlIiwiU3RhZ2UiLCJjb25zdHJ1Y3RvciIsImFwcCIsInNvdXJjZU1hcHMiLCJlbmFibGVkIiwib3B0aW9ucyIsImJyb3dzZXJpZnlPcHRpb25zIiwiZGVidWciLCJjb21waWxlIiwicGF0aG5hbWUiLCJzdHJlYW0iLCJhc3NlcnQiLCJoYW5kbGVCYWJlbCIsImJyb3dzZXJpZnkiLCJwa2ciLCJiYXNlZGlyIiwicGF0aHMiLCJiYXNlIiwidHJhbnNmb3JtIiwiYWRkIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJidW5kbGUiLCJlcnIiLCJjb250ZW50cyIsIlN5bnRheEVycm9yIiwibWVzc2FnZSIsInNwbGl0Iiwic3Vic3RyaW5nIiwiaW5kZXhPZiIsInRyaW0iLCJsb2MiLCJsaW5lTnVtYmVyIiwibGluZSIsImNvbHVtbk51bWJlciIsImNvbHVtbiIsImNhdXNlZEJ5IiwiY2F0Y2giLCJ0aGVuIiwiY29uZmlnTmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBS0EsTUFBTUEsVUFBVSxHQUFHLHdCQUFTLFlBQVQsRUFBdUIsVUFBdkIsQ0FBbkI7QUFDQSxNQUFNQyxRQUFRLEdBQUcsd0JBQVMsVUFBVCxFQUFxQixVQUFyQixDQUFqQjs7QUFFTyxNQUFNQyxlQUFOLFNBQThCQyxZQUE5QixDQUFvQztBQUkxQ0MsRUFBQUEsV0FBVyxDQUFDQyxHQUFELEVBQU1DLFVBQU4sRUFBa0I7QUFBRUMsSUFBQUEsT0FBTyxHQUFHLElBQVo7QUFBa0IsT0FBR0M7QUFBckIsTUFBaUMsRUFBbkQsRUFBdUQ7QUFDakUsVUFBTUgsR0FBTixFQUFXQyxVQUFYO0FBRGlFLFNBRmxFRSxPQUVrRSxHQUZ4RCxJQUV3RDtBQUdqRSxTQUFLQyxpQkFBTCxHQUF5QjtBQUN4QkMsTUFBQUEsS0FBSyxFQUFFLEtBQUtKLFVBQUwsS0FBb0IsTUFESDtBQUV4QixTQUFHRTtBQUZxQixLQUF6QjtBQUtBLFNBQUtELE9BQUwsR0FBZUEsT0FBZjtBQUNBOztBQUVESSxFQUFBQSxPQUFPLENBQUNDLFFBQUQsRUFBV0MsTUFBTSxHQUFHLElBQXBCLEVBQTBCO0FBQ2hDYixJQUFBQSxVQUFVLENBQUNjLE1BQVg7O0FBRUEsUUFBSSxLQUFLQyxXQUFMLFdBQW9CZCxRQUFwQixDQUFKLEVBQXdDO0FBQ3ZDQSxNQUFBQSxRQUFRLENBQUNhLE1BQVQ7QUFDQTs7QUFFRCxVQUFNRSxVQUFVLEdBQUdoQixVQUFVLENBQUNpQixHQUFYLENBQWUsRUFDakMsR0FBRyxLQUFLVCxPQUR5QjtBQUVqQ1UsTUFBQUEsT0FBTyxFQUFFLEtBQUtiLEdBQUwsQ0FBU2MsS0FBVCxDQUFlQyxJQUFmO0FBRndCLEtBQWYsQ0FBbkI7O0FBS0EsUUFBSSxLQUFLTCxXQUFULEVBQXNCO0FBQ3JCQyxNQUFBQSxVQUFVLENBQUNLLFNBQVgsQ0FBcUIsVUFBckI7QUFDQTs7QUFFREwsSUFBQUEsVUFBVSxDQUFDTSxHQUFYLENBQWVULE1BQU0sSUFBSUQsUUFBekI7QUFFQSxXQUFPLElBQUlXLE9BQUosQ0FBWSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7QUFDdkNULE1BQUFBLFVBQVUsQ0FBQ1UsTUFBWCxDQUFrQixDQUFDQyxHQUFELEVBQU1DLFFBQU4sS0FBbUI7QUFDcEMsWUFBSSxRQUFDRCxHQUFELENBQUosRUFBZ0I7QUFDZixjQUFJLEVBQUVBLEdBQUcsWUFBWUUsV0FBakIsQ0FBSixFQUFtQztBQUNsQyxtQkFBT0osTUFBTSxDQUFDRSxHQUFELENBQWI7QUFDQTs7QUFFRCxjQUFJRyxPQUFPLEdBQUdILEdBQUcsQ0FBQ0csT0FBbEI7QUFDQUEsVUFBQUEsT0FBTyxHQUFHSCxHQUFHLENBQUNHLE9BQUosQ0FBWUMsS0FBWixDQUFrQixJQUFsQixFQUF3QixDQUF4QixDQUFWO0FBQ0FELFVBQUFBLE9BQU8sR0FBR0EsT0FBTyxDQUFDRSxTQUFSLENBQWtCRixPQUFPLENBQUNHLE9BQVIsQ0FBZ0IsR0FBaEIsSUFBdUIsQ0FBekMsRUFBNENDLElBQTVDLEVBQVY7QUFFQSxnQkFBTUMsR0FBRyxHQUFHUixHQUFHLENBQUNRLEdBQUosSUFBVyxFQUF2QjtBQUVBLGlCQUFPLHNDQUFnQixLQUFLOUIsR0FBckIsRUFBMEI7QUFDaEN5QixZQUFBQSxPQURnQztBQUVoQ00sWUFBQUEsVUFBVSxFQUFFRCxHQUFHLENBQUNFLElBRmdCO0FBR2hDQyxZQUFBQSxZQUFZLEVBQUVILEdBQUcsQ0FBQ0ksTUFIYztBQUloQ0MsWUFBQUEsUUFBUSxFQUFFYjtBQUpzQixXQUExQixFQU1MYyxLQU5LLENBTUNoQixNQU5ELEVBT0xpQixJQVBLLENBT0FqQixNQVBBLENBQVA7QUFRQTs7QUFFREQsUUFBQUEsT0FBTyxDQUFDSSxRQUFELENBQVA7QUFDQSxPQXZCRDtBQXdCQSxLQXpCTSxDQUFQO0FBMEJBOztBQTNEeUM7OztBQUE5QjFCLGUsQ0FDTHlDLFUsR0FBYSxZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuL1N0YWdlJ1xuXG5pbXBvcnQgJy4uLy4uL0Vycm9ycy9tYWtlU3ludGF4RXJyb3InXG5pbXBvcnQgJy4uLy4uL1N1cHBvcnQvb3B0aW9uYWwnXG5cbmNvbnN0IEJyb3dzZXJpZnkgPSBvcHRpb25hbCgnYnJvd3NlcmlmeScsICc+PTE2LjIuMCcpXG5jb25zdCBCYWJlbGlmeSA9IG9wdGlvbmFsKCdiYWJlbGlmeScsICc+PTEwLjAuMCcpXG5cbmV4cG9ydCBjbGFzcyBCcm93c2VyaWZ5U3RhZ2UgZXh0ZW5kcyBTdGFnZSB7XG5cdHN0YXRpYyBjb25maWdOYW1lID0gJ2Jyb3dzZXJpZnknXG5cdG9wdGlvbnMgPSBudWxsXG5cblx0Y29uc3RydWN0b3IoYXBwLCBzb3VyY2VNYXBzLCB7IGVuYWJsZWQgPSB0cnVlLCAuLi5vcHRpb25zIH0gPSB7fSkge1xuXHRcdHN1cGVyKGFwcCwgc291cmNlTWFwcylcblxuXHRcdHRoaXMuYnJvd3NlcmlmeU9wdGlvbnMgPSB7XG5cdFx0XHRkZWJ1ZzogdGhpcy5zb3VyY2VNYXBzID09PSAnYXV0bycsXG5cdFx0XHQuLi5vcHRpb25zLFxuXHRcdH1cblxuXHRcdHRoaXMuZW5hYmxlZCA9IGVuYWJsZWRcblx0fVxuXG5cdGNvbXBpbGUocGF0aG5hbWUsIHN0cmVhbSA9IG51bGwpIHtcblx0XHRCcm93c2VyaWZ5LmFzc2VydCgpXG5cblx0XHRpZiAodGhpcy5oYW5kbGVCYWJlbCAmJiBCYWJlbGlmeS5pc05pbCkge1xuXHRcdFx0QmFiZWxpZnkuYXNzZXJ0KClcblx0XHR9XG5cblx0XHRjb25zdCBicm93c2VyaWZ5ID0gQnJvd3NlcmlmeS5wa2coe1xuXHRcdFx0Li4udGhpcy5vcHRpb25zLFxuXHRcdFx0YmFzZWRpcjogdGhpcy5hcHAucGF0aHMuYmFzZSgpLFxuXHRcdH0pXG5cblx0XHRpZiAodGhpcy5oYW5kbGVCYWJlbCkge1xuXHRcdFx0YnJvd3NlcmlmeS50cmFuc2Zvcm0oJ2JhYmVsaWZ5Jylcblx0XHR9XG5cblx0XHRicm93c2VyaWZ5LmFkZChzdHJlYW0gfHwgcGF0aG5hbWUpXG5cblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0YnJvd3NlcmlmeS5idW5kbGUoKGVyciwgY29udGVudHMpID0+IHtcblx0XHRcdFx0aWYgKCFlcnIuaXNOaWwpIHtcblx0XHRcdFx0XHRpZiAoIShlcnIgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHtcblx0XHRcdFx0XHRcdHJldHVybiByZWplY3QoZXJyKVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGxldCBtZXNzYWdlID0gZXJyLm1lc3NhZ2Vcblx0XHRcdFx0XHRtZXNzYWdlID0gZXJyLm1lc3NhZ2Uuc3BsaXQoL1xcbi8pWzBdXG5cdFx0XHRcdFx0bWVzc2FnZSA9IG1lc3NhZ2Uuc3Vic3RyaW5nKG1lc3NhZ2UuaW5kZXhPZignOicpICsgMSkudHJpbSgpXG5cblx0XHRcdFx0XHRjb25zdCBsb2MgPSBlcnIubG9jIHx8IHt9XG5cblx0XHRcdFx0XHRyZXR1cm4gbWFrZVN5bnRheEVycm9yKHRoaXMuYXBwLCB7XG5cdFx0XHRcdFx0XHRtZXNzYWdlLFxuXHRcdFx0XHRcdFx0bGluZU51bWJlcjogbG9jLmxpbmUsXG5cdFx0XHRcdFx0XHRjb2x1bW5OdW1iZXI6IGxvYy5jb2x1bW4sXG5cdFx0XHRcdFx0XHRjYXVzZWRCeTogZXJyLFxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHQuY2F0Y2gocmVqZWN0KVxuXHRcdFx0XHRcdFx0LnRoZW4ocmVqZWN0KVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmVzb2x2ZShjb250ZW50cylcblx0XHRcdH0pXG5cdFx0fSlcblx0fVxufVxuIl19