plugin.cjs 774 B

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