@nu-art/file-upload
Version:
File Uploader - Express & Typescript based backend framework
28 lines (27 loc) • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModuleFE_Assets = exports.ModuleFE_Assets_Class = exports.dispatch_onAssetsListChanged = void 0;
const frontend_1 = require("@nu-art/thunderstorm/frontend");
const ts_common_1 = require("@nu-art/ts-common");
const shared_1 = require("../../shared");
exports.dispatch_onAssetsListChanged = new frontend_1.ThunderDispatcher('__onAssetsUpdated');
class ModuleFE_Assets_Class extends frontend_1.ModuleFE_BaseApi {
constructor() {
super(shared_1.DBDef_Assets, exports.dispatch_onAssetsListChanged);
this.vv1 = {
getReadSignedUrl: (0, frontend_1.apiWithBody)(shared_1.ApiDef_Assets.vv1.getReadSignedUrl),
};
}
async resolveValidSignedUrl(assetId) {
var _a;
const asset = this.cache.unique(assetId);
const signedUrl = (((_a = asset === null || asset === void 0 ? void 0 : asset.signedUrl) === null || _a === void 0 ? void 0 : _a.validUntil) || 0) > (0, ts_common_1.currentTimeMillis)() ? asset === null || asset === void 0 ? void 0 : asset.signedUrl : undefined;
if (signedUrl)
return signedUrl.url;
const request = this.vv1.getReadSignedUrl({ _id: assetId });
const response = await request.executeSync();
return response.signedUrl;
}
}
exports.ModuleFE_Assets_Class = ModuleFE_Assets_Class;
exports.ModuleFE_Assets = new ModuleFE_Assets_Class();