normalize-string-or-regex-CVvpepxa.mjs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { n as __toESM, t as require_binding } from "./binding-s-V_wTpj.mjs";
  2. import { c as logPluginError, n as error } from "./logs-D80CXhvg.mjs";
  3. //#region src/builtin-plugin/utils.ts
  4. var import_binding = /* @__PURE__ */ __toESM(require_binding(), 1);
  5. var BuiltinPlugin = class {
  6. /** Vite-specific option to control plugin ordering */
  7. enforce;
  8. constructor(name, _options) {
  9. this.name = name;
  10. this._options = _options;
  11. }
  12. };
  13. function makeBuiltinPluginCallable(plugin) {
  14. let callablePlugin = new import_binding.BindingCallableBuiltinPlugin(bindingifyBuiltInPlugin(plugin));
  15. const wrappedPlugin = plugin;
  16. for (const key in callablePlugin) {
  17. const wrappedHook = async function(...args) {
  18. try {
  19. return await callablePlugin[key](...args);
  20. } catch (e) {
  21. if (e instanceof Error && !e.stack?.includes("at ")) Error.captureStackTrace(e, wrappedPlugin[key]);
  22. return error(logPluginError(e, plugin.name, {
  23. hook: key,
  24. id: key === "transform" ? args[2] : void 0
  25. }));
  26. }
  27. };
  28. const order = callablePlugin.getOrder(key);
  29. if (order == void 0) wrappedPlugin[key] = wrappedHook;
  30. else wrappedPlugin[key] = {
  31. handler: wrappedHook,
  32. order
  33. };
  34. }
  35. return wrappedPlugin;
  36. }
  37. function bindingifyBuiltInPlugin(plugin) {
  38. return {
  39. __name: plugin.name,
  40. options: plugin._options
  41. };
  42. }
  43. function bindingifyManifestPlugin(plugin, pluginContextData) {
  44. const { isOutputOptionsForLegacyChunks, ...options } = plugin._options;
  45. return {
  46. __name: plugin.name,
  47. options: {
  48. ...options,
  49. isLegacy: isOutputOptionsForLegacyChunks ? (opts) => {
  50. return isOutputOptionsForLegacyChunks(pluginContextData.getOutputOptions(opts));
  51. } : void 0
  52. }
  53. };
  54. }
  55. //#endregion
  56. //#region src/utils/normalize-string-or-regex.ts
  57. function normalizedStringOrRegex(pattern) {
  58. if (!pattern) return;
  59. if (!isReadonlyArray(pattern)) return [pattern];
  60. return pattern;
  61. }
  62. function isReadonlyArray(input) {
  63. return Array.isArray(input);
  64. }
  65. //#endregion
  66. export { makeBuiltinPluginCallable as a, bindingifyManifestPlugin as i, BuiltinPlugin as n, bindingifyBuiltInPlugin as r, normalizedStringOrRegex as t };