mapql
Version:
A MongoDB inspired ES6 Map() query langauge.
26 lines (24 loc) • 909 B
JavaScript
/*!
* A MongoDB inspired ES6 Map() query language. - Copyright (c) 2017 Louis T. (https://lou.ist/)
* Licensed under the MIT license https://raw.githubusercontent.com/LouisT/MapQL/master/LICENSE
*/
;
let Helpers = require('../../Helpers');
module.exports = {
'$pop': {
fn: function (key, val, entry) {
if (Helpers.is(entry.value, 'Object')) {
Helpers.dotNotation(key, entry.value, {
value: (current) => {
if (Array.isArray(current)) {
current[(val == -1 ? 'pop' : 'shift')]();
}
return (current !== Helpers._null ? current : []);
}
});
} else if (Helpers.is(entry.value, 'Array')) {
entry.value[(val == -1 ? 'pop' : 'shift')]();
}
}
}
};