????
Current Path : C:/inetpub/vhost/invest.gdtsolutions.vn/api/node_modules/@jimp/custom/types/ |
Current File : C:/inetpub/vhost/invest.gdtsolutions.vn/api/node_modules/@jimp/custom/types/test.ts |
import configure from "@jimp/custom"; import gif from "@jimp/gif"; import png from "@jimp/png"; import displace from "@jimp/plugin-displace"; import resize from "@jimp/plugin-resize"; import scale from "@jimp/plugin-scale"; import types from "@jimp/types"; import plugins from "@jimp/plugins"; import * as Jimp from "jimp"; // configure should return a valid Jimp type with addons const CustomJimp = configure({ types: [gif, png], plugins: [displace, resize], }); test("should function the same as the `jimp` types", () => { const FullCustomJimp = configure({ types: [types], plugins: [plugins], }); const jimpInst = new FullCustomJimp("test"); // Main Jimp export should already have all of these already applied // $ExpectError jimpInst.read("Test"); jimpInst.displace(jimpInst, 2); jimpInst.resize(40, 40); jimpInst.displace(jimpInst, 2); jimpInst.shadow((err, val, coords) => {}); jimpInst.fishEye({ r: 12 }); jimpInst.circle({ radius: 12, x: 12, y: 12 }); // $ExpectError jimpInst.PNG_FILTER_NONE; // $ExpectError jimpInst.test; // $ExpectError jimpInst.func(); // Main Jimp export should already have all of these already applied FullCustomJimp.read("Test"); // $ExpectType 0 FullCustomJimp.PNG_FILTER_NONE; // $ExpectError FullCustomJimp.test; // $ExpectError FullCustomJimp.func(); test("can clone properly", async () => { const baseImage = await FullCustomJimp.read("filename"); const cloneBaseImage = baseImage.clone(); // $ExpectType number cloneBaseImage._deflateLevel; test("can handle `this` returns on the core type properly", () => { // $ExpectType number cloneBaseImage.posterize(3)._quality; }); test("can handle `this` returns properly", () => { cloneBaseImage .resize(1, 1) .crop(0, 0, 0, 0) .mask(cloneBaseImage, 2, 2) .print("a" as any, 2, 2, "a" as any) .resize(1, 1) .quality(1) .deflateLevel(2)._filterType; }); test("can handle imageCallbacks `this` properly", () => { cloneBaseImage.rgba(false, (_, jimpCBIn) => { // $ExpectError jimpCBIn.read("Test"); jimpCBIn.displace(jimpInst, 2); jimpCBIn.resize(40, 40); // $ExpectType number jimpCBIn._filterType; // $ExpectError jimpCBIn.test; // $ExpectError jimpCBIn.func(); }); }); }); test("Can handle callback with constructor", () => { const myBmpBuffer: Buffer = {} as any; Jimp.read(myBmpBuffer, (err, cbJimpInst) => { // $ExpectError cbJimpInst.read("Test"); cbJimpInst.displace(jimpInst, 2); cbJimpInst.resize(40, 40); // $ExpectType number cbJimpInst._filterType; // $ExpectError cbJimpInst.test; // $ExpectError cbJimpInst.func(); }); }); }); test("can handle custom jimp", () => { // Constants from types should be applied // $ExpectType 0 CustomJimp.PNG_FILTER_NONE; // Core functions should still work from Jimp CustomJimp.read("Test"); // Constants should not(?) be applied from ill-formed plugins // $ExpectError CustomJimp.displace(CustomJimp, 2); // Methods should be applied from well-formed plugins only to the instance // $ExpectError CustomJimp.resize(40, 40); // Constants should be applied from well-formed plugins CustomJimp.RESIZE_NEAREST_NEIGHBOR; // $ExpectError CustomJimp.test; // $ExpectError CustomJimp.func(); const Jiimp = new CustomJimp("test"); // Methods from types should be applied Jiimp.deflateLevel(4); // Constants from types should be applied to the static only // $ExpectError Jiimp.PNG_FILTER_NONE; // Core functions should still work from Jimp Jiimp.getPixelColor(1, 1); // Constants should be applied from ill-formed plugins Jiimp.displace(Jiimp, 2); // Methods should be applied from well-formed plugins Jiimp.resize(40, 40); // Constants should not be applied to the object // $ExpectError Jiimp.RESIZE_NEAREST_NEIGHBOR; // $ExpectError Jiimp.test; // $ExpectError Jiimp.func(); }); test("can compose", () => { const OtherCustomJimp = configure( { plugins: [scale], }, CustomJimp ); // Constants from types should be applied // $ExpectType 0 OtherCustomJimp.PNG_FILTER_NONE; // Core functions should still work from Jimp OtherCustomJimp.read("Test"); // Constants should not be applied to the static instance from ill-formed plugins // $ExpectError OtherCustomJimp.displace(OtherCustomJimp, 2); // Methods should not be applied to the static instance from well-formed plugins // $ExpectError OtherCustomJimp.resize(40, 40); // Constants should be applied from well-formed plugins OtherCustomJimp.RESIZE_NEAREST_NEIGHBOR; // $ExpectError OtherCustomJimp.test; // $ExpectError OtherCustomJimp.func(); const Jiimp = new OtherCustomJimp("test"); // Methods from types should be applied Jiimp.deflateLevel(4); // Constants from types should not be applied to objects // $ExpectError Jiimp.PNG_FILTER_NONE; // Methods from new plugins should be applied Jiimp.scale(3); // Methods from types should be applied Jiimp.filterType(4); // Core functions should still work from Jimp Jiimp.getPixelColor(1, 1); // Constants should be applied from ill-formed plugins Jiimp.displace(Jiimp, 2); // Methods should be applied from well-formed plugins Jiimp.resize(40, 40); // Constants should not be applied from well-formed plugins to objects // $ExpectError Jiimp.RESIZE_NEAREST_NEIGHBOR; // $ExpectError Jiimp.test; // $ExpectError Jiimp.func(); }); test("can handle only plugins", () => { const PluginsJimp = configure({ plugins: [plugins], }); // Core functions should still work from Jimp PluginsJimp.read("Test"); // Constants should not be applied from ill-formed plugins // $ExpectError PluginsJimp.displace(PluginsJimp, 2); // Methods should be not be applied to from well-formed plugins to the top level // $ExpectError PluginsJimp.resize(40, 40); // Constants should be applied from well-formed plugins // $ExpectType "nearestNeighbor" PluginsJimp.RESIZE_NEAREST_NEIGHBOR; // $ExpectError PluginsJimp.test; // $ExpectError PluginsJimp.func(); const Jiimp = new PluginsJimp("test"); // Core functions should still work from Jimp Jiimp.getPixelColor(1, 1); // Constants should be applied from ill-formed plugins Jiimp.displace(Jiimp, 2); // Methods should be applied from well-formed plugins Jiimp.resize(40, 40); // Constants should be not applied to objects from well-formed plugins // $ExpectError Jiimp.RESIZE_NEAREST_NEIGHBOR; // $ExpectError Jiimp.test; // $ExpectError Jiimp.func(); }); test("can handle only all types", () => { const TypesJimp = configure({ types: [types], }); // Methods from types should not be applied // $ExpectError TypesJimp.filterType(4); // Constants from types should be applied // $ExpectType 0 TypesJimp.PNG_FILTER_NONE; // $ExpectError TypesJimp.test; // $ExpectError TypesJimp.func(); const Jiimp = new TypesJimp("test"); // Methods from types should be applied Jiimp.filterType(4); // Constants from types should be not applied to objects // $ExpectError Jiimp.PNG_FILTER_NONE; // $ExpectError Jiimp.test; // $ExpectError Jiimp.func(); }); test("can handle only one type", () => { const PngJimp = configure({ types: [png], }); // Constants from other types should be not applied // $ExpectError PngJimp.MIME_TIFF; // Constants from types should be applied // $ExpectType 0 PngJimp.PNG_FILTER_NONE; // $ExpectError PngJimp.test; // $ExpectError PngJimp.func(); const Jiimp = new PngJimp("test"); // Constants from other types should be not applied // $ExpectError Jiimp.MIME_TIFF; // Constants from types should not be applied to objects // $ExpectError Jiimp.PNG_FILTER_NONE; // $ExpectError Jiimp.test; // $ExpectError Jiimp.func(); }); test("can handle only one plugin", () => { const ResizeJimp = configure({ plugins: [resize], }); // Constants from other plugins should be not applied // $ExpectError ResizeJimp.FONT_SANS_8_BLACK; // Constants from plugin should be applied // $ExpectType "nearestNeighbor" ResizeJimp.RESIZE_NEAREST_NEIGHBOR; // $ExpectError ResizeJimp.resize(2, 2); // $ExpectError ResizeJimp.test; // $ExpectError ResizeJimp.func(); const Jiimp: InstanceType<typeof ResizeJimp> = new ResizeJimp("test"); // Constants from other plugins should be not applied // $ExpectError Jiimp.FONT_SANS_8_BLACK; // Constants from plugin should not be applied to the object // $ExpectError Jiimp.RESIZE_NEAREST_NEIGHBOR; Jiimp.resize(2, 2); // $ExpectError Jiimp.test; // $ExpectError Jiimp.func(); }); test("Can handle appendConstructorOption", () => { const AppendJimp = configure({}); AppendJimp.appendConstructorOption( "Name of Option", (args) => args.hasSomeCustomThing, function (resolve, reject, args) { // $ExpectError this.bitmap = 3; // $ExpectError AppendJimp.resize(2, 2); resolve(); } ); });