index.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  4. Object.defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports["default"] = configure;
  8. var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
  9. var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
  10. var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
  11. var _core = _interopRequireWildcard(require("@jimp/core"));
  12. function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
  13. function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
  14. function configure(configuration) {
  15. var jimpInstance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _core["default"];
  16. var jimpConfig = {
  17. hasAlpha: {},
  18. encoders: {},
  19. decoders: {},
  20. "class": {},
  21. constants: {}
  22. };
  23. function addToConfig(newConfig) {
  24. Object.entries(newConfig).forEach(function (_ref) {
  25. var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
  26. key = _ref2[0],
  27. value = _ref2[1];
  28. jimpConfig[key] = _objectSpread({}, jimpConfig[key], {}, value);
  29. });
  30. }
  31. function addImageType(typeModule) {
  32. var type = typeModule();
  33. if (Array.isArray(type.mime)) {
  34. _core.addType.apply(void 0, (0, _toConsumableArray2["default"])(type.mime));
  35. } else {
  36. Object.entries(type.mime).forEach(function (mimeType) {
  37. return _core.addType.apply(void 0, (0, _toConsumableArray2["default"])(mimeType));
  38. });
  39. }
  40. delete type.mime;
  41. addToConfig(type);
  42. }
  43. function addPlugin(pluginModule) {
  44. var plugin = pluginModule(_core.jimpEvChange) || {};
  45. if (!plugin["class"] && !plugin.constants) {
  46. // Default to class function
  47. addToConfig({
  48. "class": plugin
  49. });
  50. } else {
  51. addToConfig(plugin);
  52. }
  53. }
  54. if (configuration.types) {
  55. configuration.types.forEach(addImageType);
  56. jimpInstance.decoders = _objectSpread({}, jimpInstance.decoders, {}, jimpConfig.decoders);
  57. jimpInstance.encoders = _objectSpread({}, jimpInstance.encoders, {}, jimpConfig.encoders);
  58. jimpInstance.hasAlpha = _objectSpread({}, jimpInstance.hasAlpha, {}, jimpConfig.hasAlpha);
  59. }
  60. if (configuration.plugins) {
  61. configuration.plugins.forEach(addPlugin);
  62. }
  63. (0, _core.addJimpMethods)(jimpConfig["class"], jimpInstance);
  64. (0, _core.addConstants)(jimpConfig.constants, jimpInstance);
  65. return _core["default"];
  66. }
  67. //# sourceMappingURL=index.js.map