@dcoder-x/plugin-shared 0.1.7 → 0.1.8

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.
@@ -6,6 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.RouteExtractor = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const path_1 = __importDefault(require("path"));
9
+ const parser_1 = require("@babel/parser");
10
+ const traverse_1 = __importDefault(require("@babel/traverse"));
11
+ // @babel/traverse ships as CJS but may be loaded by an ESM host (e.g. Vite).
12
+ // The CJS-in-ESM import wraps exports in a namespace object, so `.default`
13
+ // may be the module object rather than the function. This guard handles both.
14
+ const traverse = typeof traverse_1.default === 'function' ? traverse_1.default : traverse_1.default.default;
9
15
  class RouteExtractor {
10
16
  constructor(dir) {
11
17
  this.dir = dir;
@@ -114,21 +120,19 @@ class RouteExtractor {
114
120
  async extractReactRouterRoutes(srcDir) {
115
121
  if (!fs_1.default.existsSync(srcDir))
116
122
  return [];
117
- const { parse } = await import('@babel/parser');
118
- const traverse = (await import('@babel/traverse')).default;
119
123
  const results = [];
120
124
  const routerFiles = this.findFilesContaining(srcDir, /createBrowserRouter|<Route/);
121
125
  for (const filePath of routerFiles) {
122
126
  const source = fs_1.default.readFileSync(filePath, 'utf-8');
123
127
  let ast;
124
128
  try {
125
- ast = parse(source, { sourceType: 'module', plugins: ['typescript', 'jsx'] });
129
+ ast = (0, parser_1.parse)(source, { sourceType: 'module', plugins: ['typescript', 'jsx'] });
126
130
  }
127
131
  catch {
128
132
  continue;
129
133
  }
130
134
  traverse(ast, {
131
- JSXOpeningElement(nodePath) {
135
+ JSXOpeningElement: (nodePath) => {
132
136
  const name = nodePath.node.name?.name;
133
137
  if (name !== 'Route')
134
138
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dcoder-x/plugin-shared",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",