-
Notifications
You must be signed in to change notification settings - Fork 54
/
transformPolarity.mjs
29 lines (27 loc) 路 1.21 KB
/
transformPolarity.mjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import POLARITIES from './polarities.mjs';
const transform = (field) => {
let output;
if (field) {
output = (POLARITIES[field] || field || '').toLowerCase();
if (output && !output.length) output = undefined;
if (output === 'none') output = undefined;
}
return output;
};
/**
* Transform polarity
* @param {string} [AuraPolarity] string designating the polarity for the aura compatibility of a Warframe
* @param {module:warframe-items.Item} target item for which to standardize polarities
* @param {string} [StancePolarity] string designating the polarity for the stance compatibility of a melee weapon
* @param {string} [Polarity] string designating the polarity for the aura compatibility of a mod slot or Mod
* @param {Array<string>} [Polarities] list of strings designating polarities on a weapon or warframe
* @returns {*}
*/
export default ({ AuraPolarity, StancePolarity, Polarity, Polarities }, target) => {
const output = { ...target };
output.auraPolarity = transform(AuraPolarity);
output.stancePolarity = transform(StancePolarity);
output.polarity = transform(Polarity);
output.polarities = Polarities && Polarities.length ? Polarities.map(transform) : undefined;
return output;
}