@jirkasa/code-box
Version:
Showcase code samples on the web with a container that lets users select and display different samples.
51 lines (50 loc) • 2.27 kB
TypeScript
/** Info about package side of mapping. */
type PackageItem = {
/** Package name. */
packageName: string | null;
/** File name. */
fileName: string;
};
/** Maps packages and folder paths for code views and files. */
declare class FolderAndPackageMapping {
/** Packages stored by file folder paths. */
private folderPathsToPackages;
/** File folder paths stored by packages (Contains maps by package names. These maps store folder path + file name by file name.). */
private packages;
/**
* Adds new mapping.
* @param fileName File name.
* @param folderPath Folder path (null can be used for root folder).
* @param packageName Package name (null for default package).
*/
add(fileName: string, folderPath: string | null, packageName: string | null): void;
/**
* Returns file folder path based on passed package name and file name.
* @param packageName Package name (null for default package).
* @param fileName File name.
* @returns File folder path (folder path + file name).
*/
getFileFolderPathByPackageItem(packageName: string | null, fileName: string): string | null;
/**
* Returns package item based on passed folder path and file name.
* @param folderPath Folder path (null can be used for root folder).
* @param fileName File name.
* @returns Package item (info about package side of mappping: package name and file name).
*/
getPackageItemByFileFolderPath(folderPath: string | null, fileName: string): PackageItem | null;
/**
* Removes mapping based on passed folder path and file name.
* @param folderPath Folder path (null can be used for root folder).
* @param fileName File name.
* @returns Indicates whether mapping was successfully removed.
*/
removeByFileFolderPath(folderPath: string | null, fileName: string): boolean;
/**
* Removes mapping based on passed package name and file name.
* @param packageName Package name (null for default package).
* @param fileName File name.
* @returns Indicates whether mapping was successfully removed.
*/
removeByPackageItem(packageName: string | null, fileName: string): boolean;
}
export default FolderAndPackageMapping;