Skip to content

Commit c7ef8c7

Browse files
committed
feat: CLI for quick scaffolding
1 parent b09492a commit c7ef8c7

Some content is hidden

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

41 files changed

+2156
-990
lines changed

.npmrc

+2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
strict-peer-dependencies=false
22
shamefully-hoist=true
3+
ignore-workspace-root-check=true
4+
shell-emulator=true

.vscode/settings.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
{
22
"cSpell.words": [
3+
"antfu",
34
"Astro",
5+
"attributify",
46
"bumpp",
57
"coderwyd",
8+
"picocolors",
69
"taze",
7-
"tsup"
10+
"tsup",
11+
"unocss"
812
],
913
// Enable the ESlint flat config support
1014
"eslint.experimental.useFlatConfig": true,

bin/index.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/usr/bin/env node
2+
3+
import '../dist/cli.js'

eslint.config.js

+13-9
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,25 @@
1-
import { createRequire } from 'node:module'
2-
import sortKeys from 'eslint-plugin-sort-keys'
1+
// import { createRequire } from 'node:module'
32
import styleMigrate from '@stylistic/eslint-plugin-migrate'
43
import coderwyd from './dist/index.js'
54

6-
const require = createRequire(import.meta.url)
7-
require('sucrase/register')
5+
// const require = createRequire(import.meta.url)
6+
// require('sucrase/register')
87
// const { coderwyd } = require('./src/index.ts')
98

109
export default coderwyd(
11-
undefined,
10+
{
11+
vue: true,
12+
// react: true,
13+
typescript: true,
14+
ignores: [
15+
'fixtures',
16+
'_fixtures',
17+
],
18+
},
1219
{
1320
files: ['src/**/*.ts'],
14-
plugins: {
15-
'sort-keys': sortKeys,
16-
},
1721
rules: {
18-
'sort-keys/sort-keys-fix': 'error',
22+
'perfectionist/sort-objects': 'error',
1923
},
2024
},
2125
{

package.json

+54-20
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
"main": "./dist/index.js",
1919
"module": "./dist/index.js",
2020
"types": "./dist/index.d.ts",
21+
"bin": "./bin/index.js",
2122
"files": [
23+
"bin",
2224
"dist"
2325
],
2426
"publishConfig": {
@@ -28,9 +30,9 @@
2830
"node": ">=16.14.0"
2931
},
3032
"scripts": {
31-
"dev": "tsup src/index.ts --format esm,cjs --watch & eslint-flat-config-viewer",
32-
"build": "tsup src/index.ts --format esm,cjs --clean --dts",
33-
"stub": "tsup src/index.ts --format esm",
33+
"build": "tsup --format esm,cjs --clean --dts",
34+
"stub": "tsup --format esm",
35+
"dev": "tsup --format esm,cjs --watch & eslint-flat-config-viewer",
3436
"lint": "pnpm run stub && eslint .",
3537
"prepack": "nr build",
3638
"release": "bumpp && pnpm publish",
@@ -39,26 +41,45 @@
3941
"prepare": "simple-git-hooks"
4042
},
4143
"peerDependencies": {
42-
"eslint": ">=8.0.0"
44+
"@unocss/eslint-plugin": ">=0.50.0",
45+
"eslint": ">=8.40.0",
46+
"eslint-plugin-react": "^7.33.2",
47+
"eslint-plugin-react-hooks": "^4.6.0",
48+
"eslint-plugin-react-refresh": "^0.4.4"
49+
},
50+
"peerDependenciesMeta": {
51+
"@unocss/eslint-plugin": {
52+
"optional": true
53+
},
54+
"eslint-plugin-react": {
55+
"optional": true
56+
},
57+
"eslint-plugin-react-hooks": {
58+
"optional": true
59+
},
60+
"eslint-plugin-react-refresh": {
61+
"optional": true
62+
}
4363
},
4464
"dependencies": {
45-
"@stylistic/eslint-plugin": "^1.2.0",
65+
"@antfu/eslint-define-config": "^1.23.0-2",
66+
"@antfu/install-pkg": "^0.2.0",
67+
"@eslint-types/jsdoc": "46.8.2-1",
68+
"@eslint-types/typescript-eslint": "^6.12.0",
69+
"@eslint-types/unicorn": "^49.0.0",
70+
"@stylistic/eslint-plugin": "^1.4.0",
4671
"@typescript-eslint/eslint-plugin": "^6.12.0",
4772
"@typescript-eslint/parser": "^6.12.0",
48-
"astro-eslint-parser": "^0.16.0",
4973
"eslint-config-flat-gitignore": "^0.1.1",
50-
"eslint-define-config": "^1.24.1",
51-
"eslint-plugin-antfu": "1.0.11",
52-
"eslint-plugin-astro": "^0.29.1",
74+
"eslint-plugin-antfu": "^1.0.10",
5375
"eslint-plugin-eslint-comments": "^3.2.0",
5476
"eslint-plugin-i": "^2.29.0",
5577
"eslint-plugin-jsdoc": "^46.9.0",
5678
"eslint-plugin-jsonc": "^2.10.0",
5779
"eslint-plugin-markdown": "^3.0.1",
5880
"eslint-plugin-n": "^16.3.1",
5981
"eslint-plugin-no-only-tests": "^3.1.0",
60-
"eslint-plugin-react": "^7.33.2",
61-
"eslint-plugin-react-hooks": "^4.6.0",
82+
"eslint-plugin-perfectionist": "^2.4.0",
6283
"eslint-plugin-unicorn": "^49.0.0",
6384
"eslint-plugin-unused-imports": "^3.0.0",
6485
"eslint-plugin-vitest": "^0.3.10",
@@ -67,23 +88,36 @@
6788
"globals": "^13.23.0",
6889
"jsonc-eslint-parser": "^2.4.0",
6990
"local-pkg": "^0.5.0",
91+
"parse-gitignore": "^2.0.0",
92+
"picocolors": "^1.0.0",
93+
"prompts": "^2.4.2",
7094
"vue-eslint-parser": "^9.3.2",
71-
"yaml-eslint-parser": "^1.2.2"
95+
"yaml-eslint-parser": "^1.2.2",
96+
"yargs": "^17.7.2"
7297
},
7398
"devDependencies": {
74-
"@stylistic/eslint-plugin-migrate": "^0.0.6",
99+
"@antfu/ni": "^0.21.10",
100+
"@stylistic/eslint-plugin-migrate": "^1.4.0",
75101
"@types/eslint": "^8.44.7",
76-
"@types/node": "^20.10.0",
77-
"@types/react": "^18.2.38",
102+
"@types/fs-extra": "^11.0.4",
103+
"@types/node": "^20.9.4",
104+
"@types/prompts": "^2.4.9",
105+
"@types/yargs": "^17.0.32",
106+
"@unocss/eslint-plugin": "^0.57.7",
78107
"bumpp": "^9.2.0",
79108
"eslint": "^8.54.0",
80109
"eslint-flat-config-viewer": "^0.1.3",
81-
"eslint-plugin-sort-keys": "^2.3.5",
82-
"nano-staged": "^0.8.0",
83-
"react": "^18.2.0",
110+
"eslint-plugin-react": "^7.33.2",
111+
"eslint-plugin-react-hooks": "^4.6.0",
112+
"eslint-plugin-react-refresh": "^0.4.4",
113+
"esno": "^4.0.0",
114+
"execa": "^8.0.1",
115+
"fast-glob": "^3.3.2",
116+
"fs-extra": "^11.1.1",
117+
"lint-staged": "^15.1.0",
118+
"rimraf": "^5.0.5",
84119
"simple-git-hooks": "^2.9.0",
85-
"sucrase": "^3.34.0",
86-
"tsup": "^7.2.0",
120+
"tsup": "^8.0.1",
87121
"typescript": "^5.3.2",
88122
"vitest": "^0.34.6"
89123
},

0 commit comments

Comments
 (0)