in lib/object-provider.ts [48:79]
public static tryParse(input: string): { success: boolean, uri: Uri } {
// Syntax: <protocol>:/<path>[?<param1>=<value1>[&<param2>=<value2>]*]
let start = 0;
let end = input.indexOf(":/");
if (end <= 0) {
return { success: false, uri: null };
}
let uri = new Uri();
uri.protocol = input.substring(start, end);
// Find path.
let path = "";
start = end + 2;
end = input.indexOf("?", start);
if (end == -1) {
// No parameters.
uri.path = input.substring(start);
}
else {
// Has parameters.
uri.path = input.substring(start, end);
let kvStrings = input.substring(end + 1).split('&');
for (let i = 0; i < kvStrings.length; ++i) {
let cols = kvStrings[i].split('=');
if (cols.length != 2) {
return { success: false, uri: null };
}
uri.setParameter(cols[0], cols[1]);
}
}
return { success: true, uri: uri };
}