Skip to content

Commit 4cb7206

Browse files
committed
refactor(create-rstack): align bundled template names
1 parent 4efce95 commit 4cb7206

100 files changed

Lines changed: 49 additions & 51 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎packages/create-rstack/src/index.ts‎

Lines changed: 36 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -5,51 +5,46 @@ import {
55
create,
66
select,
77
} from '@rstackjs/create-toolkit';
8-
import { appendFile, mkdir, readFile, writeFile } from 'node:fs/promises';
8+
import { access, appendFile, mkdir, readFile, writeFile } from 'node:fs/promises';
99
import path from 'node:path';
1010

1111
const packageRoot = path.join(import.meta.dirname, '..');
1212

13-
const templateNameMap = {
14-
'app-vanilla': 'app-vanilla-js',
15-
'app-vanilla-ts': 'app-vanilla-ts',
16-
'app-react': 'app-react-js',
17-
'app-react-ts': 'app-react-ts',
18-
'app-preact': 'app-preact-js',
19-
'app-preact-ts': 'app-preact-ts',
20-
'app-vue': 'app-vue-js',
21-
'app-vue-ts': 'app-vue-ts',
22-
'app-lit': 'app-lit-js',
23-
'app-lit-ts': 'app-lit-ts',
24-
'app-svelte': 'app-svelte-js',
25-
'app-svelte-ts': 'app-svelte-ts',
26-
'app-solid': 'app-solid-js',
27-
'app-solid-ts': 'app-solid-ts',
28-
'lib-node': 'lib-node-js',
29-
'lib-node-ts': 'lib-node-ts',
30-
'lib-react': 'lib-react-js',
31-
'lib-react-ts': 'lib-react-ts',
32-
'lib-vue': 'lib-vue-js',
33-
'lib-vue-ts': 'lib-vue-ts',
34-
'lib-svelte': 'lib-svelte-js',
35-
'lib-svelte-ts': 'lib-svelte-ts',
36-
'lib-solid': 'lib-solid-js',
37-
'lib-solid-ts': 'lib-solid-ts',
38-
doc: 'doc-basic',
39-
'doc-i18n': 'doc-i18n',
40-
} as const;
41-
42-
type TemplateName = keyof typeof templateNameMap;
43-
44-
const isTemplateName = (template: string): template is TemplateName =>
45-
Object.hasOwn(templateNameMap, template);
13+
const templateNames = [
14+
'app-vanilla',
15+
'app-vanilla-ts',
16+
'app-react',
17+
'app-react-ts',
18+
'app-preact',
19+
'app-preact-ts',
20+
'app-vue',
21+
'app-vue-ts',
22+
'app-lit',
23+
'app-lit-ts',
24+
'app-svelte',
25+
'app-svelte-ts',
26+
'app-solid',
27+
'app-solid-ts',
28+
'lib-node',
29+
'lib-node-ts',
30+
'lib-react',
31+
'lib-react-ts',
32+
'lib-vue',
33+
'lib-vue-ts',
34+
'lib-svelte',
35+
'lib-svelte-ts',
36+
'lib-solid',
37+
'lib-solid-ts',
38+
'doc',
39+
'doc-i18n',
40+
];
4641

4742
const resolveTemplateName = (template: string): string => {
48-
if (!isTemplateName(template)) {
43+
if (!templateNames.includes(template)) {
4944
throw new Error(`Invalid input: template "${template}" not found.`);
5045
}
5146

52-
return templateNameMap[template];
47+
return template;
5348
};
5449

5550
const getTemplateName = async ({ template }: Argv): Promise<string> => {
@@ -162,7 +157,10 @@ const injectStagedSetup = async ({
162157
return;
163158
}
164159

165-
const configExtension = templateName.endsWith('-js') ? 'js' : 'ts';
160+
const configExtension = await access(path.join(distFolder, 'rstack.config.ts')).then(
161+
() => 'ts',
162+
() => 'js',
163+
);
166164
const packageJsonPath = path.join(distFolder, 'package.json');
167165
const packageJson = JSON.parse(await readFile(packageJsonPath, 'utf8')) as {
168166
scripts: Record<string, string>;
@@ -189,7 +187,7 @@ const injectStagedSetup = async ({
189187
await create({
190188
root: packageRoot,
191189
name: 'rstack',
192-
templates: Object.keys(templateNameMap),
190+
templates: templateNames,
193191
builtinTools: [],
194192
getTemplateName,
195193
onGitResolved: injectStagedSetup,

packages/create-rstack/template-app-lit-js/package.json renamed to packages/create-rstack/template-app-lit/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "rstack-app-lit-js",
2+
"name": "rstack-app-lit",
33
"version": "1.0.0",
44
"private": true,
55
"type": "module",

packages/create-rstack/template-app-lit-js/rstack.config.js renamed to packages/create-rstack/template-app-lit/rstack.config.js

File renamed without changes.

packages/create-rstack/template-app-lit-js/src/index.css renamed to packages/create-rstack/template-app-lit/src/index.css

File renamed without changes.

packages/create-rstack/template-app-lit-js/src/index.html renamed to packages/create-rstack/template-app-lit/src/index.html

File renamed without changes.

packages/create-rstack/template-app-lit-js/src/index.js renamed to packages/create-rstack/template-app-lit/src/index.js

File renamed without changes.

packages/create-rstack/template-app-lit-js/src/my-element.js renamed to packages/create-rstack/template-app-lit/src/my-element.js

File renamed without changes.

packages/create-rstack/template-app-lit-js/tests/index.test.js renamed to packages/create-rstack/template-app-lit/tests/index.test.js

File renamed without changes.

packages/create-rstack/template-app-preact-js/package.json renamed to packages/create-rstack/template-app-preact/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "rstack-app-preact-js",
2+
"name": "rstack-app-preact",
33
"version": "1.0.0",
44
"private": true,
55
"type": "module",

packages/create-rstack/template-app-preact-js/rstack.config.js renamed to packages/create-rstack/template-app-preact/rstack.config.js

File renamed without changes.

0 commit comments

Comments
 (0)