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);
});
}