Skip to content

Commit 0205864

Browse files
authored
feat(create-rslib): setup Node.js package templates (#319)
1 parent c8ae3a7 commit 0205864

File tree

23 files changed

+215
-51
lines changed

23 files changed

+215
-51
lines changed

packages/create-rslib/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"create-rstack": "1.0.7"
3232
},
3333
"devDependencies": {
34+
"@rslib/core": "workspace:*",
3435
"@rslib/tsconfig": "workspace:*",
3536
"@types/fs-extra": "^11.0.4",
3637
"@types/node": "~18.19.39",

packages/create-rslib/src/index.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,21 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
1313
async function getTemplateName({ template }: Argv) {
1414
if (typeof template === 'string') {
1515
const pair = template.split('-');
16-
const language = pair[1] ?? 'js';
17-
const type = pair[0];
18-
return `${type}-${language}`;
16+
const lang = pair[pair.length - 1];
17+
if (lang && ['js', 'ts'].includes(lang)) {
18+
return template;
19+
}
20+
// default to ts
21+
return `${template}-ts`;
1922
}
2023

2124
const type = checkCancel<string>(
2225
await select({
2326
message: 'Select template',
24-
options: [{ value: 'example', label: 'Example' }],
27+
options: [
28+
{ value: 'node-dual', label: 'Node.js dual ESM/CJS package' },
29+
{ value: 'node-esm', label: 'Node.js pure ESM package' },
30+
],
2531
}),
2632
);
2733

@@ -39,14 +45,14 @@ async function getTemplateName({ template }: Argv) {
3945
}
4046

4147
function mapESLintTemplate(templateName: string) {
42-
const language = templateName.split('-')[1];
48+
const language = templateName.split('-').pop();
4349
return `vanilla-${language}` as ESLintTemplateName;
4450
}
4551

4652
create({
4753
root: path.resolve(__dirname, '..'),
4854
name: 'rslib',
49-
templates: ['example-js', 'example-ts'],
55+
templates: ['node-dual-js', 'node-dual-ts', 'node-esm-js', 'node-esm-ts'],
5056
getTemplateName,
5157
mapESLintTemplate,
5258
});

packages/create-rslib/template-example-js/package.json

Lines changed: 0 additions & 12 deletions
This file was deleted.

packages/create-rslib/template-example-js/rslib.config.mjs

Lines changed: 0 additions & 5 deletions
This file was deleted.

packages/create-rslib/template-example-ts/package.json

Lines changed: 0 additions & 13 deletions
This file was deleted.

packages/create-rslib/template-example-ts/rslib.config.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"name": "rslib-node-dual-js",
3+
"version": "0.0.0",
4+
"type": "module",
5+
"exports": {
6+
".": {
7+
"import": "./dist/index.js",
8+
"require": "./dist/index.cjs"
9+
}
10+
},
11+
"main": "./dist/index.cjs",
12+
"module": "./dist/index.js",
13+
"files": [
14+
"dist"
15+
],
16+
"scripts": {
17+
"build": "rslib build",
18+
"dev": "rslib build --watch"
19+
},
20+
"devDependencies": {
21+
"@rslib/core": "workspace:*"
22+
}
23+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { defineConfig } from '@rslib/core';
2+
3+
export default defineConfig({
4+
lib: [
5+
{
6+
format: 'esm',
7+
syntax: 'es2021',
8+
},
9+
{
10+
format: 'cjs',
11+
syntax: 'es2021',
12+
},
13+
],
14+
output: { target: 'node' },
15+
});
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"name": "rslib-node-dual-ts",
3+
"version": "0.0.0",
4+
"type": "module",
5+
"exports": {
6+
".": {
7+
"types": "./dist/index.d.ts",
8+
"import": "./dist/index.js",
9+
"require": "./dist/index.cjs"
10+
}
11+
},
12+
"main": "./dist/index.cjs",
13+
"module": "./dist/index.js",
14+
"types": "./dist/index.d.ts",
15+
"files": [
16+
"dist"
17+
],
18+
"scripts": {
19+
"build": "rslib build",
20+
"dev": "rslib build --watch"
21+
},
22+
"devDependencies": {
23+
"@rslib/core": "workspace:*",
24+
"typescript": "^5.6.3"
25+
}
26+
}

0 commit comments

Comments
 (0)