Buckets:
arudradey/ml-cpu-storage / emsdk /upstream /emscripten /node_modules /relateurl /lib /parse /path.js
| ; | |
| function isDirectoryIndex(resource, options) | |
| { | |
| var verdict = false; | |
| options.directoryIndexes.every( function(index) | |
| { | |
| if (index === resource) | |
| { | |
| verdict = true; | |
| return false; | |
| } | |
| return true; | |
| }); | |
| return verdict; | |
| } | |
| function parsePath(urlObj, options) | |
| { | |
| var path = urlObj.path.absolute.string; | |
| if (path) | |
| { | |
| var lastSlash = path.lastIndexOf("/"); | |
| if (lastSlash > -1) | |
| { | |
| if (++lastSlash < path.length) | |
| { | |
| var resource = path.substr(lastSlash); | |
| if (resource!=="." && resource!=="..") | |
| { | |
| urlObj.resource = resource; | |
| path = path.substr(0, lastSlash); | |
| } | |
| else | |
| { | |
| path += "/"; | |
| } | |
| } | |
| urlObj.path.absolute.string = path; | |
| urlObj.path.absolute.array = splitPath(path); | |
| } | |
| else if (path==="." || path==="..") | |
| { | |
| // "..?var", "..#anchor", etc ... not "..index.html" | |
| path += "/"; | |
| urlObj.path.absolute.string = path; | |
| urlObj.path.absolute.array = splitPath(path); | |
| } | |
| else | |
| { | |
| // Resource-only | |
| urlObj.resource = path; | |
| urlObj.path.absolute.string = null; | |
| } | |
| urlObj.extra.resourceIsIndex = isDirectoryIndex(urlObj.resource, options); | |
| } | |
| // Else: query/hash-only or empty | |
| } | |
| function splitPath(path) | |
| { | |
| // TWEAK :: condition only for speed optimization | |
| if (path !== "/") | |
| { | |
| var cleaned = []; | |
| path.split("/").forEach( function(dir) | |
| { | |
| // Cleanup -- splitting "/dir/" becomes ["","dir",""] | |
| if (dir !== "") | |
| { | |
| cleaned.push(dir); | |
| } | |
| }); | |
| return cleaned; | |
| } | |
| else | |
| { | |
| // Faster to skip the above block and just create an array | |
| return []; | |
| } | |
| } | |
| module.exports = parsePath; | |
Xet Storage Details
- Size:
- 1.63 kB
- Xet hash:
- c4d4ebffff5eae232ce369f6d75fb3e039f94724cf62d80df7c31cd28fc54f90
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.