Files
dewedev/node_modules/@svgr/core/lib/plugins.js
dwindown 7f2dd5260f Initial commit: Developer Tools MVP with visual editor
- Complete React app with 7 developer tools
- JSON Tool with visual structured editor
- Serialize Tool with visual structured editor
- URL, Base64, CSV/JSON, Beautifier, Diff tools
- Responsive navigation with dropdown menu
- Dark/light mode toggle
- Mobile-responsive design with sticky header
- All tools working with copy/paste functionality
2025-08-02 09:31:26 +07:00

58 lines
1.3 KiB
JavaScript

"use strict";
exports.__esModule = true;
exports.getPlugins = getPlugins;
exports.resolvePlugin = resolvePlugin;
exports.loadPlugin = loadPlugin;
var _pluginJsx = _interopRequireDefault(require("@svgr/plugin-jsx"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const DEFAULT_PLUGINS = [_pluginJsx.default];
function getPlugins(config, state) {
if (config.plugins) {
return config.plugins;
}
if (state.caller && state.caller.defaultPlugins) {
return state.caller.defaultPlugins;
}
return DEFAULT_PLUGINS;
}
function resolvePlugin(plugin) {
if (typeof plugin === 'function') {
return plugin;
}
if (typeof plugin === 'string') {
return loadPlugin(plugin);
}
throw new Error(`Invalid plugin "${plugin}"`);
}
const pluginCache = {};
function loadPlugin(moduleName) {
if (pluginCache[moduleName]) {
return pluginCache[moduleName];
}
try {
// eslint-disable-next-line
const plugin = require(moduleName);
if (!plugin.default || !plugin) {
throw new Error(`Invalid plugin "${moduleName}"`);
}
pluginCache[moduleName] = plugin.default || plugin;
return pluginCache[moduleName];
} catch (error) {
throw new Error(`Module "${moduleName}" missing. Maybe \`npm install ${moduleName}\` could help!`);
}
}