Search documentation

Search all pages, headings and text, in the current package or topic or in all documentation.

active-helpers

Small, dependency-free helpers several Active packages must agree on exactly - CSV and TSV serialization, PDF font rules and the menu pipeline.

@workspace/active-helpers 1.0.0Developmentunreleased, in development in Foundationbaseline ce081dc3

@workspace/active-helpers holds the helpers that active-grid, active-charts and active-geo share: one owner, one folder, one version, instead of a copy in each. Every module is plain TypeScript without a single import, so it runs in a browser, in Node.js and in a worker alike. An application may use the helpers too.

A row for a file and for the clipboardClient

neutralizeFormula
'=HYPERLINK("http://example.com")
csvRow (;)
"ORD-00042";"'=HYPERLINK(""http://example.com"")";"line one line two";"12.5"
tsvRow
ORD-00042→"'=HYPERLINK(""http://example.com"")"→"line one line two"→12.5

Entry points#

ImportContents
@workspace/active-helpers/serializationcsvField, csvRow, tsvField, tsvRow, neutralizeFormula, DEFAULT_CSV_DELIMITER, serializeDecimals
@workspace/active-helpers/export-fontswhich text a jsPDF-class backend can draw, font byte classification, the four PDF font styles, covering-family choice
@workspace/active-helpers/menu-itemsthe menu item contract and resolveMenuItems, the one pipeline every Active menu runs through

There is no root entry. Every export and its contract are in the API reference.

What it guarantees#

  • Formula safety. A value that a spreadsheet would execute (=, @, or a sign followed by an expression) gets a leading apostrophe in every CSV and TSV field.
  • Any delimiter is safe. CSV fields are always quoted; TSV fields are quoted only where a tab, newline or quote would break the row, and never stripped.
  • One menu rule. Filtering, separators and the destructive tail are resolved the same way in every product's menu.

Receiving it#

You rarely request it yourself: it comes along with a product that needs it. On its own, request it as an owner (--owners active-helpers) and declare "@workspace/active-helpers": "workspace:*"; then follow Receiving packages.

Origin#

The five helper modules were the portable-helpers selection of @workspace/active-utils 2.0.0 in the repository the packages came from. Foundation formed this package from that selection on 2026-10-21, so the helpers have one owner and travel as one canonical folder. The behaviour is unchanged; only the package name in the import differs.

This page as Markdown