2018-01-23 01:33:12 +00:00
|
|
|
import { IMediaData } from "./data";
|
2017-03-25 21:50:33 +00:00
|
|
|
|
2021-03-18 02:48:37 +00:00
|
|
|
export interface IMediaTransformation {
|
2021-03-15 02:41:37 +00:00
|
|
|
readonly width: number;
|
|
|
|
readonly height: number;
|
|
|
|
readonly flip?: {
|
|
|
|
readonly vertical?: boolean;
|
|
|
|
readonly horizontal?: boolean;
|
|
|
|
};
|
|
|
|
readonly rotation?: number;
|
|
|
|
}
|
|
|
|
|
2017-03-25 21:50:33 +00:00
|
|
|
export class Media {
|
2022-09-15 20:00:50 +01:00
|
|
|
// eslint-disable-next-line functional/prefer-readonly-type
|
2018-01-29 01:55:25 +00:00
|
|
|
private readonly map: Map<string, IMediaData>;
|
2017-03-25 21:50:33 +00:00
|
|
|
|
2022-08-31 07:52:27 +01:00
|
|
|
public constructor() {
|
2017-12-30 21:18:55 +00:00
|
|
|
this.map = new Map<string, IMediaData>();
|
2017-03-25 21:50:33 +00:00
|
|
|
}
|
|
|
|
|
2021-03-18 02:48:37 +00:00
|
|
|
public addImage(key: string, mediaData: IMediaData): void {
|
|
|
|
this.map.set(key, mediaData);
|
|
|
|
}
|
2017-03-25 21:50:33 +00:00
|
|
|
|
2021-03-18 02:48:37 +00:00
|
|
|
public get Array(): readonly IMediaData[] {
|
|
|
|
return Array.from(this.map.values());
|
2017-03-25 21:50:33 +00:00
|
|
|
}
|
|
|
|
}
|