diff --git a/crates/oxc_syntax/src/generated/derive_estree.rs b/crates/oxc_syntax/src/generated/derive_estree.rs index 85c168b6fd3c1..9b2d7543c42b7 100644 --- a/crates/oxc_syntax/src/generated/derive_estree.rs +++ b/crates/oxc_syntax/src/generated/derive_estree.rs @@ -46,11 +46,11 @@ impl ESTree for ImportImportName<'_> { impl ESTree for ExportEntry<'_> { fn serialize(&self, serializer: S) { let mut state = serializer.serialize_struct(); - state.serialize_field("moduleRequest", &self.module_request); state.serialize_field("importName", &self.import_name); state.serialize_field("exportName", &self.export_name); state.serialize_field("localName", &self.local_name); state.serialize_field("isType", &self.is_type); + state.serialize_field("moduleRequest", &self.module_request); state.serialize_span(self.span); state.end(); } diff --git a/crates/oxc_syntax/src/module_record.rs b/crates/oxc_syntax/src/module_record.rs index bfd9592169d4f..cd0199f03787c 100644 --- a/crates/oxc_syntax/src/module_record.rs +++ b/crates/oxc_syntax/src/module_record.rs @@ -231,7 +231,11 @@ impl ImportImportName<'_> { #[ast] #[derive(Debug, Default, Clone, PartialEq, Eq)] #[generate_derive(ESTree)] -#[estree(no_type, no_ts_def)] +#[estree( + no_type, + no_ts_def, + field_order(import_name, export_name, local_name, is_type, module_request, span) +)] pub struct ExportEntry<'a> { /// Span of the import statement. #[estree(skip)] diff --git a/napi/parser/generated/deserialize/js.js b/napi/parser/generated/deserialize/js.js index 665d39f7cfe51..169b652df9815 100644 --- a/napi/parser/generated/deserialize/js.js +++ b/napi/parser/generated/deserialize/js.js @@ -4279,11 +4279,11 @@ function deserializeExportEntry(pos) { let start = deserializeU32(pos), end = deserializeU32(pos + 4); return { - moduleRequest: deserializeOptionNameSpan(pos + 16), importName: deserializeExportImportName(pos + 40), exportName: deserializeExportExportName(pos + 72), localName: deserializeExportLocalName(pos + 104), isType: deserializeBool(pos + 136), + moduleRequest: deserializeOptionNameSpan(pos + 16), start, end, }; diff --git a/napi/parser/generated/deserialize/js_parent.js b/napi/parser/generated/deserialize/js_parent.js index c719d95a3e564..502af04db4db6 100644 --- a/napi/parser/generated/deserialize/js_parent.js +++ b/napi/parser/generated/deserialize/js_parent.js @@ -5012,11 +5012,11 @@ function deserializeExportEntry(pos) { let start = deserializeU32(pos), end = deserializeU32(pos + 4); return { - moduleRequest: deserializeOptionNameSpan(pos + 16), importName: deserializeExportImportName(pos + 40), exportName: deserializeExportExportName(pos + 72), localName: deserializeExportLocalName(pos + 104), isType: deserializeBool(pos + 136), + moduleRequest: deserializeOptionNameSpan(pos + 16), start, end, }; diff --git a/napi/parser/generated/deserialize/js_range.js b/napi/parser/generated/deserialize/js_range.js index 7b946532e948a..f98b16cffa60f 100644 --- a/napi/parser/generated/deserialize/js_range.js +++ b/napi/parser/generated/deserialize/js_range.js @@ -4730,11 +4730,11 @@ function deserializeExportEntry(pos) { let start = deserializeU32(pos), end = deserializeU32(pos + 4); return { - moduleRequest: deserializeOptionNameSpan(pos + 16), importName: deserializeExportImportName(pos + 40), exportName: deserializeExportExportName(pos + 72), localName: deserializeExportLocalName(pos + 104), isType: deserializeBool(pos + 136), + moduleRequest: deserializeOptionNameSpan(pos + 16), start, end, range: [start, end], diff --git a/napi/parser/generated/deserialize/js_range_parent.js b/napi/parser/generated/deserialize/js_range_parent.js index c9547ede082a3..21298bd062008 100644 --- a/napi/parser/generated/deserialize/js_range_parent.js +++ b/napi/parser/generated/deserialize/js_range_parent.js @@ -5264,11 +5264,11 @@ function deserializeExportEntry(pos) { let start = deserializeU32(pos), end = deserializeU32(pos + 4); return { - moduleRequest: deserializeOptionNameSpan(pos + 16), importName: deserializeExportImportName(pos + 40), exportName: deserializeExportExportName(pos + 72), localName: deserializeExportLocalName(pos + 104), isType: deserializeBool(pos + 136), + moduleRequest: deserializeOptionNameSpan(pos + 16), start, end, range: [start, end], diff --git a/napi/parser/generated/deserialize/ts.js b/napi/parser/generated/deserialize/ts.js index 5e1eda6a9ba7b..6bd0efea17331 100644 --- a/napi/parser/generated/deserialize/ts.js +++ b/napi/parser/generated/deserialize/ts.js @@ -4532,11 +4532,11 @@ function deserializeExportEntry(pos) { let start = deserializeU32(pos), end = deserializeU32(pos + 4); return { - moduleRequest: deserializeOptionNameSpan(pos + 16), importName: deserializeExportImportName(pos + 40), exportName: deserializeExportExportName(pos + 72), localName: deserializeExportLocalName(pos + 104), isType: deserializeBool(pos + 136), + moduleRequest: deserializeOptionNameSpan(pos + 16), start, end, }; diff --git a/napi/parser/generated/deserialize/ts_parent.js b/napi/parser/generated/deserialize/ts_parent.js index 778184ba59eae..8bd6c216d5c1f 100644 --- a/napi/parser/generated/deserialize/ts_parent.js +++ b/napi/parser/generated/deserialize/ts_parent.js @@ -5273,11 +5273,11 @@ function deserializeExportEntry(pos) { let start = deserializeU32(pos), end = deserializeU32(pos + 4); return { - moduleRequest: deserializeOptionNameSpan(pos + 16), importName: deserializeExportImportName(pos + 40), exportName: deserializeExportExportName(pos + 72), localName: deserializeExportLocalName(pos + 104), isType: deserializeBool(pos + 136), + moduleRequest: deserializeOptionNameSpan(pos + 16), start, end, }; diff --git a/napi/parser/generated/deserialize/ts_range.js b/napi/parser/generated/deserialize/ts_range.js index 1a6083087f5bf..3f8bf776b0d51 100644 --- a/napi/parser/generated/deserialize/ts_range.js +++ b/napi/parser/generated/deserialize/ts_range.js @@ -4982,11 +4982,11 @@ function deserializeExportEntry(pos) { let start = deserializeU32(pos), end = deserializeU32(pos + 4); return { - moduleRequest: deserializeOptionNameSpan(pos + 16), importName: deserializeExportImportName(pos + 40), exportName: deserializeExportExportName(pos + 72), localName: deserializeExportLocalName(pos + 104), isType: deserializeBool(pos + 136), + moduleRequest: deserializeOptionNameSpan(pos + 16), start, end, range: [start, end], diff --git a/napi/parser/generated/deserialize/ts_range_parent.js b/napi/parser/generated/deserialize/ts_range_parent.js index 4f3edd4da410a..b4bf3e1313061 100644 --- a/napi/parser/generated/deserialize/ts_range_parent.js +++ b/napi/parser/generated/deserialize/ts_range_parent.js @@ -5532,11 +5532,11 @@ function deserializeExportEntry(pos) { let start = deserializeU32(pos), end = deserializeU32(pos + 4); return { - moduleRequest: deserializeOptionNameSpan(pos + 16), importName: deserializeExportImportName(pos + 40), exportName: deserializeExportExportName(pos + 72), localName: deserializeExportLocalName(pos + 104), isType: deserializeBool(pos + 136), + moduleRequest: deserializeOptionNameSpan(pos + 16), start, end, range: [start, end], diff --git a/napi/parser/src-js/index.d.ts b/napi/parser/src-js/index.d.ts index 0d40b6445bb20..f107d47119c84 100644 --- a/napi/parser/src-js/index.d.ts +++ b/napi/parser/src-js/index.d.ts @@ -209,7 +209,6 @@ export interface StaticExport { export interface StaticExportEntry { start: number end: number - moduleRequest?: ValueSpan /** The name under which the desired binding is exported by the module`. */ importName: ExportImportName /** The name used to export this binding by this module. */ @@ -230,6 +229,7 @@ export interface StaticExportEntry { * ``` */ isType: boolean + moduleRequest?: ValueSpan } export interface StaticImport { diff --git a/napi/parser/src/types.rs b/napi/parser/src/types.rs index 7a41ef1e4c528..c07c3d9941c94 100644 --- a/napi/parser/src/types.rs +++ b/napi/parser/src/types.rs @@ -182,7 +182,6 @@ pub struct ImportName { pub struct StaticExportEntry { pub start: u32, pub end: u32, - pub module_request: Option, /// The name under which the desired binding is exported by the module`. pub import_name: ExportImportName, /// The name used to export this binding by this module. @@ -201,6 +200,7 @@ pub struct StaticExportEntry { /// export type { foo } from 'mod'; /// ``` pub is_type: bool, + pub module_request: Option, } #[napi(object)] diff --git a/napi/parser/test/__snapshots__/esm.test.ts.snap b/napi/parser/test/__snapshots__/esm.test.ts.snap index 95390302af83a..d6f606bb13efd 100644 --- a/napi/parser/test/__snapshots__/esm.test.ts.snap +++ b/napi/parser/test/__snapshots__/esm.test.ts.snap @@ -12,11 +12,6 @@ exports[`esm > export * as name1 from "module-name"; 1`] = ` { "start": 0, "end": 37, - "moduleRequest": { - "value": "module-name", - "start": 23, - "end": 36 - }, "importName": { "kind": "All" }, @@ -29,7 +24,12 @@ exports[`esm > export * as name1 from "module-name"; 1`] = ` "localName": { "kind": "None" }, - "isType": false + "isType": false, + "moduleRequest": { + "value": "module-name", + "start": 23, + "end": 36 + } } ] } @@ -51,11 +51,6 @@ exports[`esm > export * from "module-name"; 1`] = ` { "start": 0, "end": 28, - "moduleRequest": { - "value": "module-name", - "start": 14, - "end": 27 - }, "importName": { "kind": "AllButDefault" }, @@ -65,7 +60,12 @@ exports[`esm > export * from "module-name"; 1`] = ` "localName": { "kind": "None" }, - "isType": false + "isType": false, + "moduleRequest": { + "value": "module-name", + "start": 14, + "end": 27 + } } ] } @@ -87,11 +87,6 @@ exports[`esm > export { default as name1 } from "module-name"; 1`] = ` { "start": 9, "end": 25, - "moduleRequest": { - "value": "module-name", - "start": 33, - "end": 46 - }, "importName": { "kind": "Name", "name": "default", @@ -107,7 +102,12 @@ exports[`esm > export { default as name1 } from "module-name"; 1`] = ` "localName": { "kind": "None" }, - "isType": false + "isType": false, + "moduleRequest": { + "value": "module-name", + "start": 33, + "end": 46 + } } ] } @@ -129,11 +129,6 @@ exports[`esm > export { default, /* …, */ } from "module-name"; 1`] = ` { "start": 9, "end": 16, - "moduleRequest": { - "value": "module-name", - "start": 34, - "end": 47 - }, "importName": { "kind": "Name", "name": "default", @@ -149,7 +144,12 @@ exports[`esm > export { default, /* …, */ } from "module-name"; 1`] = ` "localName": { "kind": "None" }, - "isType": false + "isType": false, + "moduleRequest": { + "value": "module-name", + "start": 34, + "end": 47 + } } ] } @@ -171,11 +171,6 @@ exports[`esm > export { import1 as name1, import2 as name2, /* …, */ nameN } f { "start": 9, "end": 25, - "moduleRequest": { - "value": "module-name", - "start": 67, - "end": 80 - }, "importName": { "kind": "Name", "name": "import1", @@ -191,16 +186,16 @@ exports[`esm > export { import1 as name1, import2 as name2, /* …, */ nameN } f "localName": { "kind": "None" }, - "isType": false - }, - { - "start": 27, - "end": 43, + "isType": false, "moduleRequest": { "value": "module-name", "start": 67, "end": 80 - }, + } + }, + { + "start": 27, + "end": 43, "importName": { "kind": "Name", "name": "import2", @@ -216,16 +211,16 @@ exports[`esm > export { import1 as name1, import2 as name2, /* …, */ nameN } f "localName": { "kind": "None" }, - "isType": false - }, - { - "start": 54, - "end": 59, + "isType": false, "moduleRequest": { "value": "module-name", "start": 67, "end": 80 - }, + } + }, + { + "start": 54, + "end": 59, "importName": { "kind": "Name", "name": "nameN", @@ -241,7 +236,12 @@ exports[`esm > export { import1 as name1, import2 as name2, /* …, */ nameN } f "localName": { "kind": "None" }, - "isType": false + "isType": false, + "moduleRequest": { + "value": "module-name", + "start": 67, + "end": 80 + } } ] } @@ -300,11 +300,6 @@ exports[`esm > export { name1, /* …, */ nameN } from "module-name"; 1`] = ` { "start": 9, "end": 14, - "moduleRequest": { - "value": "module-name", - "start": 38, - "end": 51 - }, "importName": { "kind": "Name", "name": "name1", @@ -320,16 +315,16 @@ exports[`esm > export { name1, /* …, */ nameN } from "module-name"; 1`] = ` "localName": { "kind": "None" }, - "isType": false - }, - { - "start": 25, - "end": 30, + "isType": false, "moduleRequest": { "value": "module-name", "start": 38, "end": 51 - }, + } + }, + { + "start": 25, + "end": 30, "importName": { "kind": "Name", "name": "nameN", @@ -345,7 +340,12 @@ exports[`esm > export { name1, /* …, */ nameN } from "module-name"; 1`] = ` "localName": { "kind": "None" }, - "isType": false + "isType": false, + "moduleRequest": { + "value": "module-name", + "start": 38, + "end": 51 + } } ] }