/** * オブジェクトキーを解析するためのクラスです。 * * @example * ``` * import { ObjectKey } from "@z-rack/core"; * * const key = ObjectKey.parse("foo/bar/baz.txt"); * key.segments; // => ["foo", "bar", "baz.txt"] * key.basename; // => "baz.txt" * key.filename; // => "baz" * key.extname; // => ".txt" * key.prefix; // => "foo/bar/" * key.toJSON(); // => "foo/bar/baz.txt" * ``` */ export default class ObjectKey { #private; /** * 指定された文字列が有効なオブジェクトキーであるかを確認します。 * * @param objectKey 検証対象のオブジェクトキー文字列です。 * @returns 有効なキーであれば true、そうでなければ false を返します。 * * @example * ``` * ObjectKey.check("valid/key"); // => true * ObjectKey.check(""); // => false * ObjectKey.check(" ".repeat(9999)); // => false * ``` */ static check(objectKey: string): boolean; /** * オブジェクトキー文字列を解析し、ObjectKey インスタンスを生成します。 * * @param objectKey 解析対象のオブジェクトキー文字列です。 * @returns 生成された ObjectKey インスタンスです。 * * @example * ``` * const key = ObjectKey.parse("data/file.json"); * key.key; // => "data/file.json" * ``` */ static parse(objectKey: string): ObjectKey; /** * ObjectKey クラスの新しいインスタンスを初期化します。 * * @param objectKey オブジェクトキー文字列、または内部利用時の特定パラメーターです。 */ constructor(objectKey: string); /** * オブジェクトキーです。 */ get key(): string; /** * オブジェクトキーをスラッシュで区切ったセグメントの配列を取得します。 * * 配列は少なくとも 1 つの要素を含んでいます。 * * @example * ``` * ObjectKey.parse("a/b/c").segments; // => ["a", "b", "c"] * ``` */ get segments(): [...string[], string]; /** * オブジェクトキーの接頭辞です。 * * 接頭辞は、セグメント({@link segments})をスラッシュで結合した文字列です。 * * @example * ``` * ObjectKey.parse("a/b/c").prefix; // => "a/b/" * ObjectKey.parse("root").prefix; // => "" * ``` */ get prefix(): string; /** * オブジェクトキーをスラッシュで区切ったときの末尾部分です。 * * @example * ``` * ObjectKey.parse("a/b/file.txt").basename; // => "file.txt" * ``` */ get basename(): string; /** * オブジェクトキーをファイルパスとみなしたときの、拡張子を除いたファイル名を取得します。 * * ファイル名はベース名({@link basename})から拡張子を取り除いた文字列です。 * * @example * ``` * ObjectKey.parse("archive.tar.gz").filename; // => "archive.tar" * ObjectKey.parse(".hidden").filename; // => ".hidden" * ObjectKey.parse("Makefile").filename; // => "Makefile" * ``` */ get filename(): string; /** * ファイル名の拡張子(ドットを含む)を取得します。 * * @example * ``` * ObjectKey.parse("archive.tar.gz").extname; // => ".gz" * ObjectKey.parse(".hidden").extname; // => "" * ``` */ get extname(): string; /** * JSON シリアライズ時に呼び出され、オブジェクトキーを返します。 * * @returns オブジェクトキーです。 * * @example * ``` * JSON.stringify(ObjectKey.parse("foo/bar")); * // => '"foo/bar"' * ``` */ toJSON(): string; /** * オブジェクトを文字列に変換する際に呼び出され、オブジェクトキーを返します。 * * @returns オブジェクトキーです。 * * @example * ``` * String(ObjectKey.parse("foo/bar")); // => "foo/bar" * ``` */ toString(): string; } //# sourceMappingURL=object-key.d.ts.map