UNPKG

scriptable-testlab

Version:

A lightweight, efficient tool designed to manage and update scripts for Scriptable.

67 lines (54 loc) 1.57 kB
import {AbsData} from 'scriptable-abstract'; interface DataMockState { buffer: Buffer; } const DEFAULT_STATE: DataMockState = { buffer: Buffer.alloc(0), }; export class MockData extends AbsData<DataMockState> { constructor(input?: string | number[] | Buffer) { super(DEFAULT_STATE); let buffer: Buffer; if (input instanceof Buffer) { buffer = input; } else if (Array.isArray(input)) { buffer = Buffer.from(input); } else if (typeof input === 'string') { buffer = Buffer.from(input); } else { buffer = Buffer.alloc(0); } this.setState({buffer}); } // Convert data to base64 encoded string toBase64String(): string { return this.state.buffer.toString('base64'); } // Convert data to raw string toRawString(): string { return this.state.buffer.toString('utf8'); } // Get bytes as number array getBytes(): number[] { return Array.from(this.state.buffer); } // Get the length of data in bytes getLength(): number { return this.state.buffer.length; } // Create Data from base64 string static fromBase64String(base64String: string): Data { const buffer = Buffer.from(base64String, 'base64'); return new MockData(buffer); } // Create Data from file at path static fromFile(_filePath: string): Data { // In mock environment, we'll return empty data // Real implementation would read from file return new MockData(); } // Create Data from raw string static fromString(string: string): Data { return new MockData(string); } }