Bug Description
When @oxc-angular/vite compiles a file with an abstract decorated class, the output retains the TypeScript abstract keyword, producing invalid JavaScript.
Reproduced in a minimal Vite + @oxc-angular/vite project (no Storybook, no Vitest).
Input (base.provider.ts):
import { Injectable } from '@angular/core';
@Injectable()
export abstract class BaseProvider {
protected abstract get name(): string;
protected abstract initialize(): void;
public greet(): string {
return `Hello from ${this.name}`;
}
}
Build error:
let BaseProvider = abstract class BaseProvider {
^ Expected a semicolon
Expected: The abstract keyword should be stripped. Abstract methods should also be stripped or replaced with empty stubs.
Environment
@oxc-angular/vite: 0.0.17
- Vite: 8.0.0 (also reproduced with rolldown-vite 7.3.1)
- Angular: 20.x
- macOS (Apple Silicon)