unplugin.cjs 2.1 KB

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