Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .c8rc.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
"exclude": [
"eslint.config.mjs",
"**/fixtures",
"**/__tests__",
"src/generators/legacy-html/assets",
"src/generators/web/ui",
"**/*.d.ts"
"**/*.d.ts",
"www"
]
}
2 changes: 1 addition & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ updates:
- 'hast-*'
- 'mdast-*'
- 'hastscript'
- 'acorn'
- '@oxc-project/types'
recma:
patterns:
- 'recma-*'
Expand Down
5 changes: 2 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@
"@orama/ui": "^1.5.4",
"@rollup/plugin-virtual": "^3.0.2",
"@swc/html-wasm": "^1.15.43",
"acorn": "^8.17.0",
"commander": "^15.0.0",
"dedent": "^1.7.2",
"estree-util-to-js": "^2.0.0",
Expand Down
35 changes: 25 additions & 10 deletions src/generators/api-links/utils/checkIndirectReferences.mjs
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import { visit } from 'estree-util-visit';
'use strict';

import { getLineNumber } from './getLineNumber.mjs';

/**
* @param {import('acorn').Program} program
* @param {import('@oxc-project/types').Program} program
* @param {import('../types.d.ts').ProgramExports} exports
* @param {Record<string, number>} nameToLineNumberMap
*/
Expand All @@ -10,15 +12,28 @@ export function checkIndirectReferences(program, exports, nameToLineNumberMap) {
return;
}

visit(program, node => {
if (!node.loc || node.type !== 'FunctionDeclaration') {
return;
}
const body = program.body;
if (!body) {
return;
}

const name = node.id.name;
const sourceText = program.sourceText;

if (name in exports.indirects) {
nameToLineNumberMap[exports.indirects[name]] = node.loc.start.line;
for (let i = 0; i < body.length; i++) {
let node = body[i];
if (node.type === 'ExportNamedDeclaration' && node.declaration) {
node = node.declaration;
}
});

if (node.type === 'FunctionDeclaration') {
const name = node.id.name;
if (name in exports.indirects) {
nameToLineNumberMap[exports.indirects[name]] = getLineNumber(
sourceText,
node.range[0],
program
);
}
}
}
}
Loading
Loading