A collection of utility functions used across the Graviola project. This package provides common helper functions for string manipulation, data transformation, date handling, and more.
Functions added to this package should not have any dependecies or be already provided by lodash. (A negative example would be camelCaseToTitleCase
which is provided by lodash or ellipsis
which is provided by lodash.truncate
but for historical reasons its still in this package and will be removed in the future.)
Also these functions are intendet to be used in the browser and in node.js.
npm install @graviola/core-utils
# or
yarn add @graviola/core-utils
# or
bun add @graviola/core-utils
-
camelCaseToTitleCase
: Convert camelCase strings to Title CasecamelCaseToTitleCase("helloWorld"); // "Hello World"
-
ellipsis
: Truncate text with an ellipsisellipsis("Long text to truncate", 10); // "Long text…"
-
leftpad
: Pad numbers with leading charactersleftpad(5, 3); // "005" leftpad(7, 4, "x"); // "xxx7"
-
specialDate
utilities for working with numeric date representations (YYYYMMDD format)getDatePart(20230915, "year"); // 2023 getPaddedDate(new Date("2023-09-15")); // "20230915"
-
filterJSONLD
: Remove JSON-LD specific properties from objects -
replaceJSONLD
: Replace JSON-LD property markers with custom strings -
foldInner2Outer
: Transform nested object structures -
resolveObj
: Safely access nested object properties
-
parseMarkdownLinks
: Extract links from markdown textparseMarkdownLinks("[Google](https://google.com)"); // [{ label: "Google", url: "https://google.com" }]
-
hexToRGBA
: Convert hex color codes to RGBA formathexToRGBA("#ff0000", 0.5); // "rgba(255, 0, 0, 0.5)"
-
envToSparqlEndpoint
: Convert environment variables to SPARQL endpoint configuration -
encodeIRI/decodeIRI
: Encode/decode IRIs to a format that is safe to use in URLs, but unlikeencodeURIComponent
anddecodeURIComponent
just converts the IRI to a base64 string, thus
-
filterUndefOrNull
: Remove undefined and null values from arrays -
makeColumnDesc
: Generate column descriptors with letter indices -
index2letter
: Convert numeric indices to spreadsheet-style column letters (A, B, C, ...)
import {
camelCaseToTitleCase,
ellipsis,
hexToRGBA,
parseMarkdownLinks,
} from "@graviola/core-utils";
// Convert camelCase to Title Case
const title = camelCaseToTitleCase("myVariableName");
// => "My Variable Name"
// Truncate long text
const truncated = ellipsis("This is a very long text", 10);
// => "This is a…"
// Convert hex color to rgba
const color = hexToRGBA("#ff0000", 0.5);
// => "rgba(255, 0, 0, 0.5)"
// Parse markdown links
const links = parseMarkdownLinks("[Link](https://example.com)");
// => [{ label: "Link", url: "https://example.com" }]
This package is part of the Graviola project.