AbdulElahGwaith's picture
Upload folder using huggingface_hub
b91e262 verified
import { ParsedUrlQuery } from "querystring";
import * as plugins from "temp/extract-path-plugins";
export interface Plugin {
/**
* A function which will be called during path extraction
*/
exec(path: string): string;
}
export class PathExtractor {
/**
* Extract normalized Sitecore item path
* @param {ParsedUrlQuery} [params]
*/
public extract(params: ParsedUrlQuery | undefined): string {
if (params === undefined) {
return "/";
}
let path = Array.isArray(params.path)
? params.path.join("/")
: (params.path ?? "/");
// Ensure leading '/'
if (!path.startsWith("/")) {
path = "/" + path;
}
const extractedPath = (Object.values(plugins) as Plugin[]).reduce(
(resultPath, plugin) => plugin.exec(resultPath),
path,
);
return extractedPath;
}
}
export const pathExtractor = new PathExtractor();