hastily
Version:
express middleware to simulate fastly cdn
194 lines • 12.6 kB
JavaScript
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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