Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,9 @@ const resolveReference = (strategy) => (reference, base) => {

if (resolvedComponents.authority === undefined) {
resolvedComponents.authority = baseComponents.authority;
resolvedComponents.userinfo = baseComponents.userinfo;
resolvedComponents.host = baseComponents.host;
resolvedComponents.port = baseComponents.port;

if (resolvedComponents.path === "") {
resolvedComponents.path = baseComponents.path;
Expand Down Expand Up @@ -165,7 +168,10 @@ const getSegment = (path) => {
/** @type (strategy: Strategy, components: API.IdentifierComponents) => string */
const composeIdentifier = (strategy, components) => {
let resolved = components.scheme.toLowerCase() + ":";
resolved += components.authority === undefined ? "" : "//" + components.authority.toLowerCase();
resolved += components.authority === undefined ? "" : "//"
+ (components.userinfo === undefined ? "" : components.userinfo + "@")
+ components.host.toLowerCase()
+ (components.port === undefined ? "" : ":" + components.port);
resolved += strategy.normalizePath(components.path);
resolved += components.query === undefined ? "" : "?" + strategy.normalizeQuery(components.query);
resolved += components.fragment === undefined ? "" : "#" + strategy.normalizeFragment(components.fragment);
Expand Down