|
"use strict"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
exports.registerResolver = registerResolver; |
|
exports.registerDefaultScheme = registerDefaultScheme; |
|
exports.createResolver = createResolver; |
|
exports.getDefaultAuthority = getDefaultAuthority; |
|
exports.mapUriDefaultScheme = mapUriDefaultScheme; |
|
const uri_parser_1 = require("./uri-parser"); |
|
const registeredResolvers = {}; |
|
let defaultScheme = null; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function registerResolver(scheme, resolverClass) { |
|
registeredResolvers[scheme] = resolverClass; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
function registerDefaultScheme(scheme) { |
|
defaultScheme = scheme; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
function createResolver(target, listener, options) { |
|
if (target.scheme !== undefined && target.scheme in registeredResolvers) { |
|
return new registeredResolvers[target.scheme](target, listener, options); |
|
} |
|
else { |
|
throw new Error(`No resolver could be created for target ${(0, uri_parser_1.uriToString)(target)}`); |
|
} |
|
} |
|
|
|
|
|
|
|
|
|
|
|
function getDefaultAuthority(target) { |
|
if (target.scheme !== undefined && target.scheme in registeredResolvers) { |
|
return registeredResolvers[target.scheme].getDefaultAuthority(target); |
|
} |
|
else { |
|
throw new Error(`Invalid target ${(0, uri_parser_1.uriToString)(target)}`); |
|
} |
|
} |
|
function mapUriDefaultScheme(target) { |
|
if (target.scheme === undefined || !(target.scheme in registeredResolvers)) { |
|
if (defaultScheme !== null) { |
|
return { |
|
scheme: defaultScheme, |
|
authority: undefined, |
|
path: (0, uri_parser_1.uriToString)(target), |
|
}; |
|
} |
|
else { |
|
return null; |
|
} |
|
} |
|
return target; |
|
} |
|
|