unplugin.cjs 2.1 KB

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