grind-assets
Version:
Asset management for Grind
77 lines (61 loc) • 7.25 kB
JavaScript
;
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