mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 04:08:41 +00:00
fix(codegen): should print TSModuleDeclarationKind instead of just module (#3957)
This commit is contained in:
parent
2705df93b3
commit
51e54f902c
4 changed files with 26 additions and 7 deletions
|
|
@ -3267,9 +3267,12 @@ impl<'a, const MINIFY: bool> Gen<MINIFY> for TSModuleDeclaration<'a> {
|
|||
if self.declare {
|
||||
p.print_str(b"declare ");
|
||||
}
|
||||
p.print_str(b"module");
|
||||
p.print_space_before_identifier();
|
||||
self.id.gen(p, ctx);
|
||||
self.kind.gen(p, ctx);
|
||||
// If the kind is global, then the id is also `global`, so we don't need to print it
|
||||
if !self.kind.is_global() {
|
||||
p.print_space_before_identifier();
|
||||
self.id.gen(p, ctx);
|
||||
}
|
||||
|
||||
if let Some(body) = &self.body {
|
||||
let mut body = body;
|
||||
|
|
@ -3296,6 +3299,22 @@ impl<'a, const MINIFY: bool> Gen<MINIFY> for TSModuleDeclaration<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<const MINIFY: bool> Gen<MINIFY> for TSModuleDeclarationKind {
|
||||
fn gen(&self, p: &mut Codegen<{ MINIFY }>, _: Context) {
|
||||
match self {
|
||||
TSModuleDeclarationKind::Global => {
|
||||
p.print_str(b"global");
|
||||
}
|
||||
TSModuleDeclarationKind::Module => {
|
||||
p.print_str(b"module");
|
||||
}
|
||||
TSModuleDeclarationKind::Namespace => {
|
||||
p.print_str(b"namespace");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a, const MINIFY: bool> Gen<MINIFY> for TSModuleDeclarationName<'a> {
|
||||
fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) {
|
||||
match self {
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@ input_file: crates/oxc_isolated_declarations/tests/fixtures/declare-global.ts
|
|||
---
|
||||
==================== .D.TS ====================
|
||||
|
||||
declare module global {}
|
||||
declare global {}
|
||||
export {};
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ input_file: crates/oxc_isolated_declarations/tests/fixtures/expando-function.ts
|
|||
|
||||
export declare function foo(): void;
|
||||
export declare const bar: () => void;
|
||||
export declare module NS {
|
||||
export declare namespace NS {
|
||||
export const goo: () => void;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ Mismatch: "declarationRestParameters.ts"
|
|||
|
||||
#### "declarationComputedPropertyNames.ts" ####
|
||||
//// [declarationComputedPropertyNames.ts] ////
|
||||
export module presentNs {
|
||||
export namespace presentNs {
|
||||
export const a = Symbol();
|
||||
}
|
||||
const aliasing = Symbol;
|
||||
|
|
@ -67,7 +67,7 @@ export const D = {
|
|||
};
|
||||
|
||||
//// [declarationComputedPropertyNames.d.ts] ////
|
||||
export declare module presentNs {
|
||||
export declare namespace presentNs {
|
||||
export const a: unknown;
|
||||
}
|
||||
declare const aliasing: unknown;
|
||||
|
|
|
|||
Loading…
Reference in a new issue