@modern-js/server-utils 2.26.0 → 2.26.1-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/src/index.js +56 -0
  2. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/src/log.js +13 -0
  3. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/src/mapPath.js +28 -0
  4. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/src/mapToRelative.js +21 -0
  5. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/src/normalizeOptions.js +157 -0
  6. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/src/resolvePath.js +92 -0
  7. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/src/transformers/call.js +24 -0
  8. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/src/transformers/import.js +19 -0
  9. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/src/utils.js +98 -0
  10. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/call.test.js +92 -0
  11. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/custom-call.test.js +73 -0
  12. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/dynamicImport.test.js +74 -0
  13. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/import.test.js +118 -0
  14. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/index.test.js +863 -0
  15. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/mapToRelative.test.js +21 -0
  16. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/normalizeOptions.test.js +50 -0
  17. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/example-file.js +1 -0
  18. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/node_modules/first/index.js +1 -0
  19. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/node_modules/second/index.js +1 -0
  20. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/package.json +1 -0
  21. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/actions/something.js +1 -0
  22. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/app.js +1 -0
  23. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/App.js +1 -0
  24. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Header/SubHeader.js +1 -0
  25. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Header/header.css +0 -0
  26. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Header/index.js +1 -0
  27. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Root.js +1 -0
  28. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Sidebar/Footer/SidebarFooterButton.js +1 -0
  29. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Sidebar/Footer/index.js +1 -0
  30. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/index.js +1 -0
  31. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/constants/actions.js +1 -0
  32. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/constants.js +1 -0
  33. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/libs/custom.modernizr3.js +1 -0
  34. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/nodemodule.js +1 -0
  35. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/rn/index.android.js +1 -0
  36. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/rn/index.ios.js +1 -0
  37. package/dist/cjs/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/test/tools.js +12 -0
  38. package/dist/cjs/compilers/babel/preset/alias.js +2 -2
  39. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/src/index.js +41 -0
  40. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/src/log.js +8 -0
  41. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/src/mapPath.js +17 -0
  42. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/src/mapToRelative.js +10 -0
  43. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/src/normalizeOptions.js +162 -0
  44. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/src/resolvePath.js +86 -0
  45. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/src/transformers/call.js +15 -0
  46. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/src/transformers/import.js +8 -0
  47. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/src/utils.js +57 -0
  48. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/call.test.js +87 -0
  49. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/custom-call.test.js +68 -0
  50. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/dynamicImport.test.js +71 -0
  51. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/import.test.js +124 -0
  52. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/index.test.js +862 -0
  53. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/mapToRelative.test.js +16 -0
  54. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/normalizeOptions.test.js +45 -0
  55. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/example-file.js +0 -0
  56. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/node_modules/first/index.js +0 -0
  57. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/node_modules/second/index.js +0 -0
  58. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/package.json +1 -0
  59. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/actions/something.js +0 -0
  60. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/app.js +0 -0
  61. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/App.js +0 -0
  62. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Header/SubHeader.js +0 -0
  63. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Header/header.css +0 -0
  64. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Header/index.js +0 -0
  65. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Root.js +0 -0
  66. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Sidebar/Footer/SidebarFooterButton.js +0 -0
  67. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Sidebar/Footer/index.js +0 -0
  68. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/index.js +0 -0
  69. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/constants/actions.js +0 -0
  70. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/constants.js +0 -0
  71. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/libs/custom.modernizr3.js +0 -0
  72. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/nodemodule.js +0 -0
  73. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/rn/index.android.js +0 -0
  74. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/rn/index.ios.js +0 -0
  75. package/dist/esm/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/test/tools.js +2 -0
  76. package/dist/esm/compilers/babel/preset/alias.js +2 -2
  77. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/src/index.js +37 -0
  78. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/src/log.js +3 -0
  79. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/src/mapPath.js +17 -0
  80. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/src/mapToRelative.js +10 -0
  81. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/src/normalizeOptions.js +146 -0
  82. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/src/resolvePath.js +81 -0
  83. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/src/transformers/call.js +13 -0
  84. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/src/transformers/import.js +8 -0
  85. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/src/utils.js +57 -0
  86. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/call.test.js +87 -0
  87. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/custom-call.test.js +68 -0
  88. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/dynamicImport.test.js +69 -0
  89. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/import.test.js +113 -0
  90. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/index.test.js +857 -0
  91. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/mapToRelative.test.js +16 -0
  92. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/normalizeOptions.test.js +45 -0
  93. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/example-file.js +0 -0
  94. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/node_modules/first/index.js +0 -0
  95. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/node_modules/second/index.js +0 -0
  96. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/package.json +1 -0
  97. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/actions/something.js +0 -0
  98. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/app.js +0 -0
  99. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/App.js +0 -0
  100. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Header/SubHeader.js +0 -0
  101. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Header/header.css +0 -0
  102. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Header/index.js +0 -0
  103. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Root.js +0 -0
  104. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Sidebar/Footer/SidebarFooterButton.js +0 -0
  105. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Sidebar/Footer/index.js +0 -0
  106. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/index.js +0 -0
  107. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/constants/actions.js +0 -0
  108. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/constants.js +0 -0
  109. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/libs/custom.modernizr3.js +0 -0
  110. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/nodemodule.js +0 -0
  111. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/rn/index.android.js +0 -0
  112. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/rn/index.ios.js +0 -0
  113. package/dist/esm-node/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/test/tools.js +2 -0
  114. package/dist/esm-node/compilers/babel/preset/alias.js +2 -2
  115. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/src/index.d.ts +19 -0
  116. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/src/log.d.ts +1 -0
  117. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/src/mapPath.d.ts +1 -0
  118. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/src/mapToRelative.d.ts +1 -0
  119. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/src/normalizeOptions.d.ts +24 -0
  120. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/src/resolvePath.d.ts +1 -0
  121. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/src/transformers/call.d.ts +1 -0
  122. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/src/transformers/import.d.ts +1 -0
  123. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/src/utils.d.ts +9 -0
  124. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/call.test.d.ts +1 -0
  125. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/custom-call.test.d.ts +1 -0
  126. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/dynamicImport.test.d.ts +1 -0
  127. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/import.test.d.ts +1 -0
  128. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/index.test.d.ts +1 -0
  129. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/mapToRelative.test.d.ts +1 -0
  130. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/normalizeOptions.test.d.ts +1 -0
  131. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/example-file.d.ts +0 -0
  132. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/actions/something.d.ts +0 -0
  133. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/app.d.ts +0 -0
  134. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/App.d.ts +0 -0
  135. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Header/SubHeader.d.ts +0 -0
  136. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Header/index.d.ts +0 -0
  137. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Root.d.ts +0 -0
  138. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Sidebar/Footer/SidebarFooterButton.d.ts +0 -0
  139. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/Sidebar/Footer/index.d.ts +0 -0
  140. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/components/index.d.ts +0 -0
  141. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/constants/actions.d.ts +0 -0
  142. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/constants.d.ts +0 -0
  143. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/libs/custom.modernizr3.d.ts +0 -0
  144. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/nodemodule.d.mts +1 -0
  145. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/rn/index.android.d.ts +0 -0
  146. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/src/rn/index.ios.d.ts +0 -0
  147. package/dist/types/compilers/babel/plugins/babel-plugin-module-resolver/test/testproject/test/tools.d.ts +1 -0
  148. package/package.json +16 -8
  149. package/test-setup.js +7 -0
@@ -0,0 +1,87 @@
1
+ import { transform } from "@babel/core";
2
+ import plugin from "../src";
3
+ var calls = [
4
+ "require",
5
+ "require.resolve",
6
+ "System.import",
7
+ "jest.genMockFromModule",
8
+ "jest.mock",
9
+ "jest.unmock",
10
+ "jest.doMock",
11
+ "jest.dontMock",
12
+ "jest.setMock",
13
+ "jest.requireActual",
14
+ "jest.requireMock",
15
+ "require.requireActual",
16
+ "require.requireMock"
17
+ ];
18
+ describe("function and method calls", function() {
19
+ var transformerOpts = {
20
+ babelrc: false,
21
+ plugins: [
22
+ [
23
+ plugin,
24
+ {
25
+ root: "./test/testproject/src",
26
+ alias: {
27
+ test: "./test/testproject/test"
28
+ }
29
+ }
30
+ ]
31
+ ]
32
+ };
33
+ calls.forEach(function(name) {
34
+ describe(name, function() {
35
+ it("should resolve the path based on the root config", function() {
36
+ var code = "".concat(name, '("components/Header/SubHeader", ...args);');
37
+ var result = transform(code, transformerOpts);
38
+ expect(result.code).toBe("".concat(name, '("./test/testproject/src/components/Header/SubHeader", ...args);'));
39
+ });
40
+ it("should alias the path", function() {
41
+ var code = "".concat(name, '("test", ...args);');
42
+ var result = transform(code, transformerOpts);
43
+ expect(result.code).toBe("".concat(name, '("./test/testproject/test", ...args);'));
44
+ });
45
+ it("should not change a relative path", function() {
46
+ var code = "".concat(name, '("./utils", ...args);');
47
+ var result = transform(code, transformerOpts);
48
+ expect(result.code).toBe("".concat(name, '("./utils", ...args);'));
49
+ });
50
+ it("should handle no arguments", function() {
51
+ var code = "".concat(name, "();");
52
+ var result = transform(code, transformerOpts);
53
+ expect(result.code).toBe("".concat(name, "();"));
54
+ });
55
+ it("should handle the first argument not being a string literal", function() {
56
+ var code = "".concat(name, "(path, ...args);");
57
+ var result = transform(code, transformerOpts);
58
+ expect(result.code).toBe("".concat(name, "(path, ...args);"));
59
+ });
60
+ it("should handle an empty path", function() {
61
+ var code = "".concat(name, "('', ...args);");
62
+ var result = transform(code, transformerOpts);
63
+ expect(result.code).toBe("".concat(name, "('', ...args);"));
64
+ });
65
+ it("should ignore the call if the method name is not fully matched (suffix)", function() {
66
+ var code = "".concat(name, '.after("components/Sidebar/Footer", ...args);');
67
+ var result = transform(code, transformerOpts);
68
+ expect(result.code).toBe("".concat(name, '.after("components/Sidebar/Footer", ...args);'));
69
+ });
70
+ it("should ignore the call if the method name is not fully matched (prefix)", function() {
71
+ var code = "before.".concat(name, '("components/Sidebar/Footer", ...args);');
72
+ var result = transform(code, transformerOpts);
73
+ expect(result.code).toBe("before.".concat(name, '("components/Sidebar/Footer", ...args);'));
74
+ });
75
+ });
76
+ });
77
+ it("should resolve the path if the method name is a string literal", function() {
78
+ var code = 'require["resolve"]("components/Sidebar/Footer", ...args);';
79
+ var result = transform(code, transformerOpts);
80
+ expect(result.code).toBe('require["resolve"]("./test/testproject/src/components/Sidebar/Footer", ...args);');
81
+ });
82
+ it("should ignore the call if the method name is unknown", function() {
83
+ var code = 'unknown("components/Sidebar/Footer", ...args);';
84
+ var result = transform(code, transformerOpts);
85
+ expect(result.code).toBe('unknown("components/Sidebar/Footer", ...args);');
86
+ });
87
+ });
@@ -0,0 +1,68 @@
1
+ import { transform } from "babel-core";
2
+ import plugin from "../src";
3
+ var calls = [
4
+ "customMethod.something"
5
+ ];
6
+ describe("custom calls", function() {
7
+ var transformerOpts = {
8
+ babelrc: false,
9
+ plugins: [
10
+ [
11
+ plugin,
12
+ {
13
+ root: "./test/testproject/src",
14
+ alias: {
15
+ test: "./test/testproject/test"
16
+ },
17
+ transformFunctions: [
18
+ "customMethod.something"
19
+ ]
20
+ }
21
+ ]
22
+ ]
23
+ };
24
+ calls.forEach(function(name) {
25
+ describe(name, function() {
26
+ it("should resolve the path based on the root config", function() {
27
+ var code = "".concat(name, '("components/Header/SubHeader", ...args);');
28
+ var result = transform(code, transformerOpts);
29
+ expect(result.code).toBe("".concat(name, '("./test/testproject/src/components/Header/SubHeader", ...args);'));
30
+ });
31
+ it("should alias the path", function() {
32
+ var code = "".concat(name, '("test", ...args);');
33
+ var result = transform(code, transformerOpts);
34
+ expect(result.code).toBe("".concat(name, '("./test/testproject/test", ...args);'));
35
+ });
36
+ it("should not change a relative path", function() {
37
+ var code = "".concat(name, '("./utils", ...args);');
38
+ var result = transform(code, transformerOpts);
39
+ expect(result.code).toBe("".concat(name, '("./utils", ...args);'));
40
+ });
41
+ it("should handle no arguments", function() {
42
+ var code = "".concat(name, "();");
43
+ var result = transform(code, transformerOpts);
44
+ expect(result.code).toBe("".concat(name, "();"));
45
+ });
46
+ it("should handle the first argument not being a string literal", function() {
47
+ var code = "".concat(name, "(path, ...args);");
48
+ var result = transform(code, transformerOpts);
49
+ expect(result.code).toBe("".concat(name, "(path, ...args);"));
50
+ });
51
+ it("should handle an empty path", function() {
52
+ var code = "".concat(name, "('', ...args);");
53
+ var result = transform(code, transformerOpts);
54
+ expect(result.code).toBe("".concat(name, "('', ...args);"));
55
+ });
56
+ it("should ignore the call if the method name is not fully matched (suffix)", function() {
57
+ var code = "".concat(name, '.after("components/Sidebar/Footer", ...args);');
58
+ var result = transform(code, transformerOpts);
59
+ expect(result.code).toBe("".concat(name, '.after("components/Sidebar/Footer", ...args);'));
60
+ });
61
+ it("should ignore the call if the method name is not fully matched (prefix)", function() {
62
+ var code = "before.".concat(name, '("components/Sidebar/Footer", ...args);');
63
+ var result = transform(code, transformerOpts);
64
+ expect(result.code).toBe("before.".concat(name, '("components/Sidebar/Footer", ...args);'));
65
+ });
66
+ });
67
+ });
68
+ });
@@ -0,0 +1,71 @@
1
+ import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
2
+ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
+ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
4
+ import { transform } from "@babel/core";
5
+ import plugin from "../src";
6
+ describe("import()", function() {
7
+ var transformerOpts = {
8
+ babelrc: false,
9
+ plugins: [
10
+ // We need to add the corresponding syntax plugin
11
+ // in order to parse the `import()`-calls
12
+ "@babel/plugin-syntax-dynamic-import",
13
+ [
14
+ plugin,
15
+ {
16
+ // root: [path.resolve(__dirname, './testproject/src')],
17
+ root: [
18
+ "./test/testproject/src"
19
+ ],
20
+ alias: {
21
+ test: "./test/testproject/test"
22
+ }
23
+ }
24
+ ]
25
+ ]
26
+ };
27
+ it("should resolve the path based on the root config", function() {
28
+ var code = 'import("components/Header/SubHeader").then(() => {}).catch(() => {});';
29
+ var result = transform(code, transformerOpts);
30
+ expect(result.code).toBe('import("./test/testproject/src/components/Header/SubHeader").then(() => {}).catch(() => {});');
31
+ });
32
+ it("should alias the path", function() {
33
+ var code = 'import("test").then(() => {}).catch(() => {});';
34
+ var result = transform(code, transformerOpts);
35
+ expect(result.code).toBe('import("./test/testproject/test").then(() => {}).catch(() => {});');
36
+ });
37
+ it("should not change a relative path", function() {
38
+ var code = 'import("./utils").then(() => {}).catch(() => {});';
39
+ var result = transform(code, transformerOpts);
40
+ expect(result.code).toBe('import("./utils").then(() => {}).catch(() => {});');
41
+ });
42
+ it("should handle the first argument not being a string literal", function() {
43
+ var code = "import(path).then(() => {}).catch(() => {});";
44
+ var result = transform(code, transformerOpts);
45
+ expect(result.code).toBe("import(path).then(() => {}).catch(() => {});");
46
+ });
47
+ it("should handle an empty path", function() {
48
+ var code = 'import("").then(() => {}).catch(() => {});';
49
+ var result = transform(code, transformerOpts);
50
+ expect(result.code).toBe('import("").then(() => {}).catch(() => {});');
51
+ });
52
+ it("should handle imports added by other transforms", function() {
53
+ var options = _object_spread_props(_object_spread({}, transformerOpts), {
54
+ plugins: [
55
+ function fakePlugin(param) {
56
+ var types = param.types;
57
+ return {
58
+ visitor: {
59
+ Identifier: function Identifier(path) {
60
+ path.replaceWith(types.Import());
61
+ }
62
+ }
63
+ };
64
+ }
65
+ ].concat(_to_consumable_array(transformerOpts.plugins))
66
+ });
67
+ var code = 'boo("components/Header/SubHeader");';
68
+ var result = transform(code, options);
69
+ expect(result.code).toBe('import("./test/testproject/src/components/Header/SubHeader");');
70
+ });
71
+ });
@@ -0,0 +1,124 @@
1
+ import { _ as _tagged_template_literal } from "@swc/helpers/_/_tagged_template_literal";
2
+ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
3
+ function _templateObject() {
4
+ var data = _tagged_template_literal([
5
+ '\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n exports.something = void 0;\n let something;\n exports.something = something;\n '
6
+ ]);
7
+ _templateObject = function _templateObject3() {
8
+ return data;
9
+ };
10
+ return data;
11
+ }
12
+ function _templateObject1() {
13
+ var data = _tagged_template_literal([
14
+ '\n function test() {\n return "components/Sidebar/Footer";\n }\n '
15
+ ]);
16
+ _templateObject1 = function _templateObject12() {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
21
+ function _templateObject2() {
22
+ var data = _tagged_template_literal([
23
+ '\n function test() {\n return "components/Sidebar/Footer";\n }\n '
24
+ ]);
25
+ _templateObject2 = function _templateObject22() {
26
+ return data;
27
+ };
28
+ return data;
29
+ }
30
+ import { transform } from "@babel/core";
31
+ import transformToCommonJsPlugin from "@babel/plugin-transform-modules-commonjs";
32
+ import { stripIndent } from "common-tags";
33
+ import plugin from "../src";
34
+ describe("import and export statement", function() {
35
+ var testImport = function testImport2(source, output, transformerOpts2) {
36
+ it("with an import statement", function() {
37
+ var code = 'import something from "'.concat(source, '";');
38
+ var result = transform(code, transformerOpts2);
39
+ expect(result.code).toBe('import something from "'.concat(output, '";'));
40
+ });
41
+ it('with an "export from" statement', function() {
42
+ var code = 'export { something } from "'.concat(source, '";');
43
+ var result = transform(code, transformerOpts2);
44
+ expect(result.code).toBe('export { something } from "'.concat(output, '";'));
45
+ });
46
+ it("with an export statement", function() {
47
+ var code = "let something; export { something }";
48
+ var result = transform(code, transformerOpts2);
49
+ expect(result.code).toBe("let something;\nexport { something };");
50
+ });
51
+ };
52
+ var testImportWithCommonJSTransform = function testImportWithCommonJSTransform2(source, output, transformerOpts2) {
53
+ var transformerOptsWithCommonJs = {
54
+ babelrc: false,
55
+ plugins: _to_consumable_array(transformerOpts2.plugins).concat([
56
+ [
57
+ transformToCommonJsPlugin,
58
+ {
59
+ noInterop: true
60
+ }
61
+ ]
62
+ ])
63
+ };
64
+ it("with a transformed require statement", function() {
65
+ var code = 'var something = require("'.concat(source, '");');
66
+ var result = transform(code, transformerOptsWithCommonJs);
67
+ expect(result.code).toContain('require("'.concat(output, '");'));
68
+ });
69
+ it("with a transformed import statement", function() {
70
+ var code = 'import something from "'.concat(source, '";');
71
+ var result = transform(code, transformerOptsWithCommonJs);
72
+ expect(result.code).toContain('require("'.concat(output, '");'));
73
+ });
74
+ it('with a transformed "export from" statement', function() {
75
+ var code = 'export { something } from "'.concat(source, '";');
76
+ var result = transform(code, transformerOptsWithCommonJs);
77
+ expect(result.code).toContain('require("'.concat(output, '");'));
78
+ });
79
+ it("with a transformed export statement", function() {
80
+ var code = "let something; export { something };";
81
+ var result = transform(code, transformerOptsWithCommonJs);
82
+ expect(result.code).toBe(stripIndent(_templateObject()));
83
+ });
84
+ };
85
+ var testImports = function testImports2(source, output, transformerOpts2) {
86
+ testImport(source, output, transformerOpts2);
87
+ testImportWithCommonJSTransform(source, output, transformerOpts2);
88
+ };
89
+ var transformerOpts = {
90
+ babelrc: false,
91
+ plugins: [
92
+ [
93
+ plugin,
94
+ {
95
+ root: "./test/testproject/src",
96
+ alias: {
97
+ test: "./test/testproject/test",
98
+ "@babel/core": "@babel/core/lib"
99
+ }
100
+ }
101
+ ]
102
+ ]
103
+ };
104
+ describe("should resolve the path based on the root config", function() {
105
+ testImports("components/Header/SubHeader", "./test/testproject/src/components/Header/SubHeader", transformerOpts);
106
+ });
107
+ describe("should alias the path", function() {
108
+ testImports("test", "./test/testproject/test", transformerOpts);
109
+ });
110
+ describe("should not change a relative path", function() {
111
+ testImports("./utils", "./utils", transformerOpts);
112
+ });
113
+ describe("should handle an empty path", function() {
114
+ testImports("", "", transformerOpts);
115
+ });
116
+ describe("should only apply the alias once", function() {
117
+ testImports("@babel/core/transform", "@babel/core/lib/transform", transformerOpts);
118
+ });
119
+ describe("should ignore the call if a non-import statement is used", function() {
120
+ var code = stripIndent(_templateObject1());
121
+ var result = transform(code, transformerOpts);
122
+ expect(result.code).toBe(stripIndent(_templateObject2()));
123
+ });
124
+ });