diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 105dc13..e7d5d6a 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -26,6 +26,9 @@ jobs:
- name: Format check
run: npm run format:check
+ - name: Typecheck
+ run: npm run typecheck
+
- name: Lint
run: npm run lint
diff --git a/.husky/pre-push b/.husky/pre-push
index c8d169e..72e38c4 100644
--- a/.husky/pre-push
+++ b/.husky/pre-push
@@ -1,6 +1,4 @@
#!/usr/bin/env sh
-echo "Running checks before push..."
-
-npm run lint
-npm run test
+echo "Running CI checks..."
+npm run ci
diff --git a/eslint.config.js b/eslint.config.js
index a53e381..a3a6785 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -6,7 +6,7 @@ import tseslint from 'typescript-eslint';
import { defineConfig, globalIgnores } from 'eslint/config';
export default defineConfig([
- globalIgnores(['dist']),
+ globalIgnores(['dist', 'node_modules', 'build', 'coverage']),
{
files: ['**/*.{ts,tsx}'],
extends: [
diff --git a/package.json b/package.json
index b562497..881fef7 100644
--- a/package.json
+++ b/package.json
@@ -6,12 +6,14 @@
"scripts": {
"dev": "vite",
"build": "tsc -b && vite build",
- "elint": "eslint .",
- "lint": "tsc --noEmit -p tsconfig.json",
"preview": "vite preview",
+ "lint": "eslint .",
+ "lint:fix": "eslint . --fix",
+ "typecheck": "tsc --noEmit",
"format": "prettier --write .",
"format:check": "prettier --check .",
"test": "",
+ "ci": "npm run format:check && npm run typecheck && npm run lint && npm run test",
"lint-staged": "lint-staged",
"prepare": "husky"
},
diff --git a/src/components/Footer/Footer.tsx b/src/components/Footer/Footer.tsx
index 329fd05..7e1a8c7 100644
--- a/src/components/Footer/Footer.tsx
+++ b/src/components/Footer/Footer.tsx
@@ -31,7 +31,7 @@ export const Footer = () => {
npm
{
}
diff --git a/src/components/Hero/Hero.tsx b/src/components/Hero/Hero.tsx
index e21ae37..e805937 100644
--- a/src/components/Hero/Hero.tsx
+++ b/src/components/Hero/Hero.tsx
@@ -1,6 +1,9 @@
import OpenInNewIcon from '@mui/icons-material/OpenInNew';
+import ListIcon from '@mui/icons-material/List';
import { Box, Button, Chip, Container, Stack, Typography } from '@mui/material';
+import { Link as RouterLink } from 'react-router-dom';
import { InstallCommand } from '../InstallCommand/InstallCommand';
+import { ProjectBadges } from '../ProjectBadges/ProjectBadges.tsx';
export const Hero = () => {
return (
@@ -37,6 +40,8 @@ export const Hero = () => {
}}
/>
+
+
{
View on npm
}
+ to="/docs"
+ startIcon={}
>
Documentation
@@ -82,7 +86,7 @@ export const Hero = () => {
mt: 3,
width: '100%',
p: { xs: 3, md: 4 },
- borderRadius: 4,
+ borderRadius: 1,
bgcolor: 'background.paper',
border: '1px solid',
borderColor: 'divider',
diff --git a/src/components/InstallCommand/InstallCommand.tsx b/src/components/InstallCommand/InstallCommand.tsx
index 80d10ff..9107c1d 100644
--- a/src/components/InstallCommand/InstallCommand.tsx
+++ b/src/components/InstallCommand/InstallCommand.tsx
@@ -23,7 +23,7 @@ export const InstallCommand = () => {
bgcolor: 'background.paper',
border: '1px solid',
borderColor: 'divider',
- borderRadius: 3,
+ borderRadius: 1,
px: 3,
py: 2,
maxWidth: 500,
diff --git a/src/components/ProjectBadges/ProjectBadges.tsx b/src/components/ProjectBadges/ProjectBadges.tsx
new file mode 100644
index 0000000..b6356b9
--- /dev/null
+++ b/src/components/ProjectBadges/ProjectBadges.tsx
@@ -0,0 +1,65 @@
+import { Stack, Box, Link } from '@mui/material';
+
+const packageName = '@dfsync/client';
+const repoName = 'dfsyncjs/dfsync';
+
+export const ProjectBadges = () => {
+ return (
+
+ {/* npm version */}
+
+
+
+
+ {/* npm weekly downloads */}
+
+
+
+
+ {/* github stars */}
+
+
+
+
+
+
+ );
+};
diff --git a/src/components/index.ts b/src/components/index.ts
index 37735ff..7f27aa8 100644
--- a/src/components/index.ts
+++ b/src/components/index.ts
@@ -2,3 +2,4 @@ export { Features } from './Features/Features';
export { Footer } from './Footer/Footer';
export { Header } from './Header/Header';
export { Hero } from './Hero/Hero';
+export { ProjectBadges } from './ProjectBadges/ProjectBadges';