A TypeScript monorepo (@hackycy-kit) providing shared utilities, Vue 3 component enhancements (Ant Design Vue), and Node.js helpers. Uses pnpm workspaces + Turborepo.
pnpm build # Build all packages (via turbo, respects dependency order)
pnpm dev # Dev mode for packages/* with watch
pnpm play # Run Vue playground app (Vite dev server)
pnpm test # Run tests (vitest with happy-dom)
pnpm lint # Lint with eslint (antfu config)
pnpm typecheck # TypeScript type checkingRun a single test file:
pnpm vitest run --dom path/to/file.test.tsRun tests for a specific package:
pnpm vitest run --dom packages/sharedshared (foundation: no workspace deps)
βββ tools (extends shared + adds cache, axios, Vue hooks)
βββ advanced-antdv (Vue 3 + Ant Design Vue table/modal wrappers)
βββ (no relation)
node (standalone Node.js utilities, no workspace deps)
- shared β Foundation utility library: color, date (dayjs), DOM, download, tree traversal, string helpers, precision math (big.js), event emitter (mitt). All other browser-side packages depend on this.
- core β Re-exports shared, adds
StorageManager(localStorage/sessionStorage with TTL), re-exports axios, and Vue composition hooks. - advanced-antdv β
useTable()hook for ant-design-vue Table with auto-pagination, API fetching, row selection. Peer-depends onant-design-vue@^4andvue@^3. Has SCSS styles. - node β Pure Node.js stdlib utilities: IP resolution, terminal screen clearing, hyperlinks.
- Bundler:
tsdownβ each package has its owntsdown.config.ts. Outputs ESM (.mjs) + type declarations (.d.mts). - All packages use
"type": "module"and"sideEffects": false. - Workspace deps use
workspace:*protocol. - pnpm catalogs pin shared dev/lib dependency versions in
pnpm-workspace.yaml(catalogs:cli,lib,play,testing,types). - ESLint:
@antfu/eslint-configwithtype: 'lib'. - Pre-commit hook:
simple-git-hooksrunslint-staged(eslint --fix on all staged files). - Tests: Vitest 4 with
happy-domenvironment. Tests live alongside source in__tests__/directories.
playground/ is a Vue 3 + Vite + Tailwind CSS v4 demo app for testing library features interactively. Run pnpm build before pnpm play β the playground consumes the packages' compiled dist/ via workspace symlinks.
Structure: src/router/index.ts defines both routes and navConfig (the sidebar nav data). src/layouts/DefaultLayout.vue renders the sidebar + content shell. Demo pages live in src/views/{category}/. The app theme and ant-design-vue overrides are in src/style.css.