diff --git a/apps/oxlint/scripts/build.js b/apps/oxlint/scripts/build.js index e61150a33923f..705a873c94fed 100755 --- a/apps/oxlint/scripts/build.js +++ b/apps/oxlint/scripts/build.js @@ -33,8 +33,8 @@ console.log('- Created package.json'); console.log('Copying files from parser...'); const parserFilePaths = [ - 'raw-transfer/lazy-common.mjs', - 'raw-transfer/node-array.mjs', + 'src-js/raw-transfer/lazy-common.mjs', + 'src-js/raw-transfer/node-array.mjs', 'generated/lazy/constructors.mjs', 'generated/lazy/types.mjs', 'generated/lazy/walk.mjs', diff --git a/apps/oxlint/src-js/plugins/lint.ts b/apps/oxlint/src-js/plugins/lint.ts index fdb9eec7c6fd5..c9bd596de3342 100644 --- a/apps/oxlint/src-js/plugins/lint.ts +++ b/apps/oxlint/src-js/plugins/lint.ts @@ -10,7 +10,7 @@ import { assertIs } from './utils.js'; import { addVisitorToCompiled, compiledVisitor, finalizeCompiledVisitor, initCompiledVisitor } from './visitor.js'; // @ts-expect-error we need to generate `.d.ts` file for this module. -import { TOKEN } from '../../dist/raw-transfer/lazy-common.mjs'; +import { TOKEN } from '../../dist/src-js/raw-transfer/lazy-common.mjs'; // @ts-expect-error we need to generate `.d.ts` file for this module. import { walkProgram } from '../../dist/generated/lazy/walk.mjs'; diff --git a/dprint.json b/dprint.json index 1e0f16c09e8dd..a593dd6eb8e37 100644 --- a/dprint.json +++ b/dprint.json @@ -20,13 +20,13 @@ "apps/oxlint/src-js/bindings.js", "apps/oxlint/src-js/bindings.d.ts", "napi/{transform,minify,playground}/index.js", - "napi/{parser,transform,minify,playground}/index.d.ts", - "napi/{parser,transform,minify,playground}/*.wasi-browser.js", - "napi/{parser,transform,minify,playground}/*.wasi.cjs", - "napi/{parser,transform,minify,playground}/wasi-worker-browser.mjs", - "napi/{parser,transform,minify,playground}/wasi-worker.mjs", - "napi/{parser,transform,minify,playground}/browser.js", - "napi/parser/bindings.mjs", + "napi/{parser,transform,minify,playground}/**/index.d.ts", + "napi/{parser,transform,minify,playground}/**/*.wasi-browser.js", + "napi/{parser,transform,minify,playground}/**/*.wasi.cjs", + "napi/{parser,transform,minify,playground}/**/wasi-worker-browser.mjs", + "napi/{parser,transform,minify,playground}/**/wasi-worker.mjs", + "napi/{parser,transform,minify,playground}/**/browser.js", + "napi/parser/src-js/bindings.mjs", "npm/*/package.json", "npm/oxlint/configuration_schema.json", "npm/oxc-wasm/**", diff --git a/napi/parser/bench.bench.mjs b/napi/parser/bench.bench.mjs index aa0bfabc8e4bd..6ec10754204a1 100644 --- a/napi/parser/bench.bench.mjs +++ b/napi/parser/bench.bench.mjs @@ -1,17 +1,17 @@ import { writeFile } from 'node:fs/promises'; import { join as pathJoin } from 'node:path'; import { bench, describe } from 'vitest'; -import { parseSyncRaw } from './bindings.mjs'; -import { parseAsync, parseSync } from './index.mjs'; +import { parseSyncRaw } from './src-js/bindings.mjs'; +import { parseAsync, parseSync } from './src-js/index.mjs'; // Internals import { DATA_POINTER_POS_32, PROGRAM_OFFSET } from './generated/constants.mjs'; import { deserialize as deserializeJS } from './generated/deserialize/js.mjs'; import { deserialize as deserializeTS } from './generated/deserialize/ts.mjs'; import { walkProgram } from './generated/lazy/walk.mjs'; -import { isJsAst, prepareRaw, returnBufferToCache } from './raw-transfer/common.mjs'; -import { TOKEN } from './raw-transfer/lazy-common.mjs'; -import { getVisitorsArr, Visitor } from './raw-transfer/visitor.mjs'; +import { isJsAst, prepareRaw, returnBufferToCache } from './src-js/raw-transfer/common.mjs'; +import { TOKEN } from './src-js/raw-transfer/lazy-common.mjs'; +import { getVisitorsArr, Visitor } from './src-js/raw-transfer/visitor.mjs'; // Same fixtures as used in Rust parser benchmarks let fixtureUrls = [ diff --git a/napi/parser/build-browser-bundle.mjs b/napi/parser/build-browser-bundle.mjs index 2b179ca83d16e..5c75976a162b1 100644 --- a/napi/parser/build-browser-bundle.mjs +++ b/napi/parser/build-browser-bundle.mjs @@ -15,10 +15,10 @@ async function main() { // bundle wasm.mjs -> browser-bundle.mjs await esbuild.build({ - entryPoints: ['./wasm.mjs'], + entryPoints: ['./src-js/wasm.mjs'], outfile: 'browser-bundle.mjs', alias: { - '@oxc-parser/binding-wasm32-wasi': './parser.wasi-browser.js', + '@oxc-parser/binding-wasm32-wasi': './src-js/parser.wasi-browser.js', }, bundle: true, platform: 'browser', diff --git a/napi/parser/example.mjs b/napi/parser/example.mjs index 869009ec78530..50835bdae2bc2 100644 --- a/napi/parser/example.mjs +++ b/napi/parser/example.mjs @@ -1,7 +1,7 @@ import fs from 'node:fs'; import path from 'node:path'; import { parseArgs } from 'node:util'; -import { parseSync } from './index.mjs'; +import { parseSync } from './src-js/index.mjs'; // usage: // node napi/parser/example.mjs test.ts diff --git a/napi/parser/generated/lazy/constructors.mjs b/napi/parser/generated/lazy/constructors.mjs index e1b8dbbd6395e..2bb0a06e724c9 100644 --- a/napi/parser/generated/lazy/constructors.mjs +++ b/napi/parser/generated/lazy/constructors.mjs @@ -1,8 +1,8 @@ // Auto-generated code, DO NOT EDIT DIRECTLY! // To edit this generated file you have to edit `tasks/ast_tools/src/generators/raw_transfer_lazy.rs`. -import { constructorError, TOKEN } from '../../raw-transfer/lazy-common.mjs'; -import { NodeArray } from '../../raw-transfer/node-array.mjs'; +import { constructorError, TOKEN } from '../../src-js/raw-transfer/lazy-common.mjs'; +import { NodeArray } from '../../src-js/raw-transfer/node-array.mjs'; const textDecoder = new TextDecoder('utf-8', { ignoreBOM: true }), decodeStr = textDecoder.decode.bind(textDecoder), diff --git a/napi/parser/package.json b/napi/parser/package.json index 44e88d95015b5..bebec4beecbc0 100644 --- a/napi/parser/package.json +++ b/napi/parser/package.json @@ -2,15 +2,15 @@ "name": "oxc-parser", "version": "0.90.0", "type": "commonjs", - "main": "index.mjs", - "browser": "wasm.mjs", + "main": "src-js/index.mjs", + "browser": "src-js/wasm.mjs", "scripts": { - "build-dev": "napi build --esm --platform --js bindings.mjs", + "build-dev": "napi build --esm --platform --js bindings.mjs --output-dir src-js", "build-test": "pnpm run build-dev --profile coverage", "build": "pnpm run build-dev --features allocator --release", "postbuild-dev": "node patch.mjs", "build-wasi": "pnpm run build-dev --release --target wasm32-wasip1-threads", - "build-npm-dir": "rm -rf npm-dir && napi create-npm-dirs --npm-dir npm-dir && pnpm napi artifacts --npm-dir npm-dir --output-dir .", + "build-npm-dir": "rm -rf npm-dir && napi create-npm-dirs --npm-dir npm-dir && pnpm napi artifacts --npm-dir npm-dir --output-dir src-js", "build-browser-bundle": "node build-browser-bundle.mjs", "test": "tsc && pnpm run test-node run", "test-node": "vitest --dir ./test", @@ -38,25 +38,8 @@ "url": "https://github.com/sponsors/Boshen" }, "files": [ - "index.d.ts", - "index.mjs", - "wrap.mjs", - "wasm.mjs", - "bindings.mjs", - "webcontainer-fallback.js", - "generated/constants.mjs", - "generated/deserialize/js.mjs", - "generated/deserialize/ts.mjs", - "generated/lazy/constructors.mjs", - "generated/lazy/types.mjs", - "generated/lazy/walk.mjs", - "raw-transfer/common.mjs", - "raw-transfer/eager.mjs", - "raw-transfer/lazy.mjs", - "raw-transfer/lazy-common.mjs", - "raw-transfer/node-array.mjs", - "raw-transfer/supported.mjs", - "raw-transfer/visitor.mjs" + "generated", + "src-js" ], "publishConfig": { "registry": "https://registry.npmjs.org/", @@ -100,6 +83,6 @@ "fs": false } }, - "dtsHeaderFile": "header.js" + "dtsHeaderFile": "src-js/header.js" } } diff --git a/napi/parser/patch.mjs b/napi/parser/patch.mjs index 96e55cd5dfc32..e8edf342c46bd 100644 --- a/napi/parser/patch.mjs +++ b/napi/parser/patch.mjs @@ -1,6 +1,6 @@ import fs from 'node:fs'; -const filename = './bindings.mjs'; +const filename = './src-js/bindings.mjs'; let data = fs.readFileSync(filename, 'utf-8'); data = data.replace( diff --git a/napi/parser/bindings.mjs b/napi/parser/src-js/bindings.mjs similarity index 100% rename from napi/parser/bindings.mjs rename to napi/parser/src-js/bindings.mjs diff --git a/napi/parser/header.js b/napi/parser/src-js/header.js similarity index 100% rename from napi/parser/header.js rename to napi/parser/src-js/header.js diff --git a/napi/parser/index.d.ts b/napi/parser/src-js/index.d.ts similarity index 100% rename from napi/parser/index.d.ts rename to napi/parser/src-js/index.d.ts diff --git a/napi/parser/index.mjs b/napi/parser/src-js/index.mjs similarity index 100% rename from napi/parser/index.mjs rename to napi/parser/src-js/index.mjs diff --git a/napi/parser/parser.wasi-browser.js b/napi/parser/src-js/parser.wasi-browser.js similarity index 100% rename from napi/parser/parser.wasi-browser.js rename to napi/parser/src-js/parser.wasi-browser.js diff --git a/napi/parser/parser.wasi.cjs b/napi/parser/src-js/parser.wasi.cjs similarity index 100% rename from napi/parser/parser.wasi.cjs rename to napi/parser/src-js/parser.wasi.cjs diff --git a/napi/parser/raw-transfer/common.mjs b/napi/parser/src-js/raw-transfer/common.mjs similarity index 99% rename from napi/parser/raw-transfer/common.mjs rename to napi/parser/src-js/raw-transfer/common.mjs index 5e739f60555b1..0bb3856815e32 100644 --- a/napi/parser/raw-transfer/common.mjs +++ b/napi/parser/src-js/raw-transfer/common.mjs @@ -1,10 +1,10 @@ import os from 'node:os'; +import { BUFFER_ALIGN, BUFFER_SIZE, IS_TS_FLAG_POS } from '../../generated/constants.mjs'; import { getBufferOffset, parseAsyncRaw as parseAsyncRawBinding, parseSyncRaw as parseSyncRawBinding, } from '../bindings.mjs'; -import { BUFFER_ALIGN, BUFFER_SIZE, IS_TS_FLAG_POS } from '../generated/constants.mjs'; import { rawTransferSupported } from './supported.mjs'; // Throw an error if running on a platform which raw transfer doesn't support. diff --git a/napi/parser/raw-transfer/eager.mjs b/napi/parser/src-js/raw-transfer/eager.mjs similarity index 94% rename from napi/parser/raw-transfer/eager.mjs rename to napi/parser/src-js/raw-transfer/eager.mjs index f58fdc4344529..37746c3b4a3f1 100644 --- a/napi/parser/raw-transfer/eager.mjs +++ b/napi/parser/src-js/raw-transfer/eager.mjs @@ -55,7 +55,7 @@ function deserialize(buffer, sourceText, sourceByteLen) { // Lazy load deserializer, and deserialize buffer to JS objects let data; if (isJsAst(buffer)) { - if (deserializeJS === null) deserializeJS = require('../generated/deserialize/js.mjs').deserialize; + if (deserializeJS === null) deserializeJS = require('../../generated/deserialize/js.mjs').deserialize; // `preserveParens` argument is unconditionally `true` here. If `options` contains `preserveParens: false`, // `ParenthesizedExpression` nodes won't be in AST anyway, so the value is irrelevant. @@ -67,7 +67,7 @@ function deserialize(buffer, sourceText, sourceByteLen) { data.comments.unshift({ type: 'Line', value: hashbang.value, start: hashbang.start, end: hashbang.end }); } } else { - if (deserializeTS === null) deserializeTS = require('../generated/deserialize/ts.mjs').deserialize; + if (deserializeTS === null) deserializeTS = require('../../generated/deserialize/ts.mjs').deserialize; // `preserveParens` argument is unconditionally `true` here. If `options` contains `preserveParens: false`, // `ParenthesizedExpression` nodes won't be in AST anyway, so the value is irrelevant. diff --git a/napi/parser/raw-transfer/lazy-common.mjs b/napi/parser/src-js/raw-transfer/lazy-common.mjs similarity index 100% rename from napi/parser/raw-transfer/lazy-common.mjs rename to napi/parser/src-js/raw-transfer/lazy-common.mjs diff --git a/napi/parser/raw-transfer/lazy.mjs b/napi/parser/src-js/raw-transfer/lazy.mjs similarity index 96% rename from napi/parser/raw-transfer/lazy.mjs rename to napi/parser/src-js/raw-transfer/lazy.mjs index c50276abd2878..9c10ae1d06677 100644 --- a/napi/parser/raw-transfer/lazy.mjs +++ b/napi/parser/src-js/raw-transfer/lazy.mjs @@ -1,6 +1,6 @@ -import { DATA_POINTER_POS_32, PROGRAM_OFFSET } from '../generated/constants.mjs'; -import { RawTransferData } from '../generated/lazy/constructors.mjs'; -import { walkProgram } from '../generated/lazy/walk.mjs'; +import { DATA_POINTER_POS_32, PROGRAM_OFFSET } from '../../generated/constants.mjs'; +import { RawTransferData } from '../../generated/lazy/constructors.mjs'; +import { walkProgram } from '../../generated/lazy/walk.mjs'; import { parseAsyncRawImpl, parseSyncRawImpl, returnBufferToCache } from './common.mjs'; import { TOKEN } from './lazy-common.mjs'; import { getVisitorsArr } from './visitor.mjs'; diff --git a/napi/parser/raw-transfer/node-array.mjs b/napi/parser/src-js/raw-transfer/node-array.mjs similarity index 100% rename from napi/parser/raw-transfer/node-array.mjs rename to napi/parser/src-js/raw-transfer/node-array.mjs diff --git a/napi/parser/raw-transfer/supported.mjs b/napi/parser/src-js/raw-transfer/supported.mjs similarity index 100% rename from napi/parser/raw-transfer/supported.mjs rename to napi/parser/src-js/raw-transfer/supported.mjs diff --git a/napi/parser/raw-transfer/visitor.mjs b/napi/parser/src-js/raw-transfer/visitor.mjs similarity index 98% rename from napi/parser/raw-transfer/visitor.mjs rename to napi/parser/src-js/raw-transfer/visitor.mjs index d2e630060ea06..d5e2f1c899384 100644 --- a/napi/parser/raw-transfer/visitor.mjs +++ b/napi/parser/src-js/raw-transfer/visitor.mjs @@ -1,4 +1,4 @@ -import { LEAF_NODE_TYPES_COUNT, NODE_TYPE_IDS_MAP, NODE_TYPES_COUNT } from '../generated/lazy/types.mjs'; +import { LEAF_NODE_TYPES_COUNT, NODE_TYPE_IDS_MAP, NODE_TYPES_COUNT } from '../../generated/lazy/types.mjs'; // Getter for private `#visitorsArr` property of `Visitor` class. Initialized in class body below. let getVisitorsArrTemp; diff --git a/napi/parser/wasi-worker-browser.mjs b/napi/parser/src-js/wasi-worker-browser.mjs similarity index 100% rename from napi/parser/wasi-worker-browser.mjs rename to napi/parser/src-js/wasi-worker-browser.mjs diff --git a/napi/parser/wasi-worker.mjs b/napi/parser/src-js/wasi-worker.mjs similarity index 100% rename from napi/parser/wasi-worker.mjs rename to napi/parser/src-js/wasi-worker.mjs diff --git a/napi/parser/wasm.mjs b/napi/parser/src-js/wasm.mjs similarity index 100% rename from napi/parser/wasm.mjs rename to napi/parser/src-js/wasm.mjs diff --git a/napi/parser/webcontainer-fallback.js b/napi/parser/src-js/webcontainer-fallback.js similarity index 100% rename from napi/parser/webcontainer-fallback.js rename to napi/parser/src-js/webcontainer-fallback.js diff --git a/napi/parser/wrap.mjs b/napi/parser/src-js/wrap.mjs similarity index 100% rename from napi/parser/wrap.mjs rename to napi/parser/src-js/wrap.mjs diff --git a/napi/parser/test-browser/parse.test.ts b/napi/parser/test-browser/parse.test.ts index a5653a5c8a562..29b9386b701d5 100644 --- a/napi/parser/test-browser/parse.test.ts +++ b/napi/parser/test-browser/parse.test.ts @@ -1,5 +1,5 @@ import { expect, test } from 'vitest'; -import { parseAsync, parseSync } from '../wasm.mjs'; +import { parseAsync, parseSync } from '../src-js/wasm.mjs'; test('parseSync', () => { const result = parseSync('test.js', 'ok'); diff --git a/napi/parser/test/esm.test.ts b/napi/parser/test/esm.test.ts index 5e05c33bdbf27..7b6b137f3d538 100644 --- a/napi/parser/test/esm.test.ts +++ b/napi/parser/test/esm.test.ts @@ -1,6 +1,6 @@ import { describe, expect, test } from 'vitest'; -import { parseSync } from '../index.mjs'; +import { parseSync } from '../src-js/index.mjs'; describe('esm', () => { // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#syntax diff --git a/napi/parser/test/lazy-deserialization.test.ts b/napi/parser/test/lazy-deserialization.test.ts index 191df36245c6b..f3fb03d52bbd2 100644 --- a/napi/parser/test/lazy-deserialization.test.ts +++ b/napi/parser/test/lazy-deserialization.test.ts @@ -4,7 +4,7 @@ import { describe, expect, it } from 'vitest'; -import { parseSync } from '../index.mjs'; +import { parseSync } from '../src-js/index.mjs'; function parseSyncLazy(filename, code, options = null) { return parseSync(filename, code, { ...options, experimentalLazy: true }); diff --git a/napi/parser/test/parse-raw-worker.mjs b/napi/parser/test/parse-raw-worker.mjs index f0a4cab487096..b839604edf89a 100644 --- a/napi/parser/test/parse-raw-worker.mjs +++ b/napi/parser/test/parse-raw-worker.mjs @@ -3,7 +3,7 @@ import { readFile } from 'node:fs/promises'; import { basename, join as pathJoin } from 'node:path'; -import { parseSync } from '../index.mjs'; +import { parseSync } from '../src-js/index.mjs'; import { ACORN_TEST262_DIR_PATH, JSX_DIR_PATH, diff --git a/napi/parser/test/parse-raw.test.ts b/napi/parser/test/parse-raw.test.ts index 1b623b929b1c6..35a95bcd8fd37 100644 --- a/napi/parser/test/parse-raw.test.ts +++ b/napi/parser/test/parse-raw.test.ts @@ -5,7 +5,7 @@ import { basename, join as pathJoin } from 'node:path'; import Tinypool from 'tinypool'; import { describe, expect, it } from 'vitest'; -import { parseAsync, parseSync } from '../index.mjs'; +import { parseAsync, parseSync } from '../src-js/index.mjs'; import { ACORN_TEST262_DIR_PATH, diff --git a/napi/parser/test/parse.test.ts b/napi/parser/test/parse.test.ts index 20216f8a27e5a..3882a8ebdb41c 100644 --- a/napi/parser/test/parse.test.ts +++ b/napi/parser/test/parse.test.ts @@ -1,8 +1,13 @@ import { Worker } from 'node:worker_threads'; import { describe, expect, it, test } from 'vitest'; -import { parseAsync, parseSync } from '../index.mjs'; -import type { ExpressionStatement, ParserOptions, TSTypeAliasDeclaration, VariableDeclaration } from '../index.mjs'; +import { parseAsync, parseSync } from '../src-js/index.mjs'; +import type { + ExpressionStatement, + ParserOptions, + TSTypeAliasDeclaration, + VariableDeclaration, +} from '../src-js/index.mjs'; describe('parse', () => { const code = '/* comment */ foo'; diff --git a/napi/parser/test/parser.test-d.ts b/napi/parser/test/parser.test-d.ts index 8b133cce0feff..111318c1f4d3d 100644 --- a/napi/parser/test/parser.test-d.ts +++ b/napi/parser/test/parser.test-d.ts @@ -1,7 +1,7 @@ import { assertType, describe, it } from 'vitest'; -import type { Node, Statement } from '../index'; -import { parseSync } from '../index'; +import type { Node, Statement } from '../src-js/index.mjs'; +import { parseSync } from '../src-js/index.mjs'; describe('parse', () => { const code = '/* comment */ foo'; diff --git a/napi/parser/test/worker.mjs b/napi/parser/test/worker.mjs index abe8f09e6f015..862548a4fd255 100644 --- a/napi/parser/test/worker.mjs +++ b/napi/parser/test/worker.mjs @@ -1,2 +1,2 @@ -import { parseSync } from '../index.mjs'; +import { parseSync } from '../src-js/index.mjs'; parseSync('test.js', ''); diff --git a/napi/playground/patch.mjs b/napi/playground/patch.mjs index b601733a369c7..82f46054e0879 100644 --- a/napi/playground/patch.mjs +++ b/napi/playground/patch.mjs @@ -5,7 +5,7 @@ let data = fs.readFileSync(filename, 'utf-8'); data = data.replace( `export const Oxc = __napiModule.exports.Oxc`, ` -import { jsonParseAst } from "../parser/wrap.mjs" +import { jsonParseAst } from "../parser/src-js/wrap.mjs" export function Oxc() { const oxc = new __napiModule.exports.Oxc(); diff --git a/napi/playground/playground.wasi-browser.js b/napi/playground/playground.wasi-browser.js index 7dc836278c962..9d3476781098b 100644 --- a/napi/playground/playground.wasi-browser.js +++ b/napi/playground/playground.wasi-browser.js @@ -58,7 +58,7 @@ const { export default __napiModule.exports export const Severity = __napiModule.exports.Severity -import { jsonParseAst } from "../parser/wrap.mjs" +import { jsonParseAst } from "../parser/src-js/wrap.mjs" export function Oxc() { const oxc = new __napiModule.exports.Oxc(); diff --git a/tasks/ast_tools/src/generators/raw_transfer_lazy.rs b/tasks/ast_tools/src/generators/raw_transfer_lazy.rs index b675a55b9667a..e600e3a17172d 100644 --- a/tasks/ast_tools/src/generators/raw_transfer_lazy.rs +++ b/tasks/ast_tools/src/generators/raw_transfer_lazy.rs @@ -157,8 +157,8 @@ fn generate( let constructors = &state.constructors; #[rustfmt::skip] let constructors = format!(" - import {{ TOKEN, constructorError }} from '../../raw-transfer/lazy-common.mjs'; - import {{ NodeArray }} from '../../raw-transfer/node-array.mjs'; + import {{ constructorError, TOKEN }} from '../../src-js/raw-transfer/lazy-common.mjs'; + import {{ NodeArray }} from '../../src-js/raw-transfer/node-array.mjs'; const textDecoder = new TextDecoder('utf-8', {{ ignoreBOM: true }}), decodeStr = textDecoder.decode.bind(textDecoder),