Files
superset2/superset-frontend/plugins/plugin-chart-handlebars
Evan Rusackas d0575ceb29 feat(build): POC - add Turborepo for cached package builds
This PR adds Turborepo as a build orchestration tool for the frontend
monorepo, providing intelligent caching for package builds.

Changes:
- Add turbo.json with task pipeline configuration
- Add turbo devDependency to root package.json
- Add packageManager field for Turborepo compatibility
- Add build/clean/type-check scripts to all packages and plugins
- Add .turbo to .gitignore

New scripts:
- npm run turbo:build - Build all packages with caching
- npm run turbo:build:force - Build without cache
- npm run turbo:type-check - Type check all packages
- npm run turbo:clean - Clean all build artifacts

Benefits:
- Cached builds: 5s → 314ms (16x faster) on unchanged packages
- Parallel builds across packages
- Only rebuilds what changed
- Local-only caching (no cloud dependencies)

Note: Lerna is preserved for versioning and publishing. Turborepo
handles build orchestration, not package publishing.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-10 10:25:06 -08:00
..

@superset-ui/plugin-chart-handlebars

Version Libraries.io

This plugin renders the data using a handlebars template.

Usage

Configure key, which can be any string, and register the plugin. This key will be used to lookup this chart throughout the app.

import HandlebarsChartPlugin from '@superset-ui/plugin-chart-handlebars';

new HandlebarsChartPlugin().configure({ key: 'handlebars' }).register();

Then use it via SuperChart. See storybook for more details.

<SuperChart
  chartType="handlebars"
  width={600}
  height={600}
  formData={...}
  queriesData={[{
    data: {...},
  }]}
/>

File structure generated

├── package.json
├── README.md
├── tsconfig.json
├── src
│   ├── Handlebars.tsx
│   ├── images
│   │   └── thumbnail.png
│   ├── index.ts
│   ├── plugin
│   │   ├── buildQuery.ts
│   │   ├── controlPanel.ts
│   │   ├── index.ts
│   │   └── transformProps.ts
│   └── types.ts
├── test
│   └── index.test.ts
└── types
    └── external.d.ts

Available Handlebars Helpers in Superset

Below, you will find a list of all currently registered helpers in the Handlebars plugin for Superset. These helpers are registered and managed in the file HandlebarsViewer.tsx.

List of Registered Helpers:

  1. dateFormat: Formats a date using a specified format.

    • Usage: {{dateFormat my_date format="MMMM YYYY"}}
    • Default format: YYYY-MM-DD.
  2. stringify: Converts an object into a JSON string or returns a string representation of non-object values.

    • Usage: {{stringify myObj}}.
  3. formatNumber: Formats a number using locale-specific formatting.

    • Usage: {{formatNumber number locale="en-US"}}.
    • Default locale: en-US.
  4. parseJson: Parses a JSON string into a JavaScript object.

    • Usage: {{parseJson jsonString}}.