このセクションでは、URLフレンドリーな文字列を作成し、URLパスを検証するための一連のヘルパー関数を提供します。これらのユーティリティは、blockletアプリケーション内でクリーンで有効、かつ一貫性のあるルートとリンクを生成するために不可欠です。
推奨されるユーティリティ
以下の関数はurl-path-friendly.tsモジュールで提供されており、URLパスの処理に推奨される選択肢です。
urlPathFriendly(name, [options])
非標準文字をハイフンに置き換え、連続する特殊文字を整理することで、文字列をURLパスフレンドリーな形式に変換します。
パラメータ
- name
string(required) — 変換対象の入力文字列。 - options
object— オプションの設定オブジェクト。- keepSlash
boolean(default:true) —true(デフォルト)の場合、スラッシュ(/)は保持されます。falseの場合、先頭と末尾のスラッシュは削除されます。
- keepSlash
戻り値
string: URLパスフレンドリーな文字列。
例
import urlPathFriendly from '@blocklet/meta/lib/url-path-friendly';
// 基本的な使用法
const messyString = ' My Awesome/Blocklet!!_v1.0. ';
const cleanPath = urlPathFriendly(messyString);
// 結果: 'My-Awesome/Blocklet-v1.0.'
// 連続する文字の処理
const withExtras = 'path///with...multiple---separators';
const cleanedExtras = urlPathFriendly(withExtras);
// 結果: 'path/with.multiple-separators'
// スラッシュを保持しない場合
const fullPath = '/my/blocklet/path/';
const noSlashes = urlPathFriendly(fullPath, { keepSlash: false });
// 結果: 'my/blocklet/path'isValidUrlPath(name)
指定された文字列が有効なURLパスセグメントであるかどうかをチェックします。文字列がASCII文字のみを含み、パターン ^[a-z0-9/\-._]*$ に一致し、連続するスラッシュ(//)を含まないことを検証します。
パラメータ
- name
string(required) — 検証するパス文字列。
戻り値
boolean: パスが有効な場合はtrue、それ以外の場合はfalse。
例
import { isValidUrlPath } from '@blocklet/meta/lib/url-path-friendly';
console.log(isValidUrlPath('valid-path/sub-path_1.0')); // true
console.log(isValidUrlPath('/another/valid/path')); // true
console.log(isValidUrlPath('invalid//path')); // false (連続するスラッシュ)
console.log(isValidUrlPath('path-with-emojis-😀')); // false (非ASCII文字)
console.log(isValidUrlPath('invalid path')); // false (スペースを含む)checkLink(value)
文字列が有効な絶対URLまたはリンクに適した有効な相対URLパスであるかどうかを判断します。
パラメータ
- value
string(required) — チェックするURLまたはパス。
戻り値
boolean: リンクが有効な場合はtrue、それ以外の場合はfalse。
例
import { checkLink } from '@blocklet/meta/lib/url-path-friendly';
// 絶対URL
console.log(checkLink('https://www.arcblock.io')); // true
console.log(checkLink('ftp://example.com')); // true
// 有効な相対パス
console.log(checkLink('/my-page')); // true
console.log(checkLink('/docs/getting-started/')); // true
// 無効なパス
console.log(checkLink('not-a-link')); // false
console.log(checkLink('/invalid//path')); // falsecheckUrlPath(value)
連結に使用されるURLパスに特化した、より厳密なチェックです。パスがスラッシュで始まり、連続するスラッシュを含まないことを検証します。
パラメータ
- value
string(required) — チェックするURLパス。
戻り値
boolean: パスが有効な連結パスである場合はtrue、それ以外の場合はfalse。
例
import { checkUrlPath } from '@blocklet/meta/lib/url-path-friendly';
console.log(checkUrlPath('/abc')); // true
console.log(checkUrlPath('/abc/bcd')); // true
console.log(checkUrlPath('/abc/bcd/')); // true
console.log(checkUrlPath('abc')); // false ('/'で始まらない)
console.log(checkUrlPath('/abc//bcd')); // false (連続するスラッシュを含む)非推奨のユーティリティ
⚠️ 警告:
url-friendly.tsモジュールの以下の関数は非推奨です。URLパスのより良い処理のために、代わりにurl-path-friendly.tsのユーティリティを使用してください。
urlFriendly(name, [options])
非推奨: 代わりに
urlPathFriendlyを使用してください。
slugifyを使用して文字列をURLフレンドリーな形式に変換します。
パラメータ
- name
string(required) — 入力文字列。 - options
object— オプションの設定オブジェクト。- keepSlash
boolean(default:true) —true(デフォルト)の場合、スラッシュ(/)は保持されます。falseの場合、スラッシュはハイフンに変換されます。
- keepSlash
例
import urlFriendly from '@blocklet/meta/lib/url-friendly';
// スラッシュを保持
const result1 = urlFriendly('my/awesome_blocklet');
// 結果: 'my/awesome-blocklet'
// スラッシュを置換
const result2 = urlFriendly('my/awesome_blocklet', { keepSlash: false });
// 結果: 'my-awesome-blocklet'isValidUrl(name)
非推奨: 代わりに
isValidUrlPathまたはcheckLinkを使用してください。
文字列に、スペースやさまざまな記号など、URLで通常問題となる文字が含まれているかどうかをチェックします。
例
import { isValidUrl } from '@blocklet/meta/lib/url-friendly';
console.log(isValidUrl('valid-name')); // true
console.log(isValidUrl('invalid name')); // false
console.log(isValidUrl('another$invalid')); // false