UNPKG

twing

Version:

First-class Twig engine for Node.js

39 lines (38 loc) 1.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sliceMap = sliceMap; function sliceMap(map, start, length, preserveKeys) { let result = new Map(); let index = 0; let keyIndex = 0; if (start < 0) { start = map.size + start; } let end; if (length >= 0) { end = start + length; } else { end = map.size + length; } for (let [key, value] of map) { if ((index >= start) && (index < end)) { let newKey; // Note that array_slice() will reorder and reset the ***numeric*** array indices by default. [...] // see http://php.net/manual/en/function.array-slice.php if (typeof key === "number") { newKey = preserveKeys ? key : keyIndex; keyIndex++; } else { newKey = key; } result.set(newKey, value); } if (index >= end) { break; } index++; } return result; }