Skip to content

v3.18.0

Choose a tag to compare

@58bits 58bits released this 09 Jul 06:54

Highlights

  • @byline/coreuseAsPath now accepts integer and counter source fields, not just text. derivePath already stringifies the source value before slugifying, so a numeric identity field (for example an allocator-assigned counter serial number) yields a clean numeric slug, and a replacement installation slugifier can branch on collectionPath to reshape it — such as zero-padding a serial to a fixed width. float / decimal remain excluded because their string form carries a ., which does not belong in a path segment.

  • @byline/core — added ClientConfig.slugifier, the client-side twin of ServerConfig.slugifier, and carried it through the getClientConfig() SSR fallback so a server-rendered form derives the same path preview as the hydrated client. Additive and backward-compatible: installations that keep the default slugifier need not set it.

  • @byline/admin — the path-widget's live preview now uses the installation slugifier resolved from getClientConfig() rather than always using the built-in slugify, so a custom slugifier's preview no longer disagrees with what the server persists (previously "Regenerate" could overwrite a correct path). The widget also suppresses the source-derived preview and the "Regenerate" affordance when the useAsPath source is a server-assigned counter or a read-only field, whose value cannot be reproduced or changed through the form.

Chores

  • monorepo — upgraded TypeScript to 7 (the native compiler).

All other @byline/* packages bumped to 3.18.0 in lockstep with no behavioural changes this cycle.