Skip to content

Commit e6009ef

Browse files
authored
feat(ct): generate playwright/index.[tj]sx (#75)
1 parent 5b92494 commit e6009ef

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/generator.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import fs from 'fs';
1919
import { prompt } from 'enquirer';
2020
import colors from 'ansi-colors';
2121

22-
import { executeCommands, createFiles, executeTemplate, Command, languageToFileExtension } from './utils';
22+
import { executeCommands, createFiles, executeTemplate, Command, languageToFileExtension, getFileExtensionCT } from './utils';
2323
import { packageManager } from './packageManager';
2424

2525
export type PromptOptions = {
@@ -192,7 +192,7 @@ export class Generator {
192192
command: packageManager.installDevDependency(`${ctPackageName}${packageTag}`),
193193
});
194194

195-
const extension = languageToFileExtension(answers.language);
195+
const extension = getFileExtensionCT(answers.language, answers.framework);
196196
const htmlTemplate = executeTemplate(this._readAsset(path.join('playwright', 'index.html')), { extension }, new Map());
197197
files.set('playwright/index.html', htmlTemplate);
198198

src/utils.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import path from 'path';
2020

2121
import { prompt } from 'enquirer';
2222
import colors from 'ansi-colors';
23+
import { PromptOptions } from './generator';
2324

2425
export type Command = {
2526
command: string;
@@ -80,7 +81,18 @@ export function executeTemplate(input: string, args: Record<string, string>, sec
8081
return result.join('\n');
8182
}
8283

83-
export function languageToFileExtension(language: 'JavaScript' | 'TypeScript'): 'js' | 'ts' {
84+
export function getFileExtensionCT(language: PromptOptions['language'], framework: PromptOptions['framework']) {
85+
const isJsxFramework = framework === 'solid' || framework === 'react';
86+
if (isJsxFramework && language === 'JavaScript')
87+
return 'jsx';
88+
else if (isJsxFramework && language === 'TypeScript')
89+
return 'tsx';
90+
else if (language === 'TypeScript')
91+
return 'ts';
92+
return 'js';
93+
}
94+
95+
export function languageToFileExtension(language: PromptOptions['language']): 'js' | 'ts' {
8496
return language === 'JavaScript' ? 'js' : 'ts';
8597
}
8698

0 commit comments

Comments
 (0)