Skip to content
/ basis Public

A unified development toolkit with CLI, package management, versioning, publishing, linting, and git hooks.

License

Notifications You must be signed in to change notification settings

funish/basis

Repository files navigation

Funish Basis

GitHub Contributor Covenant

A modern development toolkit with unified CLI for package management, versioning, publishing, code quality, and Git workflow automation.

Packages

  • @funish/basis - Unified CLI toolkit for development workflows: package management, versioning, publishing, code quality, and Git automation
  • @funish/build - Modern build system powered by Rolldown with Jiti stub support and Oxc transformation

Quick Start

# Install globally
pnpm add -g @funish/basis

# Initialize in your project
basis init

# Use commands
basis add lodash
basis lint
basis version patch
basis publish
// basis.config.ts
import { defineBasisConfig } from "@funish/basis/config";

export default defineBasisConfig({
  git: {
    hooks: {
      "pre-commit": "basis git staged",
      "commit-msg": "basis git lint-commit",
    },
    staged: {
      rules: {
        "*.{ts,tsx,js,jsx}": "basis lint --fix",
        "*.{json,md,yml,yaml}": "basis fmt --write",
      },
    },
  },
});

Development

Prerequisites

  • Node.js 18.x or higher
  • pnpm 9.x or higher
  • Git for version control

Getting Started

  1. Clone the repository:

    git clone https://github.com/funish/basis.git
    cd basis
  2. Install dependencies:

    pnpm install
  3. Development mode:

    pnpm dev
  4. Build all packages:

    pnpm build
  5. Test locally:

    # Link the package globally
    cd packages/basis
    pnpm link --global
    
    # Test your changes
    basis --version

Development Commands

pnpm dev            # Development mode with watch
pnpm build          # Build all packages
pnpm lint           # Run linting

Contributing

We welcome contributions!

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/YOUR_USERNAME/basis.git
  3. Install: pnpm install
  4. Develop: pnpm dev
  5. Test: pnpm build && basis <your-command>
  6. Commit: Use conventional commits (feat:, fix:, etc.)
  7. Push to your fork and create a Pull Request

Support & Community

License

This project is licensed under the MIT License - see the LICENSE file for details.


Built with ❤️ by Funish

Releases

No releases published

Packages

 
 
 

Contributors