plugin.mjs 735 B

123456789101112131415161718192021222324252627282930
  1. import { createUnplugin } from 'unplugin';
  2. import { createTransformer } from './transform.mjs';
  3. import 'acorn';
  4. import 'magic-string';
  5. import 'estree-walker';
  6. const unctxPlugin = createUnplugin(
  7. (options = {}) => {
  8. const transformer = createTransformer(options);
  9. return {
  10. name: "unctx:transform",
  11. enforce: "post",
  12. transformInclude: options.transformInclude,
  13. transform(code, id) {
  14. const result = transformer.transform(code);
  15. if (result) {
  16. return {
  17. code: result.code,
  18. map: result.magicString.generateMap({
  19. source: id,
  20. includeContent: true
  21. })
  22. };
  23. }
  24. }
  25. };
  26. }
  27. );
  28. export { unctxPlugin };