UNPKG

hastily

Version:

express middleware to simulate fastly cdn

194 lines 12.6 kB
import { Duplex } from 'stream'; import { URLSearchParams } from 'url'; import FastlyParams from '../fastly-params'; class MockSharp extends Duplex { constructor() { super(...arguments); this.calls = []; } removeAlpha() { throw new Error('Method not implemented.'); } ensureAlpha() { throw new Error('Method not implemented.'); } extractChannel(..._) { throw new Error('Method not implemented.'); } joinChannel(..._) { throw new Error('Method not implemented.'); } bandbool(..._) { throw new Error('Method not implemented.'); } tint(..._) { throw new Error('Method not implemented.'); } greyscale(..._) { throw new Error('Method not implemented.'); } grayscale(..._) { throw new Error('Method not implemented.'); } toColourspace(..._) { throw new Error('Method not implemented.'); } toColorspace(..._) { throw new Error('Method not implemented.'); } composite(..._) { throw new Error('Method not implemented.'); } clone() { throw new Error('Method not implemented.'); } metadata(..._) { throw new Error('Method not implemented.'); } stats(..._) { throw new Error('Method not implemented.'); } limitInputPixels(..._) { throw new Error('Method not implemented.'); } sequentialRead(..._) { throw new Error('Method not implemented.'); } rotate(_angle, _options) { return this.track('rotate', arguments); } flip(_flip) { return this.track('flip', arguments); } flop(_flop) { return this.track('flop', arguments); } sharpen(_sigma, _flat, _jagged) { return this.track('sharpen', arguments); } median(_size) { return this.track('median', arguments); } blur(_sigma) { return this.track('blur', arguments); } flatten(_flatten) { return this.track('flatten', arguments); } gamma(_gamma) { return this.track('gamma', arguments); } negate(_negate) { return this.track('negate', arguments); } normalise(_normalise) { return this.track('normalise', arguments); } normalize(_normalize) { return this.track('normalize', arguments); } convolve(_kernel) { return this.track('convolve', arguments); } threshold(_threshold, _options) { return this.track('threshold', arguments); } boolean(_operand, _operator, _options) { return this.track('boolean', arguments); } linear(_a, _b) { return this.track('linear', arguments); } recomb(_matrix) { return this.track('recomb', arguments); } // public recomb( // _inputMatrix: [ // [number, number, number], // [number, number, number], // [number, number, number] // ] // ) { // return this.track('recomb', arguments); // } modulate(..._) { throw new Error('Method not implemented.'); } toFile(..._) { throw new Error('Method not implemented.'); } toBuffer(options) { if (typeof options === 'function') { setImmediate(() => options(new Error(), Buffer.from([]), {})); return this; } if (options === undefined) { return Promise.resolve(Buffer.from([])); } const resolved = { data: Buffer.from([]), info: { channels: 2, format: 'nothing', height: 10, premultiplied: false, size: 10, width: 10, }, }; return Promise.resolve(resolved); } withMetadata(..._) { throw new Error('Method not implemented.'); } jpeg(..._) { throw new Error('Method not implemented.'); } png(..._) { throw new Error('Method not implemented.'); } webp(..._) { throw new Error('Method not implemented.'); } tiff(..._) { throw new Error('Method not implemented.'); } raw() { throw new Error('Method not implemented.'); } toFormat(_format, _options) { return this.track('toFormat', arguments); } tile(_tile) { return this.track('tile', arguments); } resize(_width, _height, _options) { return this.track('resize', arguments); } extend(_extend) { return this.track('extend', arguments); } extract(_region) { return this.track('extract', arguments); } trim(_threshold) { return this.track('threshold', arguments); } track(name, args) { this.calls.push([name, [...args]]); return this; } } export function mockParams(query) { return new FastlyParams(new Map(new URLSearchParams(query).entries()), {}, {}); } export function runMapperWithParams(mapper, query) { const mock = new MockSharp(); const params = mockParams(query); return { mapped: mapper(mock, params), mock, warnings: params.getWarnings(), }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX190ZXN0aGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbWFwcGVycy9fX3Rlc3RoZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN0QyxPQUFPLFlBQVksTUFBTSxrQkFBa0IsQ0FBQztBQWM1QyxNQUFNLFNBQVUsU0FBUSxNQUFNO0lBQTlCOztRQUNTLFVBQUssR0FBZ0IsRUFBRSxDQUFDO0lBcU9qQyxDQUFDO0lBcE9RLFdBQVc7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDTSxXQUFXO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ00sY0FBYyxDQUFDLEdBQUcsQ0FBUTtRQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNNLFdBQVcsQ0FBQyxHQUFHLENBQVE7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDTSxRQUFRLENBQUMsR0FBRyxDQUFRO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ00sSUFBSSxDQUFDLEdBQUcsQ0FBUTtRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNNLFNBQVMsQ0FBQyxHQUFHLENBQVE7UUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDTSxTQUFTLENBQUMsR0FBRyxDQUFRO1FBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJB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