in server/src/graphStore.ts [491:544]
private readMetaData(): void {
let result: MetaDataResult[] = this.db.prepare('Select * from meta').all();
if (result === undefined || result.length !== 1) {
throw new Error('Failed to read meta data record.');
}
let metaData: MetaData = JSON.parse(result[0].value);
if (metaData.compressors !== undefined) {
this.vertexLabels = new Map();
this.edgeLabels = new Map();
this.itemEdgeProperties = new Map();
for (let decription of metaData.compressors.all) {
new Decompressor(decription);
}
for (let element of Decompressor.all.values()) {
element.link();
}
// Vertex Compressor
let decompressor = Decompressor.get(metaData.compressors.vertexCompressor);
if (decompressor === undefined) {
throw new Error('No vertex decompressor found.');
}
let description = decompressor.getPropertyDescription('label');
if (description === undefined || description.longForm === undefined) {
throw new Error('No vertex label property description found.');
}
for (let item of description.longForm) {
this.vertexLabels.set(item[1], item[0] as number);
}
// Edge Compressor
decompressor = Decompressor.get(metaData.compressors.edgeCompressor);
if (decompressor === undefined) {
throw new Error('No edge decompressor found.');
}
description = decompressor.getPropertyDescription('label');
if (description === undefined || description.longForm === undefined) {
throw new Error('No edge label property description found.');
}
for (let item of description.longForm) {
this.edgeLabels.set(item[1], item[0] as number);
}
// Item edge Compressor
decompressor = Decompressor.get(metaData.compressors.itemEdgeCompressor);
if (decompressor === undefined) {
throw new Error('No item edge decompressor found.');
}
description = decompressor.getPropertyDescription('property');
if (description === undefined || description.longForm === undefined) {
throw new Error('No item property description found.');
}
for (let item of description.longForm) {
this.itemEdgeProperties.set(item[1], item[0] as number);
}
}
}