scriptable-testlab
Version:
A lightweight, efficient tool designed to manage and update scripts for Scriptable.
45 lines (35 loc) • 918 B
text/typescript
import {AbsImage} from 'scriptable-abstract';
import {MockData} from '../data';
import {MockSize} from '../ui/size';
interface ImageMockState {
size: Size;
bytes: Data;
}
const DEFAULT_STATE: ImageMockState = {
size: new MockSize(0, 0),
bytes: MockData.fromString(''),
};
export class MockImage extends AbsImage<ImageMockState> implements Image {
constructor() {
super(DEFAULT_STATE);
}
get size(): Size {
return this.state.size;
}
getBytes(): Data {
return this.state.bytes;
}
// Static methods
static fromData(data: Data): MockImage {
const image = new MockImage();
image.setState({bytes: data});
return image;
}
static fromFile(_filePath: string): MockImage {
return new MockImage();
}
static fromBase64String(base64String: string): MockImage {
const data = MockData.fromBase64String(base64String);
return MockImage.fromData(data);
}
}