diff --git a/packages/config/eslint/base.js b/packages/config/eslint/base.js index 582a0e5d..157fccc0 100644 --- a/packages/config/eslint/base.js +++ b/packages/config/eslint/base.js @@ -1,5 +1,6 @@ /** @type {import('eslint').Linter.Config} */ const config = { + ignorePatterns: ['node_modules', 'dist', '.next', '.astro'], env: { es2022: true, node: true, diff --git a/packages/config/eslint/react.js b/packages/config/eslint/react.js index 230cdfba..af83d672 100644 --- a/packages/config/eslint/react.js +++ b/packages/config/eslint/react.js @@ -15,6 +15,7 @@ const config = { }, rules: { 'react/react-in-jsx-scope': 'off', + 'react/prop-types': 'off', }, }, ], diff --git a/packages/ui/.eslintrc.cjs b/packages/ui/.eslintrc.cjs new file mode 100644 index 00000000..9ceae152 --- /dev/null +++ b/packages/ui/.eslintrc.cjs @@ -0,0 +1,7 @@ +/** @type {import('eslint').Linter.Config} */ +const config = { + root: true, + extends: ['orbitkit/base', 'orbitkit/react'], +}; + +module.exports = config; diff --git a/packages/ui/package.json b/packages/ui/package.json index ef79505a..6ad6d237 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -46,7 +46,9 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch" + "dev": "tsup --watch", + "lint": "eslint . --cache --max-warnings 0", + "typecheck": "tsc --noEmit --tsBuildInfoFile .tsbuildinfo" }, "dependencies": { "@radix-ui/react-avatar": "^1.0.4", diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json index 56b4d905..a3520de8 100644 --- a/packages/ui/tsconfig.json +++ b/packages/ui/tsconfig.json @@ -7,5 +7,6 @@ "@/*": ["./src/*"], }, }, + "include": ["**/*.ts", "**/*.tsx", ".eslintrc.cjs"], "exclude": ["dist", "node_modules"], } diff --git a/packages/ui/tsup.config.ts b/packages/ui/tsup.config.ts index 2ed5d5e9..664a6baf 100644 --- a/packages/ui/tsup.config.ts +++ b/packages/ui/tsup.config.ts @@ -18,6 +18,13 @@ const entries = [ }, ]; +type PackageJson = { + exports: Record; + main: string; + module: string; + types: string; +}; + export default defineConfig({ entry: entries.map((entry) => entry.source), format: ['esm', 'cjs'], @@ -29,31 +36,28 @@ export default defineConfig({ outDir: 'dist', async onSuccess() { const packageJson = fs.readFileSync('./package.json', 'utf-8'); - const pkg = JSON.parse(packageJson); - pkg.exports = entries.reduce( - (acc: { [key: string]: Record }, entry) => { - acc[entry.export] = { - import: { - default: entry.source - .replace('src', 'dist') - .replace(/\.tsx?$/, '.js'), - types: entry.source - .replace('src', 'dist') - .replace(/\.tsx?$/, '.d.ts'), - }, - require: { - default: entry.source - .replace('src', 'dist') - .replace(/\.tsx?$/, '.cjs'), - types: entry.source - .replace('src', 'dist') - .replace(/\.tsx?$/, '.d.cts'), - }, - }; - return acc; - }, - {}, - ); + const pkg = JSON.parse(packageJson) as PackageJson; + pkg.exports = entries.reduce((acc: Record, entry) => { + acc[entry.export] = { + import: { + default: entry.source + .replace('src', 'dist') + .replace(/\.tsx?$/, '.js'), + types: entry.source + .replace('src', 'dist') + .replace(/\.tsx?$/, '.d.ts'), + }, + require: { + default: entry.source + .replace('src', 'dist') + .replace(/\.tsx?$/, '.cjs'), + types: entry.source + .replace('src', 'dist') + .replace(/\.tsx?$/, '.d.cts'), + }, + }; + return acc; + }, {}); pkg.main = './dist/index.cjs'; pkg.module = './dist/index.js';