diff --git a/src/vs/base/common/uri.ts b/src/vs/base/common/uri.ts index c9359b7f65fa2fe2404c80b2758a11edc6f87d71..9b4a3e078907a01ad9279fb4907390bea8014e2a 100644 --- a/src/vs/base/common/uri.ts +++ b/src/vs/base/common/uri.ts @@ -379,13 +379,19 @@ export default class URI { public toJSON(): any { const res = { - scheme: this.scheme, - path: this.path, fsPath: this.fsPath, external: this.toString(), $mid: 1 }; + if (this.path) { + res.path = this.path; + } + + if (this.scheme) { + res.scheme = this.scheme; + } + if (this.authority) { res.authority = this.authority; } @@ -403,9 +409,9 @@ export default class URI { static revive(data: any): URI { let result = new URI(); - result._scheme = (data).scheme; + result._scheme = (data).scheme || URI._empty; result._authority = (data).authority || URI._empty; - result._path = (data).path; + result._path = (data).path || URI._empty; result._query = (data).query || URI._empty; result._fragment = (data).fragment || URI._empty; result._fsPath = (data).fsPath;