SquadJS/connectors/squad-layers.js

54 lines
1.3 KiB
JavaScript
Raw Normal View History

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