@nu-art/file-upload
Version:
File Uploader - Express & Typescript based backend framework
24 lines • 1.12 kB
JavaScript
import { apiWithBody, ModuleFE_BaseApi, ThunderDispatcher } from '@nu-art/thunderstorm/frontend/index';
import { currentTimeMillis } from '@nu-art/ts-common';
import { ApiDef_Assets, DBDef_Assets } from '../../shared/index.js';
export const dispatch_onAssetsListChanged = new ThunderDispatcher('__onAssetsUpdated');
export class ModuleFE_Assets_Class extends ModuleFE_BaseApi {
vv1;
constructor() {
super(DBDef_Assets, dispatch_onAssetsListChanged);
this.vv1 = {
getReadSignedUrl: apiWithBody(ApiDef_Assets.vv1.getReadSignedUrl),
};
}
async resolveValidSignedUrl(assetId) {
const asset = this.cache.unique(assetId);
const signedUrl = (asset?.signedUrl?.validUntil || 0) > currentTimeMillis() ? asset?.signedUrl : undefined;
if (signedUrl)
return signedUrl.url;
const request = this.vv1.getReadSignedUrl({ _id: assetId });
const response = await request.executeSync();
return response.signedUrl;
}
}
export const ModuleFE_Assets = new ModuleFE_Assets_Class();
//# sourceMappingURL=ModuleFE_Assets.js.map