yeet
This commit is contained in:
74
node_modules/@jimp/custom/src/index.js
generated
vendored
Normal file
74
node_modules/@jimp/custom/src/index.js
generated
vendored
Normal file
@ -0,0 +1,74 @@
|
||||
import Jimp, {
|
||||
addType,
|
||||
addJimpMethods,
|
||||
addConstants,
|
||||
jimpEvChange
|
||||
} from '@jimp/core';
|
||||
|
||||
export default function configure(configuration, jimpInstance = Jimp) {
|
||||
const jimpConfig = {
|
||||
hasAlpha: {},
|
||||
encoders: {},
|
||||
decoders: {},
|
||||
class: {},
|
||||
constants: {}
|
||||
};
|
||||
|
||||
function addToConfig(newConfig) {
|
||||
Object.entries(newConfig).forEach(([key, value]) => {
|
||||
jimpConfig[key] = {
|
||||
...jimpConfig[key],
|
||||
...value
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
function addImageType(typeModule) {
|
||||
const type = typeModule();
|
||||
|
||||
if (Array.isArray(type.mime)) {
|
||||
addType(...type.mime);
|
||||
} else {
|
||||
Object.entries(type.mime).forEach(mimeType => addType(...mimeType));
|
||||
}
|
||||
|
||||
delete type.mime;
|
||||
addToConfig(type);
|
||||
}
|
||||
|
||||
function addPlugin(pluginModule) {
|
||||
const plugin = pluginModule(jimpEvChange) || {};
|
||||
if (!plugin.class && !plugin.constants) {
|
||||
// Default to class function
|
||||
addToConfig({ class: plugin });
|
||||
} else {
|
||||
addToConfig(plugin);
|
||||
}
|
||||
}
|
||||
|
||||
if (configuration.types) {
|
||||
configuration.types.forEach(addImageType);
|
||||
|
||||
jimpInstance.decoders = {
|
||||
...jimpInstance.decoders,
|
||||
...jimpConfig.decoders
|
||||
};
|
||||
jimpInstance.encoders = {
|
||||
...jimpInstance.encoders,
|
||||
...jimpConfig.encoders
|
||||
};
|
||||
jimpInstance.hasAlpha = {
|
||||
...jimpInstance.hasAlpha,
|
||||
...jimpConfig.hasAlpha
|
||||
};
|
||||
}
|
||||
|
||||
if (configuration.plugins) {
|
||||
configuration.plugins.forEach(addPlugin);
|
||||
}
|
||||
|
||||
addJimpMethods(jimpConfig.class, jimpInstance);
|
||||
addConstants(jimpConfig.constants, jimpInstance);
|
||||
|
||||
return Jimp;
|
||||
}
|
Reference in New Issue
Block a user