swc-node
swc-node copied to clipboard
Class with a decorated method called "export" results in a compilation error
// test.ts
function decorator(target: any, propertyName: string, descriptor: TypedPropertyDescriptor<(...args: any) => any>) {
}
class Foo {
@decorator
export() {
}
}
Running
node -r @swc-node/register src/test.ts
This throws an error:
/Users/dmytro/Projects/work/dxos/protocols/common/temp/node_modules/.pnpm/@[email protected]/node_modules/@swc/core/index.js:142
throw err;
^
Error: error: `export` is not allowed here
|
7 | export() {
| ^^^^^^
Caused by:
0: failed to process js file
1: Syntax Error
at Compiler.transformSync (/Users/dmytro/Projects/work/dxos/protocols/common/temp/node_modules/.pnpm/@[email protected]/node_modules/@swc/core/index.js:139:29)
at transformSync (/Users/dmytro/Projects/work/dxos/protocols/common/temp/node_modules/.pnpm/@[email protected]/node_modules/@swc/core/index.js:223:21)
at transformSync (/Users/dmytro/Projects/work/dxos/protocols/common/temp/node_modules/.pnpm/@[email protected]/node_modules/@swc-node/core/index.ts:69:26)
at compile (/Users/dmytro/Projects/work/dxos/protocols/common/temp/node_modules/.pnpm/@[email protected]/node_modules/@swc-node/register/register.ts:44:40)
at exts (/Users/dmytro/Projects/work/dxos/protocols/common/temp/node_modules/.pnpm/@[email protected]/node_modules/@swc-node/register/register.ts:55:31)
at Module._compile (/Users/dmytro/Projects/work/dxos/protocols/common/temp/node_modules/.pnpm/[email protected]/node_modules/pirates/lib/index.js:130:29)
at Module._extensions..js (node:internal/modules/cjs/loader:1138:10)
at Object.newLoader [as .ts] (/Users/dmytro/Projects/work/dxos/protocols/common/temp/node_modules/.pnpm/[email protected]/node_modules/pirates/lib/index.js:141:7)
at Module.load (node:internal/modules/cjs/loader:989:32)
at Function.Module._load (node:internal/modules/cjs/loader:829:14) {
code: 'GenericFailure'
}
tsconfig:
{
"compilerOptions": {
"allowJs": true,
"composite": true,
"incremental": true,
"declarationMap": true,
"esModuleInterop": true,
"lib": [
"ESNext"
],
"jsx": "react",
"module": "commonjs",
"moduleResolution": "node",
"noImplicitOverride": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
"target": "ES2018",
"experimentalDecorators": true,
"stripInternal": true,
},
"include": ["**/src/**/*.ts","**/src/**/*.tsx"],
"exclude": ["node_modules", "dist"]
}