grind-assets
Version:
Asset management for Grind
69 lines (52 loc) • 4.72 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Asset = void 0;
class Asset {
constructor(path, compiler) {
this.compiler = null;
this.path = null;
this.path = path;
this.compiler = compiler;
}
compile(context = null, req = null) {
return this.compiler.compile(this.path, context, req);
}
lastModified(newest = 0) {
return this.compiler.lastModified(this.path, newest);
}
compareKind(other) {
const delta = this.kindPriority - other.kindPriority;
if (delta !== 0) {
return delta < 0 ? -1 : 1;
}
return Math.min(1, Math.max(-1, this.path.localeCompare(other.path)));
}
get mime() {
return this.compiler.mime(this);
}
get type() {
return this.compiler.type(this);
}
get extension() {
return this.compiler.extension(this);
}
get kind() {
return this.compiler.kind;
}
get kindPriority() {
switch (this.compiler.kind) {
case 'script':
return -1;
case 'style':
return 5;
case 'raw':
return 10;
default:
return 0;
}
}
}
exports.Asset = Asset;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Bc3NldC5qcyJdLCJuYW1lcyI6WyJBc3NldCIsImNvbnN0cnVjdG9yIiwicGF0aCIsImNvbXBpbGVyIiwiY29tcGlsZSIsImNvbnRleHQiLCJyZXEiLCJsYXN0TW9kaWZpZWQiLCJuZXdlc3QiLCJjb21wYXJlS2luZCIsIm90aGVyIiwiZGVsdGEiLCJraW5kUHJpb3JpdHkiLCJNYXRoIiwibWluIiwibWF4IiwibG9jYWxlQ29tcGFyZSIsIm1pbWUiLCJ0eXBlIiwiZXh0ZW5zaW9uIiwia2luZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFPLE1BQU1BLEtBQU4sQ0FBWTtBQUlsQkMsRUFBQUEsV0FBVyxDQUFDQyxJQUFELEVBQU9DLFFBQVAsRUFBaUI7QUFBQSxTQUg1QkEsUUFHNEIsR0FIakIsSUFHaUI7QUFBQSxTQUY1QkQsSUFFNEIsR0FGckIsSUFFcUI7QUFDM0IsU0FBS0EsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQkEsUUFBaEI7QUFDQTs7QUFFREMsRUFBQUEsT0FBTyxDQUFDQyxPQUFPLEdBQUcsSUFBWCxFQUFpQkMsR0FBRyxHQUFHLElBQXZCLEVBQTZCO0FBQ25DLFdBQU8sS0FBS0gsUUFBTCxDQUFjQyxPQUFkLENBQXNCLEtBQUtGLElBQTNCLEVBQWlDRyxPQUFqQyxFQUEwQ0MsR0FBMUMsQ0FBUDtBQUNBOztBQUVEQyxFQUFBQSxZQUFZLENBQUNDLE1BQU0sR0FBRyxDQUFWLEVBQWE7QUFDeEIsV0FBTyxLQUFLTCxRQUFMLENBQWNJLFlBQWQsQ0FBMkIsS0FBS0wsSUFBaEMsRUFBc0NNLE1BQXRDLENBQVA7QUFDQTs7QUFFREMsRUFBQUEsV0FBVyxDQUFDQyxLQUFELEVBQVE7QUFDbEIsVUFBTUMsS0FBSyxHQUFHLEtBQUtDLFlBQUwsR0FBb0JGLEtBQUssQ0FBQ0UsWUFBeEM7O0FBRUEsUUFBSUQsS0FBSyxLQUFLLENBQWQsRUFBaUI7QUFDaEIsYUFBT0EsS0FBSyxHQUFHLENBQVIsR0FBWSxDQUFDLENBQWIsR0FBaUIsQ0FBeEI7QUFDQTs7QUFFRCxXQUFPRSxJQUFJLENBQUNDLEdBQUwsQ0FBUyxDQUFULEVBQVlELElBQUksQ0FBQ0UsR0FBTCxDQUFTLENBQUMsQ0FBVixFQUFhLEtBQUtiLElBQUwsQ0FBVWMsYUFBVixDQUF3Qk4sS0FBSyxDQUFDUixJQUE5QixDQUFiLENBQVosQ0FBUDtBQUNBOztBQUVPLE1BQUplLElBQUksR0FBRztBQUNWLFdBQU8sS0FBS2QsUUFBTCxDQUFjYyxJQUFkLENBQW1CLElBQW5CLENBQVA7QUFDQTs7QUFFTyxNQUFKQyxJQUFJLEdBQUc7QUFDVixXQUFPLEtBQUtmLFFBQUwsQ0FBY2UsSUFBZCxDQUFtQixJQUFuQixDQUFQO0FBQ0E7O0FBRVksTUFBVEMsU0FBUyxHQUFHO0FBQ2YsV0FBTyxLQUFLaEIsUUFBTCxDQUFjZ0IsU0FBZCxDQUF3QixJQUF4QixDQUFQO0FBQ0E7O0FBRU8sTUFBSkMsSUFBSSxHQUFHO0FBQ1YsV0FBTyxLQUFLakIsUUFBTCxDQUFjaUIsSUFBckI7QUFDQTs7QUFFZSxNQUFaUixZQUFZLEdBQUc7QUFDbEIsWUFBUSxLQUFLVCxRQUFMLENBQWNpQixJQUF0QjtBQUNDLFdBQUssUUFBTDtBQUNDLGVBQU8sQ0FBQyxDQUFSOztBQUNELFdBQUssT0FBTDtBQUNDLGVBQU8sQ0FBUDs7QUFDRCxXQUFLLEtBQUw7QUFDQyxlQUFPLEVBQVA7O0FBQ0Q7QUFDQyxlQUFPLENBQVA7QUFSRjtBQVVBOztBQXREaUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQXNzZXQge1xuXHRjb21waWxlciA9IG51bGxcblx0cGF0aCA9IG51bGxcblxuXHRjb25zdHJ1Y3RvcihwYXRoLCBjb21waWxlcikge1xuXHRcdHRoaXMucGF0aCA9IHBhdGhcblx0XHR0aGlzLmNvbXBpbGVyID0gY29tcGlsZXJcblx0fVxuXG5cdGNvbXBpbGUoY29udGV4dCA9IG51bGwsIHJlcSA9IG51bGwpIHtcblx0XHRyZXR1cm4gdGhpcy5jb21waWxlci5jb21waWxlKHRoaXMucGF0aCwgY29udGV4dCwgcmVxKVxuXHR9XG5cblx0bGFzdE1vZGlmaWVkKG5ld2VzdCA9IDApIHtcblx0XHRyZXR1cm4gdGhpcy5jb21waWxlci5sYXN0TW9kaWZpZWQodGhpcy5wYXRoLCBuZXdlc3QpXG5cdH1cblxuXHRjb21wYXJlS2luZChvdGhlcikge1xuXHRcdGNvbnN0IGRlbHRhID0gdGhpcy5raW5kUHJpb3JpdHkgLSBvdGhlci5raW5kUHJpb3JpdHlcblxuXHRcdGlmIChkZWx0YSAhPT0gMCkge1xuXHRcdFx0cmV0dXJuIGRlbHRhIDwgMCA/IC0xIDogMVxuXHRcdH1cblxuXHRcdHJldHVybiBNYXRoLm1pbigxLCBNYXRoLm1heCgtMSwgdGhpcy5wYXRoLmxvY2FsZUNvbXBhcmUob3RoZXIucGF0aCkpKVxuXHR9XG5cblx0Z2V0IG1pbWUoKSB7XG5cdFx0cmV0dXJuIHRoaXMuY29tcGlsZXIubWltZSh0aGlzKVxuXHR9XG5cblx0Z2V0IHR5cGUoKSB7XG5cdFx0cmV0dXJuIHRoaXMuY29tcGlsZXIudHlwZSh0aGlzKVxuXHR9XG5cblx0Z2V0IGV4dGVuc2lvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5jb21waWxlci5leHRlbnNpb24odGhpcylcblx0fVxuXG5cdGdldCBraW5kKCkge1xuXHRcdHJldHVybiB0aGlzLmNvbXBpbGVyLmtpbmRcblx0fVxuXG5cdGdldCBraW5kUHJpb3JpdHkoKSB7XG5cdFx0c3dpdGNoICh0aGlzLmNvbXBpbGVyLmtpbmQpIHtcblx0XHRcdGNhc2UgJ3NjcmlwdCc6XG5cdFx0XHRcdHJldHVybiAtMVxuXHRcdFx0Y2FzZSAnc3R5bGUnOlxuXHRcdFx0XHRyZXR1cm4gNVxuXHRcdFx0Y2FzZSAncmF3Jzpcblx0XHRcdFx0cmV0dXJuIDEwXG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRyZXR1cm4gMFxuXHRcdH1cblx0fVxufVxuIl19