2020-06-13 09:33:44 -05:00
|
|
|
import fs from 'fs';
|
|
|
|
|
|
|
|
import didYouMean from 'didyoumean';
|
|
|
|
|
|
|
|
class SquadLayers {
|
|
|
|
constructor(layers) {
|
|
|
|
if (Array.isArray(layers)) {
|
|
|
|
this.layers = layers;
|
|
|
|
} else {
|
2020-06-13 11:35:00 -05:00
|
|
|
this.layers = JSON.parse(fs.readFileSync('./connectors/data/layers.json', 'utf8'));
|
2020-06-13 09:33:44 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
for (let i = 0; i < this.layers.length; i++) {
|
|
|
|
this.layers[i] = {
|
|
|
|
...this.layers[i],
|
|
|
|
layerNumber: i + 1
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
getLayers() {
|
|
|
|
return this.layers;
|
|
|
|
}
|
|
|
|
|
|
|
|
getLayerNames() {
|
|
|
|
return this.layers.map(layer => layer.layer);
|
|
|
|
}
|
|
|
|
|
|
|
|
getLayerByLayerName(layerName) {
|
|
|
|
const layer = this.layers.filter(layer => layer.layer === layerName);
|
|
|
|
return layer.length === 1 ? layer[0] : null;
|
|
|
|
}
|
|
|
|
|
|
|
|
getLayerByLayerClassname(layerClassname) {
|
2020-06-13 11:35:00 -05:00
|
|
|
const layer = this.layers.filter(layer => layer.layerClassname === layerClassname);
|
2020-06-13 09:33:44 -05:00
|
|
|
return layer.length === 1 ? layer[0] : null;
|
|
|
|
}
|
|
|
|
|
|
|
|
getLayerByDidYouMean(layerName) {
|
|
|
|
layerName = didYouMean(layerName, this.getLayerNames());
|
|
|
|
|
|
|
|
const layer = this.layers.filter(layer => layer.layer === layerName);
|
|
|
|
return layer.length === 1 ? layer[0] : null;
|
|
|
|
}
|
|
|
|
|
|
|
|
getLayerByNumber(number) {
|
|
|
|
const layer = this.layers.filter(layer => layer.layerNumber === number);
|
|
|
|
return layer.length === 1 ? layer[0] : null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export { SquadLayers };
|
|
|
|
export default new SquadLayers();
|