Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
158 commits
Select commit Hold shift + click to select a range
e1b756d
chore(editor-config): add editorconfig and vscode extension recommend…
rcpthongta Sep 17, 2026
4f3d328
chore(editor-config): configure cspell and add extension recommendation
rcpthongta Sep 17, 2026
8972a2b
merge: 'chore/configure-editor' into 'develop'
rcpthongta Sep 17, 2026
c5c981e
chore(project): initialize package.json and npmrc configuration
rcpthongta Sep 17, 2026
ff3a145
chore(deps-dev): add '@types/node'
rcpthongta Sep 17, 2026
1b5303a
chore(git): ignore node_modules directory
rcpthongta Sep 17, 2026
231d2a4
merge: 'chore/initialize-node-project' into 'develop'
rcpthongta Sep 17, 2026
a3927fb
merge: 'develop' into 'chore/configure-editor'
rcpthongta Sep 17, 2026
39f9672
chore(git): ignore vscode user files while keeping shared configs
rcpthongta Sep 17, 2026
a13103e
merge: 'chore/configure-editor' into 'develop'
rcpthongta Sep 17, 2026
dbd6b89
chore(deps-dev): add typescript, tsup, and rimraf
rcpthongta Sep 17, 2026
c4a1647
chore(build): configure typescript and tsup build pipeline
rcpthongta Sep 17, 2026
2a91590
chore(pkg): configure module exports and package distribution fields
rcpthongta Sep 17, 2026
f73b004
chore(scripts): add build scripts for js and types
rcpthongta Sep 17, 2026
eefcaa4
feat(index): initialize source entry point
rcpthongta Sep 17, 2026
1474512
chore(git): ignore build output directory
rcpthongta Sep 17, 2026
e80ed0d
chore(editor-config): configure workspace typescript and add ts error…
rcpthongta Sep 17, 2026
d08f3f2
merge: 'chore/configure-typescript' into 'develop'
rcpthongta Sep 17, 2026
4539074
chore(deps-dev): add eslint, prettier, and related plugins
rcpthongta Sep 17, 2026
82b1e1a
chore(lint): configure eslint and prettier formatting rules
rcpthongta Sep 17, 2026
d4c2276
chore(scripts): add lint and lint:fix scripts
rcpthongta Sep 17, 2026
2c85b2f
chore(editorconfig): enable trim trailing whitespace for code files
rcpthongta Sep 17, 2026
55f8918
chore(editor-config): configure eslint formatting and add extension r…
rcpthongta Sep 17, 2026
bd19401
style(tsc): format include array and normalize line endings
rcpthongta Sep 17, 2026
d385147
merge: 'chore/configure-linter' into 'develop'
rcpthongta Sep 17, 2026
82313f2
feat(has-text): add hasText utility function
rcpthongta Sep 17, 2026
9f3a610
merge: 'feat/has-text' into 'develop'
rcpthongta Sep 17, 2026
617f228
chore(deps-dev): add vitest and '@vitest/coverage-v8'
rcpthongta Sep 17, 2026
4231cfe
test(config): configure vitest test runner, benchmarks, and coverage
rcpthongta Sep 17, 2026
514ea43
chore(tsc): exclude spec files from build tsconfig
rcpthongta Sep 17, 2026
ecf4729
chore(scripts): add test and benchmark scripts
rcpthongta Sep 17, 2026
d7dfd42
chore(git): ignore test coverage directory
rcpthongta Sep 17, 2026
babac4d
merge: 'chore/configure-testing' into 'develop'
rcpthongta Sep 17, 2026
139e6c0
merge: 'develop' into 'feat/has-text'
rcpthongta Sep 17, 2026
f1ffa1d
chore(deps-dev): downgrade vitest and coverage to v4.1.10
rcpthongta Sep 17, 2026
0a16b73
merge: 'chore/configure-testing' into 'develop'
rcpthongta Sep 17, 2026
d7c5a26
merge: 'develop' into 'feat/has-text'
rcpthongta Sep 17, 2026
0ce7a94
test(has-text): add unit tests for non-whitespace string check
rcpthongta Sep 17, 2026
0f8d650
perf(has-text): add performance benchmarks for non-whitespace check
rcpthongta Sep 17, 2026
e80806d
merge: 'feat/has-text' into 'develop'
rcpthongta Sep 17, 2026
f727d8e
chore(deps-dev): add husky, lint-staged, and commitlint tooling
rcpthongta Sep 17, 2026
1d7098b
chore(git-hooks): configure husky hooks, commitlint, and lint-staged
rcpthongta Sep 17, 2026
a6960f1
chore(scripts): add git hook helper scripts
rcpthongta Sep 17, 2026
61f4ab9
merge: 'chore/configure-git-hooks' into 'develop'
rcpthongta Sep 17, 2026
bc0aa14
chore(scripts): update prepush script to run test and build
rcpthongta Sep 17, 2026
71c6984
merge: 'chore/configure-git-hooks' into 'develop'
rcpthongta Sep 17, 2026
9da22be
ci(github): add github workflows for linting and test coverage
rcpthongta Sep 17, 2026
232bf47
merge: 'ci/configure-workflow' into 'develop'
rcpthongta Sep 17, 2026
ff72cf7
chore(deps-dev): upgrade vitest and coverage to v5.0.1
rcpthongta Sep 21, 2026
0f07e0a
perf(has-text): refactor benchmarks to use vitest test context runner
rcpthongta Sep 21, 2026
979f28f
chore(lint): disable sonarjs assertion rule for benchmark files
rcpthongta Sep 21, 2026
4bc8398
merge: 'chore/upgrade-vitest-v5' into 'develop'
rcpthongta Sep 21, 2026
8b80b49
feat(has-length): add non-empty string check utility
rcpthongta Sep 21, 2026
c0c02a5
test(has-length): add unit tests for non-empty string check
rcpthongta Sep 21, 2026
20cd0b0
perf(has-length): add performance benchmarks for non-empty check
rcpthongta Sep 21, 2026
d2e62fb
merge: 'feat/has-length' into 'develop'
rcpthongta Sep 21, 2026
8241d79
test(has-text): refactor test cases to use test instead of it
rcpthongta Sep 21, 2026
7831a15
perf(has-text): migrate benchmarks to vitest test context
rcpthongta Sep 21, 2026
fac41d8
merge: 'feat/has-text' into 'develop'
rcpthongta Sep 21, 2026
5275abb
feat(default-if-blank): add fallback utility for blank strings
rcpthongta Sep 21, 2026
61f1412
test(default-if-blank): add unit tests for fallback blank string check
rcpthongta Sep 21, 2026
7e96f89
perf(default-if-blank): add performance benchmarks for fallback check
rcpthongta Sep 21, 2026
e8be1e9
merge: 'feat/default-if-blank' into 'develop'
rcpthongta Sep 21, 2026
692b7c2
feat(default-if-empty): add fallback utility for empty strings
rcpthongta Sep 21, 2026
ac02bcf
test(default-if-empty): add unit tests for fallback empty string check
rcpthongta Sep 21, 2026
db311f4
perf(default-if-empty): add performance benchmarks for fallback check
rcpthongta Sep 21, 2026
45bdb27
merge: 'feat/default-if-empty' into 'develop'
rcpthongta Sep 21, 2026
ab016a5
feat(constants): add EMPTY string constant
rcpthongta Sep 21, 2026
9a45966
feat(capitalize): add string first-character capitalization utility
rcpthongta Sep 21, 2026
69c246d
test(capitalize): add unit tests for string capitalization
rcpthongta Sep 21, 2026
acb1866
perf(capitalize): add performance benchmarks for string capitalization
rcpthongta Sep 21, 2026
a290aaf
merge: 'feat/capitalize' into 'develop'
rcpthongta Sep 21, 2026
0596d74
feat(uncapitalize): add string first-character lowercase utility
rcpthongta Sep 21, 2026
6ce699c
test(uncapitalize): add unit tests for string uncapitalization
rcpthongta Sep 21, 2026
66e9205
perf(uncapitalize): add performance benchmarks for string uncapitaliz…
rcpthongta Sep 21, 2026
7c29a1b
chore(editor-config): add uncapitalize to cspell words list
rcpthongta Sep 21, 2026
5f82985
merge: 'feat/uncapitalize' into 'develop'
rcpthongta Sep 21, 2026
4ff64ea
feat(constants): add WORD_REGEX unicode word boundary pattern
rcpthongta Sep 22, 2026
4e94a31
feat(camel-case): add camelCase string conversion utility
rcpthongta Sep 22, 2026
5324dfb
test(camel-case): add unit tests for camelCase string conversion
rcpthongta Sep 22, 2026
286bad5
perf(camel-case): add performance benchmarks for camelCase conversion
rcpthongta Sep 22, 2026
66ddc7b
merge: 'feat/camel-case' into 'develop'
rcpthongta Sep 22, 2026
3c65e33
feat(pascal-case): add PascalCase string conversion utility
rcpthongta Sep 22, 2026
09168d5
test(pascal-case): add unit tests for PascalCase string conversion
rcpthongta Sep 22, 2026
97eb18c
perf(pascal-case): add performance benchmarks for PascalCase conversion
rcpthongta Sep 22, 2026
2a1a6cc
merge: 'feat/pascal-case' into 'develop'
rcpthongta Sep 22, 2026
b17a193
feat(constants): add HYPHEN string constant
rcpthongta Sep 22, 2026
5331aed
feat(kebab-case): add kebab-case string conversion utility
rcpthongta Sep 22, 2026
d34c2ed
test(kebab-case): add unit tests for kebab-case string conversion
rcpthongta Sep 22, 2026
f24d0ef
perf(kebab-case): add performance benchmarks for kebab-case conversion
rcpthongta Sep 22, 2026
2b3d6c6
merge: 'feat/kebab-case' into 'develop'
rcpthongta Sep 22, 2026
25b0211
feat(constants): add UNDERSCORE string constant
rcpthongta Sep 22, 2026
1bb8a36
feat(snake-case): add snake_case string conversion utility
rcpthongta Sep 22, 2026
a5eeca9
test(snake-case): add unit tests for snake_case string conversion
rcpthongta Sep 22, 2026
23bb872
perf(snake-case): add performance benchmarks for snake_case conversion
rcpthongta Sep 22, 2026
2831448
merge: 'feat/snake-case' into 'develop'
rcpthongta Sep 22, 2026
5ec821e
feat(constant-case): add CONSTANT_CASE string conversion utility
rcpthongta Sep 22, 2026
3651f10
test(constant-case): add unit tests for CONSTANT_CASE conversion
rcpthongta Sep 22, 2026
140c508
perf(constant-case): add performance benchmarks for CONSTANT_CASE con…
rcpthongta Sep 22, 2026
9f82776
merge: 'feat/constant-case' into 'develop'
rcpthongta Sep 22, 2026
2c3cfdd
feat(constants): add whitespace normalization regex patterns
rcpthongta Sep 22, 2026
0e367a5
feat(constants): add SPACE string constant
rcpthongta Sep 22, 2026
4c73130
feat(collapse-whitespace): add whitespace normalization utility
rcpthongta Sep 22, 2026
749a99e
test(collapse-whitespace): add unit tests for whitespace normalization
rcpthongta Sep 22, 2026
a2be50f
perf(collapse-whitespace): add performance benchmarks for whitespace …
rcpthongta Sep 22, 2026
8e9a838
merge: 'feat/collapse-whitespace' into 'develop'
rcpthongta Sep 22, 2026
0600ae9
feat(constants): add diacritics and non-alphanumeric regex patterns
rcpthongta Sep 23, 2026
f6fa36c
feat(constants): add DOLLAR_SIGN string constant
rcpthongta Sep 23, 2026
9012053
feat(slugify): add URL-friendly string slugify utility
rcpthongta Sep 23, 2026
9916d99
test(slugify): add unit tests for slugify utility
rcpthongta Sep 23, 2026
f5ba0b6
perf(slugify): add performance benchmarks for string slugify
rcpthongta Sep 23, 2026
fca025d
merge: 'feat/slugify' into 'develop'
rcpthongta Sep 23, 2026
f737768
feat(constants): add FORMAT_PLACEHOLDER_REGEX placeholder pattern
rcpthongta Sep 23, 2026
5724b49
feat(constants): add DOT, LEFT_BRACE, and RIGHT_BRACE string constants
rcpthongta Sep 23, 2026
514be7c
feat(format): add string template formatting utilities
rcpthongta Sep 23, 2026
3a76181
test(format): add unit tests for string template formatting
rcpthongta Sep 23, 2026
b664a73
perf(format): add performance benchmarks for template formatting
rcpthongta Sep 23, 2026
2783157
merge: 'feat/format' into 'develop'
rcpthongta Sep 23, 2026
1c511f6
feat(constants): add UNICODE_DIGIT and UNICODE_LETTER regex patterns
rcpthongta Sep 23, 2026
dab2c89
feat(constants): add ASTERISK and HASH string constants
rcpthongta Sep 23, 2026
96d7d56
feat(types): add CharacterSegmentMode boundary type
rcpthongta Sep 23, 2026
91f7b82
feat(mask): add pattern-based string masking utility
rcpthongta Sep 23, 2026
3e53f8a
test(mask): add unit tests for string masking utility
rcpthongta Sep 23, 2026
6a16276
perf(mask): add performance benchmarks for pattern string masking
rcpthongta Sep 23, 2026
1bf08c5
merge: 'feat/mask' into 'develop'
rcpthongta Sep 23, 2026
0c8cfa8
feat(redact): add sensitive string redaction utility
rcpthongta Sep 23, 2026
35cbf29
test(redact): add unit tests for sensitive string redaction
rcpthongta Sep 23, 2026
d689596
perf(redact): add performance benchmarks for string redaction
rcpthongta Sep 23, 2026
c0ae728
merge: 'feat/redact' into 'develop'
rcpthongta Sep 23, 2026
a8388dc
chore(pkg): rename package to @rcpthongta/string-utils
rcpthongta Sep 23, 2026
7444b7a
merge: 'chore/update-package-name' into 'develop'
rcpthongta Sep 23, 2026
8a36a55
docs(license): add MIT license
rcpthongta Sep 23, 2026
8856d89
docs(security): add security policy and reporting guidelines
rcpthongta Sep 23, 2026
fc55503
docs(contributing): add development and contribution guidelines
rcpthongta Sep 23, 2026
98abc39
docs(changelog): initialize changelog for v1.0.0 release
rcpthongta Sep 23, 2026
017c21d
chore(github): add bug report issue template
rcpthongta Sep 23, 2026
8449cb9
chore(github): add feature request issue template
rcpthongta Sep 23, 2026
9103092
merge: 'chore/add-repository-docs' into 'develop'
rcpthongta Sep 23, 2026
b8a8e23
docs(readme): add comprehensive documentation, quick start, and guides
rcpthongta Sep 23, 2026
856334a
merge: 'docs/readme' into 'develop'
rcpthongta Sep 23, 2026
31c79bc
chore(release): bump package version to v1.0.0
rcpthongta Sep 23, 2026
4a035e6
ci(release): add npm publish workflow with provenance
rcpthongta Sep 23, 2026
4caf51d
chore(pkg): include CHANGELOG.md in published package files
rcpthongta Sep 23, 2026
87e065a
chore(build): exclude benchmark files from build tsconfig
rcpthongta Sep 23, 2026
00de7cf
merge: 'chore/exclude-benchmarks-from-build' into 'develop'
rcpthongta Sep 23, 2026
f478a9b
merge: 'ci/configure-release-workflow' into 'develop'
rcpthongta Sep 23, 2026
5b334b3
ci(release): switch to tokenless trusted publishing via oidc
rcpthongta Sep 23, 2026
df0447d
merge: 'ci/trusted-publishing' into 'develop'
rcpthongta Sep 23, 2026
24b5470
docs(vitepress): add vitepress dependency, scripts, and homepage
rcpthongta Sep 23, 2026
ab24ddc
docs(site): add vitepress documentation website and api reference
rcpthongta Sep 23, 2026
424881c
docs(readme): update documentation url and reformat code examples
rcpthongta Sep 23, 2026
262166b
docs(changelog): document v1.0.1 release changes
rcpthongta Sep 23, 2026
a11a86e
chore(eslint): ignore vitepress build and cache artifacts
rcpthongta Sep 23, 2026
00ae7aa
chore(gitignore): ignore vitepress dist and cache output
rcpthongta Sep 23, 2026
96545c0
ci(release): deploy docs to github pages after npm publish
rcpthongta Sep 23, 2026
f4974c2
chore(release): bump package version to v1.0.1
rcpthongta Sep 23, 2026
0de8b67
merge: 'docs/website' into 'develop'
rcpthongta Sep 23, 2026
4a12a96
merge: sync 'main' into 'develop'
rcpthongta Sep 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 42 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ on:
- "v*"
permissions:
contents: read
id-token: write
jobs:
publish:
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: read
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -19,11 +21,48 @@ jobs:
node-version: 22
cache: npm
registry-url: https://registry.npmjs.org
- name: Update npm
run: npm install -g npm@latest
- name: Install dependencies
run: npm ci
- name: Build package
run: npm run build
- name: Publish to npm
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
deploy-docs:
needs: publish
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: pages
cancel-in-progress: false
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- name: Install dependencies
run: npm ci
- name: Build documentation
run: npm run docs:build
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/.vitepress/dist
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ dist/*

coverage/*

# Documentation

docs/.vitepress/dist
docs/.vitepress/cache


# Text editor directory and files • Visual Studio Code

.vscode/*
Expand Down
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,24 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/)
and this project adheres to [Semantic Versioning](https://semver.org/).

## [1.0.1] - 2026-09-24

### Added

- **Documentation Website**
- Interactive documentation site powered by VitePress deployed to GitHub Pages.
- Dedicated Getting Started and Installation guides with CDN/IIFE, ESM, and CommonJS examples.
- Comprehensive API Reference pages for all 16 utility modules and exported types.
- Complete parameter tables, options breakdowns, return types, and empty/null/undefined edge-case examples.
- Built-in local search and responsive layout with custom brand theme.

- **CI / CD**
- Automated GitHub Pages deployment job in `.github/workflows/release.yml` that runs upon successful npm publishing.

- **Package Metadata**
- Added `homepage` URL to `package.json` pointing to the official documentation site.
- Updated `README.md` with links to the live documentation website.

## [1.0.0] - 2026-09-23

### Added
Expand Down Expand Up @@ -46,4 +64,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
- Husky, lint-staged, and commitlint for Git hooks and commit validation
- GitHub Actions workflows for linting and test coverage

[1.0.1]: https://github.com/rcpthongta/string-utils/compare/v1.0.0...v1.0.1
[1.0.0]: https://github.com/rcpthongta/string-utils/releases/tag/v1.0.0
28 changes: 18 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ A lightweight, type-safe, dependency-free string utility library for TypeScript
>
> Full API references, interactive examples, and detailed guides are available on our official website:
>
> 👉 **[Visit Documentation Website](https://github.com/rcpthongta/string-utils#readme)** *(Link to docs site)*
> 👉 **[Visit Documentation Website](https://rcpthongta.github.io/string-utils)**

---

Expand Down Expand Up @@ -75,21 +75,29 @@ import {
} from "@rcpthongta/string-utils";

// Case transformation
capitalize("hello world"); // "Hello world"
camelCase("user_profile_id"); // "userProfileId"
capitalize("hello world");
// => "Hello world"

camelCase("user_profile_id");
// => "userProfileId"

// Sanitization & URL
slugify("Hello World & Special Characters!"); // "hello-world-and-special-characters"
slugify("Hello World & Special Characters!");
// => "hello-world-and-special-characters"

// Validation & Fallback
defaultIfBlank(" ", "default value"); // "default value"
defaultIfBlank(" ", "default value");
// => "default value"

// Formatting with mask pattern
mask("0812345678", "(###) ###-####"); // "(081) 234-5678"
mask("1234567890123456", "#### #### #### ####"); // "1234 5678 9012 3456"
mask("0812345678", "(###) ###-####");
// => "(081) 234-5678"
mask("1234567890123456", "#### #### #### ####");
// => "1234 5678 9012 3456"

// Privacy & Censoring
redact("0812345678", { visibleStart: 3, visibleEnd: 2 }); // "081*****78"
redact("0812345678", { visibleStart: 3, visibleEnd: 2 });
// => "081*****78"
```

CommonJS is also fully supported:
Expand All @@ -111,9 +119,9 @@ Below is a summary of the utility functions available in this package:
| **Formatting & Templating** | `collapseWhitespace`, `format`, `createFormatter`, `slugify` |
| **Pattern Masking** | `mask`, `createMask` |
| **Validation & Fallback** | `hasLength`, `hasText`, `defaultIfBlank`, `defaultIfEmpty` |
| **Privacy & Redaction** | `redact` |
| **Privacy & Redaction** | `redact` |

*(Refer to the [Documentation Website](https://github.com/rcpthongta/string-utils#readme) for full parameter signatures, options, and live demos).*
*(Refer to the [Documentation Website](https://rcpthongta.github.io/string-utils) for full parameter signatures, options, and live demos).*

---

Expand Down
165 changes: 165 additions & 0 deletions docs/.vitepress/config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
import { defineConfig } from "vitepress";

export default defineConfig({
base: "/string-utils/",
title: "@rcpthongta/string-utils",
description:
"A lightweight, type-safe, dependency-free string utility library for TypeScript and modern JavaScript applications.",
themeConfig: {
nav: [
{
text: "Guide",
link: "/guide/getting-started"
},
{
text: "API Reference",
link: "/api/"
},
{
text: "Changelog",
link: "https://github.com/rcpthongta/string-utils/blob/main/CHANGELOG.md"
}
],
sidebar: [
{
text: "Guide",
items: [
{
text: "Getting Started",
link: "/guide/getting-started"
},
{
text: "Installation",
link: "/guide/installation"
}
]
},
{
text: "API Reference",
items: [
{
text: "Overview",
link: "/api/"
}
]
},
{
text: "Case Conversion",
collapsed: false,
items: [
{
text: "camelCase",
link: "/api/camel-case"
},
{
text: "constantCase",
link: "/api/constant-case"
},
{
text: "kebabCase",
link: "/api/kebab-case"
},
{
text: "pascalCase",
link: "/api/pascal-case"
},
{
text: "snakeCase",
link: "/api/snake-case"
}
]
},
{
text: "Casing & Capitalization",
collapsed: false,
items: [
{
text: "capitalize",
link: "/api/capitalize"
},
{
text: "uncapitalize",
link: "/api/uncapitalize"
}
]
},
{
text: "Formatting & Templating",
collapsed: false,
items: [
{
text: "collapseWhitespace",
link: "/api/collapse-whitespace"
},
{
text: "format / createFormatter",
link: "/api/format"
},
{
text: "slugify",
link: "/api/slugify"
}
]
},
{
text: "Pattern Masking",
collapsed: false,
items: [
{
text: "mask / createMask",
link: "/api/mask"
}
]
},
{
text: "Validation & Fallback",
collapsed: false,
items: [
{
text: "hasLength",
link: "/api/has-length"
},
{
text: "hasText",
link: "/api/has-text"
},
{
text: "defaultIfBlank",
link: "/api/default-if-blank"
},
{
text: "defaultIfEmpty",
link: "/api/default-if-empty"
}
]
},
{
text: "Privacy & Redaction",
collapsed: false,
items: [
{
text: "redact",
link: "/api/redact"
}
]
}
],
search: {
provider: "local"
},
socialLinks: [
{
icon: "github",
link: "https://github.com/rcpthongta/string-utils"
},
{
icon: "npm",
link: "https://www.npmjs.com/package/@rcpthongta/string-utils"
}
],
footer: {
message: "Released under the MIT License.",
copyright: "Copyright © 2026 rcpthongta"
}
}
});
7 changes: 7 additions & 0 deletions docs/.vitepress/theme/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import DefaultTheme from "vitepress/theme";

import "./style.css";

export default {
extends: DefaultTheme
};
Loading
Loading