extra-lists
Advanced tools
Comparing version 1.0.3 to 1.0.5
312
index.js
@@ -1,7 +0,45 @@ | ||
function first0(itr, idx=0) { | ||
function is(v) { | ||
return v!=null && typeof v[Symbol.iterator]==='function'; | ||
} | ||
function listsIs(a) { | ||
return Array.isArray(a) && is(a[0]) && is(a[1]); | ||
} | ||
function fromLists(lst) { | ||
var vi = lst[1][Symbol.iterator](), z = new Map(); | ||
for(var k of lst[0]) | ||
z.set(k ,vi.next().value); | ||
return z; | ||
} | ||
const map = fromLists; | ||
function equal(l1, l2) { | ||
var m1 = map(l1), v2i = l2[1][Symbol.iterator](); | ||
for(var k2 of l2[0]) | ||
if(m1.get(k2)!==v2i.next().value || !m1.delete(k2)) return false; | ||
return m1.size===0; | ||
} | ||
function size(itr) { | ||
var z = 0; | ||
if(itr.size!=null) return itr.size; | ||
if(itr.length!=null) return itr.length; | ||
for(var v of itr) | ||
z++; | ||
return z; | ||
} | ||
function listsSize(lst) { | ||
return size(lst[0]); | ||
} | ||
function first(itr, idx=0) { | ||
var i = -1; | ||
for(var v of itr) | ||
if(++i===idx) return v; | ||
}; | ||
function last1(itr, idx=-1) { | ||
} | ||
function listsFirst(lst) { | ||
return [first(lst[0]), first(lst[1])]; | ||
} | ||
function first8(itr, idx=0) { | ||
var i = -1; | ||
for(var v of itr) | ||
if(++i===idx) return v; | ||
} | ||
function last(itr, idx=-1) { | ||
var i = -1, a = []; | ||
@@ -11,14 +49,64 @@ for(var v of itr) | ||
return a[++i % idx]; | ||
}; | ||
function middle2(itr, idx=0) { | ||
return idx<0? last1(itr, idx):first0(itr, idx); | ||
}; | ||
function size3(itr) { | ||
var z = 0; | ||
if(itr.size!=null) return itr.size; | ||
if(itr.length!=null) return itr.length; | ||
} | ||
const first10 = first8; | ||
function middle(itr, idx=0) { | ||
return idx<0? last(itr, idx):first10(itr, idx); | ||
} | ||
function listsMiddle(lst, idx) { | ||
return [middle(lst[0], idx), middle(lst[1], idx)]; | ||
} | ||
function last12(itr, idx=-1) { | ||
var i = -1, a = []; | ||
for(var v of itr) | ||
z++; | ||
a[++i % idx] = v; | ||
return a[++i % idx]; | ||
} | ||
const last13 = last12; | ||
function listsLast(lst) { | ||
return [last13(lst[0]), last13(lst[1])]; | ||
} | ||
function keys(lst) { | ||
return Array.isArray(lst[0])? lst[0]:Array.from(lst[0]); | ||
} | ||
function values(lst) { | ||
return Array.isArray(lst[1])? lst[1]:Array.from(lst[1]); | ||
} | ||
function entries(lst) { | ||
var i = 0, z = []; | ||
var vi = lst[1][Symbol.iterator](); | ||
for(var k of lst[0]) | ||
z[i++] = [k, vi.next().value]; | ||
return z; | ||
}; | ||
} | ||
function indexOf(lst, val) { | ||
var vi = lst[1][Symbol.iterator](); | ||
for(var k of lst[0]) | ||
if(vi.next().value===val) return k; | ||
} | ||
function lastIndexOf(lst, val) { | ||
var z, vi = lst[1][Symbol.iterator](); | ||
for(var k of lst[0]) | ||
if(vi.next().value===val) z = k; | ||
return z; | ||
} | ||
function indicesOf(lst, val) { | ||
var vi = lst[1][Symbol.iterator](), i = -1, z = []; | ||
for(var k of lst[0]) | ||
if(vi.next().value===val) z[++i] = k; | ||
return z; | ||
} | ||
function includes(lst, val) { | ||
for(var v of lst[1]) | ||
if(v===val) return true; | ||
return false; | ||
} | ||
function join(lst, fmt='%k=%v', sep=',', idx=0, tgt=null) { | ||
var i = idx, vi = lst[1][Symbol.iterator](), z = ''; | ||
for(var k of lst[0]) { | ||
var v = vi.next().value; | ||
z += fmt.replace(/%i/g, i++).replace(/%k/g, k).replace(/%v/g, v)+sep; | ||
if(tgt!=null) tgt.push(v); | ||
} | ||
return z.substr(0, z.length-sep.length); | ||
} | ||
function concat() { | ||
@@ -34,16 +122,14 @@ var j = 0, y = [], z = []; | ||
return [y, z]; | ||
}; | ||
function entries(lst) { | ||
var i = 0, z = []; | ||
} | ||
function forEach(lst, fn, ths) { | ||
var vi = lst[1][Symbol.iterator](); | ||
for(var k of lst[0]) | ||
z[i++] = [k, vi.next().value]; | ||
return z; | ||
}; | ||
function equal(l1, l2) { | ||
var m1 = fromLists30(l1), v2i = l2[1][Symbol.iterator](); | ||
for(var k2 of l2[0]) | ||
if(m1.get(k2)!==v2i.next().value || !m1.delete(k2)) return false; | ||
return m1.size===0; | ||
}; | ||
fn.call(ths, vi.next().value, k, lst); | ||
} | ||
function some(lst, fn, ths) { | ||
var vi = lst[1][Symbol.iterator](); | ||
for(var k of lst[0]) | ||
if(fn.call(ths, vi.next().value, k, lst)) return true; | ||
return false; | ||
} | ||
function every(lst, fn, ths) { | ||
@@ -54,12 +140,3 @@ var vi = lst[1][Symbol.iterator](); | ||
return true; | ||
}; | ||
function filter(lst, fn, ths) { | ||
var i = 0, y = [], z = []; | ||
var vi = lst[1][Symbol.iterator](); | ||
for(var k of lst[0]) { | ||
var v = vi.next().value; | ||
if(fn.call(ths, v, k, lst)) { y[i] = k; z[i++] = v; } | ||
} | ||
return [y, z]; | ||
}; | ||
} | ||
function find(lst, fn, ths) { | ||
@@ -71,17 +148,3 @@ var vi = lst[1][Symbol.iterator](); | ||
} | ||
}; | ||
function findAll(lst, fn, ths) { | ||
var vi = lst[1][Symbol.iterator](), i = -1, z = []; | ||
for(var k of lst[0]) { | ||
var v = vi.next().value; | ||
if(fn.call(ths, v, k, lst)) z[++i] = v; | ||
} | ||
return z; | ||
}; | ||
function findAllIndices(lst, fn, ths) { | ||
var vi = lst[1][Symbol.iterator](), i = -1, z = []; | ||
for(var k of lst[0]) | ||
if(fn.call(ths, vi.next().value, k, lst)) z[++i] = k; | ||
return z; | ||
}; | ||
} | ||
function findIndex(lst, fn, ths) { | ||
@@ -93,3 +156,3 @@ var vi = lst[1][Symbol.iterator](); | ||
} | ||
}; | ||
} | ||
function findLast(lst, fn, ths) { | ||
@@ -102,3 +165,3 @@ var vi = lst[1][Symbol.iterator](), z; | ||
return z; | ||
}; | ||
} | ||
function findLastIndex(lst, fn, ths) { | ||
@@ -109,111 +172,78 @@ var vi = lst[1][Symbol.iterator](), z; | ||
return z; | ||
}; | ||
function first(lst) { | ||
return [first0(lst[0]), first0(lst[1])]; | ||
}; | ||
function forEach(lst, fn, ths) { | ||
var vi = lst[1][Symbol.iterator](); | ||
for(var k of lst[0]) | ||
fn.call(ths, vi.next().value, k, lst); | ||
}; | ||
function includes(lst, val) { | ||
for(var v of lst[1]) | ||
if(v===val) return true; | ||
return false; | ||
}; | ||
function indexOf(lst, val) { | ||
var vi = lst[1][Symbol.iterator](); | ||
for(var k of lst[0]) | ||
if(vi.next().value===val) return k; | ||
}; | ||
function indicesOf(lst, val) { | ||
} | ||
function findAll(lst, fn, ths) { | ||
var vi = lst[1][Symbol.iterator](), i = -1, z = []; | ||
for(var k of lst[0]) { | ||
var v = vi.next().value; | ||
if(fn.call(ths, v, k, lst)) z[++i] = v; | ||
} | ||
return z; | ||
} | ||
function findAllIndices(lst, fn, ths) { | ||
var vi = lst[1][Symbol.iterator](), i = -1, z = []; | ||
for(var k of lst[0]) | ||
if(vi.next().value===val) z[++i] = k; | ||
if(fn.call(ths, vi.next().value, k, lst)) z[++i] = k; | ||
return z; | ||
}; | ||
function join(lst, fmt='%k=%v', sep=',', idx=0, tgt=null) { | ||
var i = idx, vi = lst[1][Symbol.iterator](), z = ''; | ||
} | ||
function reduce(lst, fn, acc) { | ||
var vi = lst[1][Symbol.iterator](); | ||
for(var k of lst[0]) { | ||
var v = vi.next().value; | ||
z += fmt.replace(/%i/g, i++).replace(/%k/g, k).replace(/%v/g, v)+sep; | ||
if(tgt!=null) tgt.push(v); | ||
acc = acc!==undefined? fn(acc, v, k, lst):v; | ||
} | ||
return z.substr(0, z.length-sep.length); | ||
}; | ||
function keys(lst) { | ||
return Array.isArray(lst[0])? lst[0]:Array.from(lst[0]); | ||
}; | ||
function last(lst) { | ||
return [last1(lst[0]), last1(lst[1])]; | ||
}; | ||
function lastIndexOf(lst, val) { | ||
var z, vi = lst[1][Symbol.iterator](); | ||
for(var k of lst[0]) | ||
if(vi.next().value===val) z = k; | ||
return z; | ||
}; | ||
function map(lst, fn, ths) { | ||
return acc; | ||
} | ||
function filter(lst, fn, ths) { | ||
var i = 0, y = [], z = []; | ||
var vi = lst[1][Symbol.iterator](); | ||
for(var k of lst[0]) { | ||
y[i] = k; | ||
z[i++] = fn.call(ths, vi.next().value, k, lst); | ||
var v = vi.next().value; | ||
if(fn.call(ths, v, k, lst)) { y[i] = k; z[i++] = v; } | ||
} | ||
return [y, z]; | ||
}; | ||
function middle(lst, idx) { | ||
return [middle2(lst[0], idx), middle2(lst[1], idx)]; | ||
}; | ||
function reduce(lst, fn, acc) { | ||
} | ||
function map34(lst, fn, ths) { | ||
var i = 0, y = [], z = []; | ||
var vi = lst[1][Symbol.iterator](); | ||
for(var k of lst[0]) { | ||
var v = vi.next().value; | ||
acc = acc!==undefined? fn(acc, v, k, lst):v; | ||
y[i] = k; | ||
z[i++] = fn.call(ths, vi.next().value, k, lst); | ||
} | ||
return acc; | ||
}; | ||
function size(lst) { | ||
return size3(lst[0]); | ||
}; | ||
function some(lst, fn, ths) { | ||
var vi = lst[1][Symbol.iterator](); | ||
for(var k of lst[0]) | ||
if(fn.call(ths, vi.next().value, k, lst)) return true; | ||
return false; | ||
}; | ||
function values(lst) { | ||
return Array.isArray(lst[1])? lst[1]:Array.from(lst[1]); | ||
}; | ||
function fromLists30(lst) { | ||
var vi = lst[1][Symbol.iterator](), z = new Map(); | ||
for(var k of lst[0]) | ||
z.set(k ,vi.next().value); | ||
return z; | ||
}; | ||
return [y, z]; | ||
} | ||
// Datatype methods: | ||
exports.is = listsIs; | ||
// About methods: | ||
exports.equal = equal; | ||
exports.size = listsSize; | ||
exports.first = listsFirst; | ||
exports.middle = listsMiddle; | ||
exports.last = listsLast; | ||
exports.keys = keys; | ||
exports.values = values; | ||
exports.entries = entries; | ||
// Search methods: | ||
exports.indexOf = indexOf; | ||
exports.lastIndexOf = lastIndexOf; | ||
exports.indicesOf = indicesOf; | ||
exports.includes = includes; | ||
// Transform methods: | ||
exports.join = join; | ||
exports.concat = concat; | ||
exports.entries = entries; | ||
exports.equal = equal; | ||
// Functional methods: | ||
exports.forEach = forEach; | ||
exports.some = some; | ||
exports.every = every; | ||
exports.filter = filter; | ||
exports.find = find; | ||
exports.findAll = findAll; | ||
exports.findAllIndices = findAllIndices; | ||
exports.findIndex = findIndex; | ||
exports.findLast = findLast; | ||
exports.findLastIndex = findLastIndex; | ||
exports.first = first; | ||
exports.forEach = forEach; | ||
exports.includes = includes; | ||
exports.indexOf = indexOf; | ||
exports.indicesOf = indicesOf; | ||
exports.join = join; | ||
exports.keys = keys; | ||
exports.last = last; | ||
exports.lastIndexOf = lastIndexOf; | ||
exports.map = map; | ||
exports.middle = middle; | ||
exports.findAll = findAll; | ||
exports.findAllIndices = findAllIndices; | ||
exports.reduce = reduce; | ||
exports.size = size; | ||
exports.some = some; | ||
exports.values = values; | ||
exports.filter = filter; | ||
exports.map = map34; |
{ | ||
"name": "extra-lists", | ||
"version": "1.0.3", | ||
"version": "1.0.5", | ||
"description": "Standard utility methods for Lists.", | ||
"main": "index.js", | ||
"scripts": { | ||
"prepublishOnly": "node ./prepublish", | ||
"browserify": "browserify index.js -o index.web.js -s Integer", | ||
"uglifyjs": "uglifyjs -c -m -o index.min.js index.web.js", | ||
"test": "exit" | ||
@@ -35,4 +38,9 @@ }, | ||
"@extra-iterable/size": "^1.1.0", | ||
"@extra-map/from-lists": "^1.0.1" | ||
"@extra-map/from-lists": "^1.0.1", | ||
"browserify": "^16.2.3", | ||
"find-npm-prefix": "^1.0.2", | ||
"recast": "^0.16.1", | ||
"tempy": "^0.2.1", | ||
"uglify-es": "^3.3.9" | ||
} | ||
} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
10805
238
11
1