- ✅ Ticket 1.1: Estructura Clean Architecture en backend - ✅ Ticket 1.2: Schemas Zod compartidos - ✅ Ticket 1.3: Refactorización drugs.ts (1362 → 8 archivos modulares) - ✅ Ticket 1.4: Refactorización procedures.ts (3583 → 6 archivos modulares) - ✅ Ticket 1.5: Eliminación de duplicidades (~50 líneas) Cambios principales: - Creada estructura Clean Architecture en backend/src/ - Schemas Zod compartidos en backend/src/shared/schemas/ - Refactorización modular de drugs y procedures - Utilidades genéricas en src/utils/ (filter, validation) - Eliminados scripts obsoletos y documentación antigua - Corregidos errores: QueryClient, import test-error-handling - Build verificado y funcionando correctamente
49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
import DOMException from '../exception/DOMException.js';
|
|
import Blob from '../file/Blob.js';
|
|
/**
|
|
* Clipboard Item API.
|
|
*
|
|
* Reference:
|
|
* https://developer.mozilla.org/en-US/docs/Web/API/ClipboardItem.
|
|
*/
|
|
export default class ClipboardItem {
|
|
presentationStyle = 'unspecified';
|
|
#data;
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @param data Data.
|
|
* @param [options] Options.
|
|
* @param [options.presentationStyle] Presentation style.
|
|
*/
|
|
constructor(data, options) {
|
|
this.#data = data;
|
|
if (options?.presentationStyle) {
|
|
this.presentationStyle = options.presentationStyle;
|
|
}
|
|
}
|
|
/**
|
|
* Returns types.
|
|
*
|
|
* @returns Types.
|
|
*/
|
|
get types() {
|
|
return Object.keys(this.#data);
|
|
}
|
|
/**
|
|
* Returns data by type.
|
|
*
|
|
* @param type Type.
|
|
* @returns Data.
|
|
*/
|
|
async getType(type) {
|
|
if (!this.#data[type]) {
|
|
throw new DOMException(`Failed to execute 'getType' on 'ClipboardItem': The type '${type}' was not found`);
|
|
}
|
|
if (this.#data[type] instanceof Blob) {
|
|
return this.#data[type];
|
|
}
|
|
return new Blob([await this.#data[type]], { type });
|
|
}
|
|
}
|
|
//# sourceMappingURL=ClipboardItem.js.map
|