refactor: front end

Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
2026-03-28 12:47:21 -04:00
parent 28e5cce23a
commit ccb781f933
38 changed files with 4909 additions and 2897 deletions

View File

@@ -1,7 +1,11 @@
/**
* Class model for Provider Interface
*/
import type { ProviderCapabilitiesInterface, ProviderInterface } from "@/types/provider";
import type {
ProviderInterface,
ProviderCapabilitiesInterface
} from "@/types/provider";
export class ProviderObject implements ProviderInterface {
@@ -9,8 +13,8 @@ export class ProviderObject implements ProviderInterface {
constructor() {
this._data = {
'@type': 'files:provider',
id: '',
'@type': 'documents:provider',
identifier: '',
label: '',
capabilities: {},
};
@@ -25,21 +29,16 @@ export class ProviderObject implements ProviderInterface {
return this._data;
}
clone(): ProviderObject {
const cloned = new ProviderObject();
cloned._data = JSON.parse(JSON.stringify(this._data));
return cloned;
capable(capability: keyof ProviderCapabilitiesInterface): boolean {
const value = this._data.capabilities?.[capability];
return value !== undefined && value !== false;
}
capable(capability: keyof ProviderCapabilitiesInterface): boolean {
return !!(this._data.capabilities && this._data.capabilities[capability]);
}
capability(capability: keyof ProviderCapabilitiesInterface): boolean | string[] | Record<string, string> | Record<string, string[]> | undefined {
capability(capability: keyof ProviderCapabilitiesInterface): any | null {
if (this._data.capabilities) {
return this._data.capabilities[capability];
}
return undefined;
return null;
}
/** Immutable Properties */
@@ -48,8 +47,8 @@ export class ProviderObject implements ProviderInterface {
return this._data['@type'];
}
get id(): string {
return this._data.id;
get identifier(): string {
return this._data.identifier;
}
get label(): string {