grind-assets
Version:
Asset management for Grind
47 lines (36 loc) • 4.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.BaseCommand = void 0;
var _grindCli = require("grind-cli");
var _grindSupport = require("grind-support");
const path = require('path');
class BaseCommand extends _grindCli.Command {
constructor(...args) {
super(...args);
this.sourcePath = null;
this.publishPath = null;
}
ready() {
this.sourcePath = this.app.paths.base(this.app.config.get('assets.paths.source'));
this.publishPath = this.app.paths.base(this.app.config.get('assets.paths.publish'));
return super.ready();
}
async removeAsset(asset) {
const assetPath = path.join(this.sourcePath, asset);
const mapPath = `${assetPath}.map`;
const hasMap = await _grindSupport.FS.exists(mapPath);
const promises = [_grindSupport.FS.unlink(assetPath)];
if (hasMap) {
promises.push(_grindSupport.FS.unlink(mapPath));
}
try {
return await Promise.all(promises);
} catch (err) {
Log.comment('Unable to remove', asset, err.message);
}
}
}
exports.BaseCommand = BaseCommand;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db21tYW5kcy9CYXNlQ29tbWFuZC5qcyJdLCJuYW1lcyI6WyJwYXRoIiwicmVxdWlyZSIsIkJhc2VDb21tYW5kIiwiQ29tbWFuZCIsInNvdXJjZVBhdGgiLCJwdWJsaXNoUGF0aCIsInJlYWR5IiwiYXBwIiwicGF0aHMiLCJiYXNlIiwiY29uZmlnIiwiZ2V0IiwicmVtb3ZlQXNzZXQiLCJhc3NldCIsImFzc2V0UGF0aCIsImpvaW4iLCJtYXBQYXRoIiwiaGFzTWFwIiwiRlMiLCJleGlzdHMiLCJwcm9taXNlcyIsInVubGluayIsInB1c2giLCJQcm9taXNlIiwiYWxsIiwiZXJyIiwiTG9nIiwiY29tbWVudCIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQSxNQUFNQSxJQUFJLEdBQUdDLE9BQU8sQ0FBQyxNQUFELENBQXBCOztBQUVPLE1BQU1DLFdBQU4sU0FBMEJDLGlCQUExQixDQUFrQztBQUFBO0FBQUE7QUFBQSxTQUN4Q0MsVUFEd0MsR0FDM0IsSUFEMkI7QUFBQSxTQUV4Q0MsV0FGd0MsR0FFMUIsSUFGMEI7QUFBQTs7QUFJeENDLEVBQUFBLEtBQUssR0FBRztBQUNQLFNBQUtGLFVBQUwsR0FBa0IsS0FBS0csR0FBTCxDQUFTQyxLQUFULENBQWVDLElBQWYsQ0FBb0IsS0FBS0YsR0FBTCxDQUFTRyxNQUFULENBQWdCQyxHQUFoQixDQUFvQixxQkFBcEIsQ0FBcEIsQ0FBbEI7QUFDQSxTQUFLTixXQUFMLEdBQW1CLEtBQUtFLEdBQUwsQ0FBU0MsS0FBVCxDQUFlQyxJQUFmLENBQW9CLEtBQUtGLEdBQUwsQ0FBU0csTUFBVCxDQUFnQkMsR0FBaEIsQ0FBb0Isc0JBQXBCLENBQXBCLENBQW5CO0FBRUEsV0FBTyxNQUFNTCxLQUFOLEVBQVA7QUFDQTs7QUFFZ0IsUUFBWE0sV0FBVyxDQUFDQyxLQUFELEVBQVE7QUFDeEIsVUFBTUMsU0FBUyxHQUFHZCxJQUFJLENBQUNlLElBQUwsQ0FBVSxLQUFLWCxVQUFmLEVBQTJCUyxLQUEzQixDQUFsQjtBQUNBLFVBQU1HLE9BQU8sR0FBSSxHQUFFRixTQUFVLE1BQTdCO0FBRUEsVUFBTUcsTUFBTSxHQUFHLE1BQU1DLGlCQUFHQyxNQUFILENBQVVILE9BQVYsQ0FBckI7QUFDQSxVQUFNSSxRQUFRLEdBQUcsQ0FBQ0YsaUJBQUdHLE1BQUgsQ0FBVVAsU0FBVixDQUFELENBQWpCOztBQUVBLFFBQUlHLE1BQUosRUFBWTtBQUNYRyxNQUFBQSxRQUFRLENBQUNFLElBQVQsQ0FBY0osaUJBQUdHLE1BQUgsQ0FBVUwsT0FBVixDQUFkO0FBQ0E7O0FBRUQsUUFBSTtBQUNILGFBQU8sTUFBTU8sT0FBTyxDQUFDQyxHQUFSLENBQVlKLFFBQVosQ0FBYjtBQUNBLEtBRkQsQ0FFRSxPQUFPSyxHQUFQLEVBQVk7QUFDYkMsTUFBQUEsR0FBRyxDQUFDQyxPQUFKLENBQVksa0JBQVosRUFBZ0NkLEtBQWhDLEVBQXVDWSxHQUFHLENBQUNHLE9BQTNDO0FBQ0E7QUFDRDs7QUEzQnVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2dyaW5kLWNsaSdcbmltcG9ydCB7IEZTIH0gZnJvbSAnZ3JpbmQtc3VwcG9ydCdcblxuY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKVxuXG5leHBvcnQgY2xhc3MgQmFzZUNvbW1hbmQgZXh0ZW5kcyBDb21tYW5kIHtcblx0c291cmNlUGF0aCA9IG51bGxcblx0cHVibGlzaFBhdGggPSBudWxsXG5cblx0cmVhZHkoKSB7XG5cdFx0dGhpcy5zb3VyY2VQYXRoID0gdGhpcy5hcHAucGF0aHMuYmFzZSh0aGlzLmFwcC5jb25maWcuZ2V0KCdhc3NldHMucGF0aHMuc291cmNlJykpXG5cdFx0dGhpcy5wdWJsaXNoUGF0aCA9IHRoaXMuYXBwLnBhdGhzLmJhc2UodGhpcy5hcHAuY29uZmlnLmdldCgnYXNzZXRzLnBhdGhzLnB1Ymxpc2gnKSlcblxuXHRcdHJldHVybiBzdXBlci5yZWFkeSgpXG5cdH1cblxuXHRhc3luYyByZW1vdmVBc3NldChhc3NldCkge1xuXHRcdGNvbnN0IGFzc2V0UGF0aCA9IHBhdGguam9pbih0aGlzLnNvdXJjZVBhdGgsIGFzc2V0KVxuXHRcdGNvbnN0IG1hcFBhdGggPSBgJHthc3NldFBhdGh9Lm1hcGBcblxuXHRcdGNvbnN0IGhhc01hcCA9IGF3YWl0IEZTLmV4aXN0cyhtYXBQYXRoKVxuXHRcdGNvbnN0IHByb21pc2VzID0gW0ZTLnVubGluayhhc3NldFBhdGgpXVxuXG5cdFx0aWYgKGhhc01hcCkge1xuXHRcdFx0cHJvbWlzZXMucHVzaChGUy51bmxpbmsobWFwUGF0aCkpXG5cdFx0fVxuXG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcblx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdExvZy5jb21tZW50KCdVbmFibGUgdG8gcmVtb3ZlJywgYXNzZXQsIGVyci5tZXNzYWdlKVxuXHRcdH1cblx0fVxufVxuIl19