node-web-mvc
Version:
node spring mvc
32 lines (31 loc) • 1.27 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(require("path"));
class PathResourceResolver {
async resolveResource(request, requestPath, locations, nextChain) {
return this.getResource(requestPath, locations);
}
async resolveUrlPath(resourcePath, locations, chain) {
const resource = this.getResource(resourcePath, locations);
return resource ? resource.url : null;
}
getResource(resourcePath, locations) {
const segments = (resourcePath).split('/');
const first = segments.shift();
for (const location of locations) {
const resource = location.createRelative(resourcePath);
if (resource.isReadable) {
return resource;
}
else if (location.url.endsWith(path_1.default.sep + first + path_1.default.sep)) {
const resource2 = location.createRelative(segments.join('/'));
return resource2.isReadable ? resource2 : null;
}
}
return null;
}
}
exports.default = PathResourceResolver;