public load()

in server/src/jsonStore.ts [131:181]


	public load(file: string, transformerFactory: (workspaceRoot: string) => UriTransformer): Promise<void> {
		return new Promise<void>((resolve, reject) => {
			const input: fs.ReadStream = fs.createReadStream(file, { encoding: 'utf8'});
			input.on('error', reject);
			const rd = readline.createInterface(input);
			rd.on('line', (line: string) => {
				if (!line || line.length === 0) {
					return;
				}
				try {
					const element: Edge | Vertex = JSON.parse(line);
					switch (element.type) {
						case ElementTypes.vertex:
							this.processVertex(element);
							break;
						case ElementTypes.edge:
							this.processEdge(element);
							break;
					}
				} catch (error) {
					input.destroy();
					reject(error);
				}
			});
			rd.on('close', () => {
				if (this.workspaceRoot === undefined) {
					reject(new Error('No project root provided.'));
					return;
				}
				if (this.version === undefined) {
					reject(new Error('No version found.'));
					return;
				} else {
					const semVer = SemVer.parse(this.version);
					if (!semVer) {
						reject(new Error(`No valid semantic version string. The version is: ${this.version}`));
						return;
					}
					const range: SemVer.Range = new SemVer.Range('>0.5.99 <=0.6.0-next.4');
					range.includePrerelease = true;
					if (!SemVer.satisfies(semVer, range)) {
						reject(new Error(`Requires version range >0.5.99 <=0.6.0-next.4 but received: ${this.version}`));
						return;
					}
				}
				resolve();
			});
		}).then(() => {
			this.initialize(transformerFactory);
		});
	}