diff --git a/.changeset/class-type-parameters.md b/.changeset/class-type-parameters.md new file mode 100644 index 00000000..2fc6b1d1 --- /dev/null +++ b/.changeset/class-type-parameters.md @@ -0,0 +1,5 @@ +--- +'esrap': patch +--- + +fix: print class type parameters (`class Foo`) diff --git a/src/languages/ts/index.js b/src/languages/ts/index.js index ebc60867..bb3e5bdb 100644 --- a/src/languages/ts/index.js +++ b/src/languages/ts/index.js @@ -653,6 +653,13 @@ export default (options = {}) => { if (node.id) { context.visit(node.id); + } + + if (node.typeParameters) { + context.visit(node.typeParameters); + } + + if (node.id || node.typeParameters) { context.write(' '); } diff --git a/test/samples/ts-class-type-parameters/expected.ts b/test/samples/ts-class-type-parameters/expected.ts new file mode 100644 index 00000000..d8f0e407 --- /dev/null +++ b/test/samples/ts-class-type-parameters/expected.ts @@ -0,0 +1,2 @@ +class Foo {} +class Baz extends Bar {} \ No newline at end of file diff --git a/test/samples/ts-class-type-parameters/expected.ts.map b/test/samples/ts-class-type-parameters/expected.ts.map new file mode 100644 index 00000000..1f2314b2 --- /dev/null +++ b/test/samples/ts-class-type-parameters/expected.ts.map @@ -0,0 +1,11 @@ +{ + "version": 3, + "names": [], + "sources": [ + "input.js" + ], + "sourcesContent": [ + "class Foo {}\nclass Baz extends Bar {}\n" + ], + "mappings": "AAAA,MAAM,AAAA,GAAG,CAAC,CAAC,EAAE,CAAC,AAAA,CAAC;AACf,MAAM,AAAA,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,AAAA,CAAC" +} \ No newline at end of file diff --git a/test/samples/ts-class-type-parameters/input.ts b/test/samples/ts-class-type-parameters/input.ts new file mode 100644 index 00000000..20b5a1c2 --- /dev/null +++ b/test/samples/ts-class-type-parameters/input.ts @@ -0,0 +1,2 @@ +class Foo {} +class Baz extends Bar {}