@daiso-tech/core
Version:
The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.
86 lines (85 loc) • 2.06 kB
TypeScript
/**
* @module Utilities
*/
import type { OneOrMore } from "../../../utilities/functions/_module.js";
/**
* @internal
*/
type KeySettings = {
prefixArr: Array<string>;
key: OneOrMore<string>;
identifierDelimeter: string;
keyDelimeter: string;
};
/**
* @internal
*/
export declare class Key {
private readonly prefixArr;
private readonly key;
private readonly identifierDelimeter;
private readonly keyDelimeter;
/**
*
* @internal
*/
constructor(settings: KeySettings);
get original(): OneOrMore<string>;
get resolved(): string;
get namespaced(): string;
}
/**
*
* IMPORT_PATH: `"@daiso-tech/core/utilities"`
* @group Namespace
*/
export type NamespaceSettings = {
/**
* @default ":"
*/
identifierDelimeter?: string;
/**
* @default "/"
*/
keyDelimeter?: string;
/**
* @default "_rt"
*/
rootIdentifier?: string;
};
/**
* @internal
*/
declare class InternalNamespace {
private readonly _rootPrefix;
private readonly identifierDelimeter;
private readonly keyDelimeter;
private readonly rootIdentifier;
constructor(_rootPrefix: OneOrMore<string>, settings?: NamespaceSettings);
get original(): OneOrMore<string>;
get resolved(): string;
private validate;
private getKeyPrefixArray;
get namespaced(): string;
create(key: OneOrMore<string>): Key;
}
/**
* The `Namespace` class adds prefixes/suffixes to keys to avoid conflicts and group related items.
*
* IMPORT_PATH: `"@daiso-tech/core/utilities"`
* @group Namespace
*/
export declare class Namespace {
private readonly root;
private readonly settings;
constructor(root: OneOrMore<string>, settings?: NamespaceSettings);
setIdentifierDelimeter(delimeter: string): Namespace;
setKeyDelimeter(delimeter: string): Namespace;
setRootIdentifier(identifier: string): Namespace;
appendRoot(str: OneOrMore<string>): Namespace;
/**
* @internal
*/
_getInternal(): InternalNamespace;
}
export {};