| 1234567891011121314151617181920212223242526272829303132333435 |
- // src/utils/filepath.ts
- var getFilePath = (options) => {
- let filename = options.filename;
- const defaultDocument = options.defaultDocument || "index.html";
- if (filename.endsWith("/")) {
- filename = filename.concat(defaultDocument);
- } else if (!filename.match(/\.[a-zA-Z0-9_-]+$/)) {
- filename = filename.concat("/" + defaultDocument);
- }
- const path = getFilePathWithoutDefaultDocument({
- root: options.root,
- filename
- });
- return path;
- };
- var getFilePathWithoutDefaultDocument = (options) => {
- let root = options.root || "";
- let filename = options.filename;
- if (/(?:^|[\/\\])\.\.(?:$|[\/\\])/.test(filename)) {
- return;
- }
- filename = filename.replace(/^\.?[\/\\]/, "");
- filename = filename.replace(/\\/, "/");
- root = root.replace(/\/$/, "");
- let path = root ? root + "/" + filename : filename;
- path = path.replace(/^\.?\//, "");
- if (root[0] !== "/" && path[0] === "/") {
- return;
- }
- return path;
- };
- export {
- getFilePath,
- getFilePathWithoutDefaultDocument
- };
|