feat(core): rebrand to @lossless.zone/objectstorage
- Rename from @lossless.zone/s3container to @lossless.zone/objectstorage - Replace @push.rocks/smarts3 with @push.rocks/smartstorage - Change env var prefix from S3_ to OBJST_ - Rename S3Container class to ObjectStorageContainer - Update web component prefix from s3c- to objst- - Update UI labels, CLI flags, documentation, and Docker config
This commit is contained in:
115
ts_web/dataprovider.ts
Normal file
115
ts_web/dataprovider.ts
Normal file
@@ -0,0 +1,115 @@
|
||||
import * as plugins from './plugins.js';
|
||||
import * as appstate from './appstate.js';
|
||||
import * as interfaces from '../ts_interfaces/index.js';
|
||||
import type { IS3DataProvider } from '@design.estate/dees-catalog';
|
||||
|
||||
const getIdentity = (): interfaces.data.IIdentity => {
|
||||
return appstate.loginStatePart.getState().identity!;
|
||||
};
|
||||
|
||||
export const createDataProvider = (): IS3DataProvider => ({
|
||||
async listObjects(bucket: string, prefix?: string, delimiter?: string) {
|
||||
const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<
|
||||
interfaces.requests.IReq_ListObjects
|
||||
>('/typedrequest', 'listObjects');
|
||||
const response = await typedRequest.fire({
|
||||
identity: getIdentity(),
|
||||
bucketName: bucket,
|
||||
prefix: prefix || '',
|
||||
delimiter: delimiter || '/',
|
||||
});
|
||||
return {
|
||||
objects: response.result.objects.map((obj) => ({
|
||||
key: obj.key,
|
||||
size: obj.size,
|
||||
lastModified: new Date(obj.lastModified).toISOString(),
|
||||
})),
|
||||
prefixes: response.result.commonPrefixes,
|
||||
};
|
||||
},
|
||||
|
||||
async getObject(bucket: string, key: string) {
|
||||
const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<
|
||||
interfaces.requests.IReq_GetObject
|
||||
>('/typedrequest', 'getObject');
|
||||
return await typedRequest.fire({
|
||||
identity: getIdentity(),
|
||||
bucketName: bucket,
|
||||
key,
|
||||
});
|
||||
},
|
||||
|
||||
async putObject(bucket: string, key: string, base64Content: string, contentType: string) {
|
||||
const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<
|
||||
interfaces.requests.IReq_PutObject
|
||||
>('/typedrequest', 'putObject');
|
||||
const response = await typedRequest.fire({
|
||||
identity: getIdentity(),
|
||||
bucketName: bucket,
|
||||
key,
|
||||
base64Content,
|
||||
contentType,
|
||||
});
|
||||
return response.ok;
|
||||
},
|
||||
|
||||
async deleteObject(bucket: string, key: string) {
|
||||
const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<
|
||||
interfaces.requests.IReq_DeleteObject
|
||||
>('/typedrequest', 'deleteObject');
|
||||
const response = await typedRequest.fire({
|
||||
identity: getIdentity(),
|
||||
bucketName: bucket,
|
||||
key,
|
||||
});
|
||||
return response.ok;
|
||||
},
|
||||
|
||||
async deletePrefix(bucket: string, prefix: string) {
|
||||
const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<
|
||||
interfaces.requests.IReq_DeletePrefix
|
||||
>('/typedrequest', 'deletePrefix');
|
||||
const response = await typedRequest.fire({
|
||||
identity: getIdentity(),
|
||||
bucketName: bucket,
|
||||
prefix,
|
||||
});
|
||||
return response.ok;
|
||||
},
|
||||
|
||||
async getObjectUrl(bucket: string, key: string) {
|
||||
const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<
|
||||
interfaces.requests.IReq_GetObjectUrl
|
||||
>('/typedrequest', 'getObjectUrl');
|
||||
const response = await typedRequest.fire({
|
||||
identity: getIdentity(),
|
||||
bucketName: bucket,
|
||||
key,
|
||||
});
|
||||
return response.url;
|
||||
},
|
||||
|
||||
async moveObject(bucket: string, sourceKey: string, destKey: string) {
|
||||
const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<
|
||||
interfaces.requests.IReq_MoveObject
|
||||
>('/typedrequest', 'moveObject');
|
||||
return await typedRequest.fire({
|
||||
identity: getIdentity(),
|
||||
bucketName: bucket,
|
||||
sourceKey,
|
||||
destKey,
|
||||
});
|
||||
},
|
||||
|
||||
async movePrefix(bucket: string, sourcePrefix: string, destPrefix: string) {
|
||||
const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<
|
||||
interfaces.requests.IReq_MovePrefix
|
||||
>('/typedrequest', 'movePrefix');
|
||||
return await typedRequest.fire({
|
||||
identity: getIdentity(),
|
||||
bucketName: bucket,
|
||||
sourcePrefix,
|
||||
destPrefix,
|
||||
});
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user