TypeScript/tests/cases/fourslash/refactorConvertExport_exportNodeKinds.ts
Andy 806a661be3
Add refactor to convert named to default export and back (#24878)
* Add refactor to convert named to default export and back

* Support ambient module

* Handle declaration kinds that can't be default-exported

* Update API (#24966)
2018-06-25 10:34:24 -07:00

80 lines
1.5 KiB
TypeScript

/// <reference path='fourslash.ts' />
// @Filename: /fn.ts
////export function f() {}
// @Filename: /cls.ts
////export class C {}
// @Filename: /interface.ts
////export interface I {}
// @Filename: /enum.ts
////export const enum E {}
// @Filename: /namespace.ts
////export namespace N {}
// @Filename: /type.ts
////export type T = number;
// @Filename: /var_unused.ts
////export const x = 0;
// @Filename: /var_unused_noInitializer.ts
////export const x;
// @Filename: /var_used.ts
////export const x = 0;
////x;
const tests: { [fileName: string]: string | undefined } = {
fn: `export default function f() {}`,
cls: `export default class C {}`,
interface: `export default interface I {}`,
enum:
`const enum E {}
export default E;
`,
namespace:
`namespace N {}
export default N;
`,
type:
`type T = number;
export default T;
`,
var_unused: `export default 0;`,
var_unused_noInitializer: undefined,
var_used:
`const x = 0;
export default x;
x;`,
};
for (const name in tests) {
const newContent = tests[name];
const fileName = `/${name}.ts`;
goTo.selectAllInFile(fileName);
if (newContent === undefined) {
verify.refactorsAvailable([]);
}
else {
edit.applyRefactor({
refactorName: "Convert export",
actionName: "Convert named export to default export",
actionDescription: "Convert named export to default export",
newContent: { [fileName]: newContent },
});
}
}