UNPKG

@smythos/sdk

Version:
43 lines (34 loc) 1.66 kB
//!!! DO NOT EDIT THIS FILE, IT IS AUTO-GENERATED !!!// import { LocalStorageConfig } from '@smythos/sre'; import { S3Config } from '@smythos/sre'; import { AccessCandidate } from '@smythos/sre'; import { StorageInstance } from '../../Storage/StorageInstance.class'; import { Scope } from '../SDKTypes'; // Define storage provider settings mapping export type TStorageProviderSettings = { default: {} // Empty config for default provider LocalStorage: LocalStorageConfig & {scope?: Scope | AccessCandidate} S3: S3Config & {scope?: Scope | AccessCandidate} }; // #region [ Handle extendable Storage Providers ] ================================================ // Base provider type derived from settings export type TBuiltinStorageProvider = keyof TStorageProviderSettings; // Extensible interface for custom providers export interface IStorageProviders {} // Combined provider type that can be extended export type TStorageProvider = TBuiltinStorageProvider | keyof IStorageProviders; // For backward compatibility, export the built-in providers as enum-like object export const TStorageProvider: Record<TBuiltinStorageProvider, TBuiltinStorageProvider> = { default: 'default', LocalStorage: 'LocalStorage', S3: 'S3', } as const; // #endregion // Generic type to get settings for a specific provider export type TStorageSettingsFor<T extends keyof TStorageProviderSettings> = TStorageProviderSettings[T]; export type TStorageProviderInstances = { [K in TStorageProvider]: ( settings?: TStorageSettingsFor<K>, scope?: Scope | AccessCandidate ) => StorageInstance; };