mirror of
https://github.com/AsgardEternal/SquadJS.git
synced 2024-09-29 04:04:25 -05:00
58 lines
1.3 KiB
JavaScript
58 lines
1.3 KiB
JavaScript
import fs from 'fs';
|
|
|
|
import didYouMean from 'didyoumean';
|
|
|
|
class SquadLayers {
|
|
constructor(layers) {
|
|
if (Array.isArray(layers)) {
|
|
this.layers = layers;
|
|
} else {
|
|
this.layers = JSON.parse(
|
|
fs.readFileSync('./connectors/data/layers.json', 'utf8')
|
|
);
|
|
}
|
|
|
|
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) {
|
|
const layer = this.layers.filter(
|
|
layer => layer.layerClassname === layerClassname
|
|
);
|
|
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();
|