Libraries (v1.1.10)
    Preparing search index...

    Libraries (v1.1.10)

    Cleverbrush Framework

    This repository contains utility libraries used by Cleverbrush Online Vector Editor.

    All of these packages are open-source and free to use.

    Libraries are written in TypeScript and distributed as ES6 modules. You can use them with any bundler or transpiler.

    Package Description
    @cleverbrush/async Async utilities: Collector, debounce, throttle, retry
    @cleverbrush/deep Deep operations on objects: equality, merge, flatten
    @cleverbrush/schema Schema definition and validation with TypeScript type inference
    @cleverbrush/mapper Schema-to-schema object mapping with type-safe property selectors
    @cleverbrush/scheduler Job scheduler for Node.js using worker threads
    @cleverbrush/knex-clickhouse Knex query builder dialect for ClickHouse

    This project uses npm workspaces. All libraries are located under the libs directory.

    npm run build
    

    All libraries are covered with unit tests. We use Vitest as a test runner.

    npm test
    

    API documentation is generated by TypeDoc and published at https://docs.cleverbrush.com/.

    npm run docs
    

    Each library also has its own README.md with usage examples and API reference.

    This project uses Changesets for versioning and publishing. All packages are versioned together (fixed versioning).

    1. Add a changeset — after making changes, run:

      npm run changeset
      

      Follow the prompts to select the affected packages and describe the change. This creates a changeset file in the .changeset directory.

    2. Version packages — when ready to release, consume all pending changesets and bump versions:

      npm run version
      

      This updates package.json versions and CHANGELOG.md files. Review and commit the result.

    3. Publish to npm — build and publish all packages:

      npm run release
      

      To publish a beta release instead:

      npm run publish:beta
      

    If you are going to create a pull request, please make sure that your changes are covered with tests and don't break existing ones. If you add a new feature or fix a bug, please update the documentation as well — usually it's just a matter of editing JSDoc comments.

    BSD-3-Clause