Skip to content

Commit c903fd9

Browse files
committed
fix: remove oxc-parser
1 parent 9a6b3d4 commit c903fd9

File tree

6 files changed

+118
-270
lines changed

6 files changed

+118
-270
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
"typescript": "^5.6.3",
7575
"typescript-eslint": "^8.13.0",
7676
"vite": "^5.4.10",
77-
"vitest": "^2.1.4",
77+
"vitest": "^3.0.8",
7878
"vue": "^3.2.25",
7979
"vue-i18n": "next",
8080
"vue-loader": "^16.3.0",

packages/bundle-utils/package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,11 @@
2121
"dependencies": {
2222
"@intlify/message-compiler": "next",
2323
"@intlify/shared": "next",
24-
"@oxc-parser/wasm": "^0.58.1",
2524
"acorn": "^8.8.2",
2625
"escodegen": "^2.1.0",
2726
"estree-walker": "^2.0.2",
2827
"jsonc-eslint-parser": "^2.3.0",
2928
"mlly": "^1.2.0",
30-
"oxc-parser": "^0.58.1",
3129
"oxc-transform": "^0.58.1",
3230
"source-map-js": "^1.0.1",
3331
"yaml-eslint-parser": "^1.2.2"

packages/bundle-utils/src/index.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
export { generate as generateJSON } from './json'
22
export { generate as generateYAML } from './yaml'
3-
export {
4-
generate as generateJavaScript,
5-
initParser as initJavascriptParser
6-
} from './js'
3+
export { generate as generateJavaScript } from './js'
74
export { getVueI18nVersion, checkInstallPackage } from './deps'
85
export type { CodeGenOptions, CodeGenResult, DevEnv } from './codegen'
96
export type { InstalledPackage } from './deps'

packages/bundle-utils/src/js.ts

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import { isString, isBoolean, isNumber } from '@intlify/shared'
66
import { generate as generateJavaScript } from 'escodegen'
77
import { walk } from 'estree-walker'
8+
import { parse as parseJavaScript } from 'acorn'
89
import {
910
createCodeGenerator,
1011
generateMessageFunction,
@@ -22,30 +23,6 @@ import type {
2223
CodeGenFunction
2324
} from './codegen'
2425

25-
// Adapted from https://github.com/nuxt/nuxt/blob/6d85c15fb1783b003bb5d7cdefdd22b54f871f9d/packages/nuxt/src/core/utils/parse.ts
26-
27-
let parseJavaScript: typeof import('oxc-parser').parseSync
28-
29-
export async function initParser() {
30-
try {
31-
parseJavaScript = await import('oxc-parser').then(r => r.parseSync)
32-
} catch (_) {
33-
console.warn(
34-
'[intlify-bundle-utils]: Unable to import `oxc-parser`, falling back to `@oxc-parser/wasm`.'
35-
)
36-
37-
const { parseSync: parse } = await import('@oxc-parser/wasm')
38-
parseJavaScript = (filename, sourceText, options) =>
39-
// @ts-expect-error sourceType property conflict
40-
parse(sourceText, {
41-
...(options || {}),
42-
sourceFilename:
43-
filename.replace(/\?.*$/, '') + `.${options?.lang || 'ts'}`,
44-
sourceType: 'module'
45-
})
46-
}
47-
}
48-
4926
/**
5027
* @internal
5128
*/
@@ -94,10 +71,12 @@ export function generate(
9471
const transformed = transform(filename, value, { sourceType: 'module' })
9572
options.source = transformed.code
9673

97-
const ast = parseJavaScript(filename, transformed.code, {
98-
astType: 'js',
99-
sourceType: 'module'
100-
}).program as Node
74+
const ast = parseJavaScript(transformed.code, {
75+
sourceType: 'module',
76+
ecmaVersion: 'latest',
77+
sourceFile: filename,
78+
allowImportExportEverywhere: true
79+
}) as Node
10180

10281
const exportResult = scanAst(ast)
10382
if (!allowDynamic) {

packages/unplugin-vue-i18n/src/core/resource.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import {
22
generateJavaScript,
33
generateJSON,
4-
generateYAML,
5-
initJavascriptParser
4+
generateYAML
65
} from '@intlify/bundle-utils'
76
import { assign, generateCodeFrame, isEmptyObject } from '@intlify/shared'
87
import { createFilter } from '@rollup/pluginutils'
@@ -134,7 +133,6 @@ export function resourcePlugin(
134133
// HMR for webpack/rspack
135134
}
136135

137-
let initializedJSParser = false
138136
const supportedFileExtensionsRE = /\.(json5?|ya?ml|[c|m]?[j|t]s)$/
139137

140138
return {
@@ -296,10 +294,6 @@ export function resourcePlugin(
296294
langInfo = parsePath(filename).ext as SFCLangFormat
297295

298296
const generate = getGenerator(langInfo)
299-
if (!initializedJSParser) {
300-
await initJavascriptParser()
301-
initializedJSParser = true
302-
}
303297
const parseOptions = getOptions(filename, ctx, query, {
304298
...opts,
305299
// FIXME: needs to be disabled?

0 commit comments

Comments
 (0)