9425255fa0082c470a6c561842b9d4de39364e4f8912040842cbbc3b9d4cd78d0877c4f173c0ede7af47c747120043b16cc19da9cc54d9e200dd04e6f5acc2 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. const fs = require('fs');
  4. const unplugin$1 = require('unplugin');
  5. const pluginutils = require('@rollup/pluginutils');
  6. const MagicString = require('magic-string');
  7. const context = require('./shared/unimport.faf40790.cjs');
  8. require('fast-glob');
  9. require('pathe');
  10. require('mlly');
  11. require('scule');
  12. require('./shared/unimport.4f90cbbb.cjs');
  13. require('strip-literal');
  14. require('local-pkg');
  15. require('os');
  16. require('pkg-types');
  17. const defaultIncludes = [/\.[jt]sx?$/, /\.vue$/, /\.vue\?vue/, /\.svelte$/];
  18. const defaultExcludes = [/[\\/]node_modules[\\/]/, /[\\/]\.git[\\/]/];
  19. function toArray(x) {
  20. return x == null ? [] : Array.isArray(x) ? x : [x];
  21. }
  22. const unplugin = unplugin$1.createUnplugin((options = {}) => {
  23. const ctx = context.createUnimport(options);
  24. const filter = pluginutils.createFilter(
  25. toArray(options.include || []).length ? options.include : defaultIncludes,
  26. options.exclude || defaultExcludes
  27. );
  28. const dts = options.dts === true ? "unimport.d.ts" : options.dts;
  29. return {
  30. name: "unimport",
  31. enforce: "post",
  32. transformInclude(id) {
  33. return filter(id);
  34. },
  35. async transform(code, id) {
  36. const s = new MagicString(code);
  37. await ctx.injectImports(s, id);
  38. if (!s.hasChanged()) {
  39. return;
  40. }
  41. return {
  42. code: s.toString(),
  43. map: s.generateMap()
  44. };
  45. },
  46. async buildStart() {
  47. if (options.dirs?.length) {
  48. await ctx.modifyDynamicImports(async (imports) => {
  49. imports.push(...await context.scanDirExports(options.dirs));
  50. });
  51. }
  52. if (dts) {
  53. return fs.promises.writeFile(dts, await ctx.generateTypeDeclarations(), "utf-8");
  54. }
  55. }
  56. };
  57. });
  58. exports.default = unplugin;
  59. exports.defaultExcludes = defaultExcludes;
  60. exports.defaultIncludes = defaultIncludes;