was.js

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 52  →  ?path2? @ 53
/trunk/dist/was.js
@@ -3,6 +3,36 @@
* Copyright (c) 2020 [object Object]; Licensed GPL-3.0 */
/* Copyright (C) 2017 Wizardry and Steamworks - License: GNU GPLv3 */
/*************************************************************************/
function wasArrayToObject(a) {
var o = {};
a.reduce(function(a, c, i) {
i = Math.floor(i / 2);
if (!a[i]) {
a[i] = [];
}
a[i].push(c);
return a;
}, []).forEach(function(c, i, a) {
o[c[0]] = c[1];
}, o);
return o;
}
if (!Array.prototype.toObject) {
Array.prototype.toObject = function() {
return wasArrayToObject(this);
};
}
// jQuery
if(typeof jQuery === 'function') {
$.extend({
toObject: wasArrayToObject
});
}
 
 
/*************************************************************************/
/* Copyright (C) 2017 Wizardry and Steamworks - License: GNU GPLv3 */
/*************************************************************************/
function wasProduct(a, b) {
var m = Math.max(a.length, b.length);
var o = {};
@@ -111,7 +141,8 @@
product: wasProduct,
stride: wasStride,
chunk: wasChunk,
equals: wasEquals
equals: wasEquals,
toObject: wasArrayToObject
};
}
 
@@ -188,21 +219,18 @@
};
}
 
/* Copyright (C) 2017 Wizardry and Steamworks - License: GNU GPLv3 */
/* Copyright (C) 2020 Wizardry and Steamworks - License: GNU GPLv3 */
/*************************************************************************/
function wasKeyValueToObject(a) {
var o = {};
a.reduce(function(a, c, i) {
i = Math.floor(i / 2);
if (!a[i]) {
a[i] = [];
}
a[i].push(c);
return a;
}, []).forEach(function(c, i, a) {
o[c[0]] = c[1];
}, o);
return o;
function wasKeyValueToObject(data) {
var result = {};
data.split('&').forEach((kvp) => {
var kv = kvp.split('=')
.filter((kv) =>
kv[0] !== 'undefined' && kv[1] !== 'undefined');
result[kv[0]] = kv[1];
 
});
return result;
}
 
/*************************************************************************/
/trunk/dist/was.min.js
@@ -2,4 +2,4 @@
* http://grimore.org
* Copyright (c) 2020 [object Object]; Licensed GPL-3.0 */
 
function wasProduct(e,t){for(var r=Math.max(e.length,t.length),o={},n=0;n<r;++n)o[e[n]]=t[n];return o}function wasStride(e,t){return e.filter(function(e,r){return r%t==0})}function wasChunk(e,t){return Array.from(new Array(Math.ceil(e.length/t)),(r,o)=>e.slice(o*t,o*t+t))}function wasEquals(e,t){if(!t)return!1;if(e.length!==t.length)return!1;for(var r=0,o=e.length;r<o;r++)if(e[r]instanceof Array&&t[r]instanceof Array){if(!e[r].equals(t[r]))return!1}else if(e[r]!==t[r])return!1;return!0}function wasCSVToArray(e){var t=[],r=[],o="";do{var n=e.charAt(0);if(e=e.slice(1,e.length),","!==n)if('"'!==n||e.charAt(0)!==n)if('"'!==n)o+=n;else{if(r[r.length-1]!==n){r.push(n);continue}r.pop()}else o+=n,e=e.slice(1,e.length);else{if('"'!==r[r.length-1]){t.push(o),o="";continue}o+=n}}while(""!==e);return t.push(o),t}function wasArrayToCSV(e){for(var t=[],r=0;r<e.length;++r){var o=e[r].toString().replace('"','""');/"\s,\r\n/.test(o)?t[r]='"'+o+'"':t[r]=o}return t.join()}function wasKeyValueToObject(e){var t={};return e.reduce(function(e,t,r){return e[r=Math.floor(r/2)]||(e[r]=[]),e[r].push(t),e},[]).forEach(function(e,r,o){t[e[0]]=e[1]},t),t}function wasKeyValueSet(e,t,r){return r.split("&").map(r=>r.split("=")[0]===e?`${e}=${t}`:r).concat(`${e}=${t}`).filter((e,t,r)=>r.indexOf(e)===t).join("&")}function wasKeyValueGet(e,t){return t.split("&").reduce((t,r)=>{var o=r.split("=");return o[0]===e?o[1]:t},"")}function wasSwitch(e,t,...r){if(r.length%2!=0)throw"Pairs of predicates expected for cases";(Array.isArray(e)?e:[e]).forEach(e=>{for(var o=!1,n=0;n<r.length;n+=2)r[n](e)&&r[n+1](e)&&(o=!0);o||t(e)})}function wasMapValueToRange(e,t,r,o,n){return o+(n-o)*(e-t)/(r-t)}function wasHexToRGB(e){e=e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(e,t,r,o){return t+t+r+r+o+o});var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function wasRGBToHex(e,t,r){return"#"+((1<<24)+(e<<16)+(t<<8)+r).toString(16).slice(1)}Array.prototype.product||(Array.prototype.product=function(e){return wasProduct(this,e)}),"function"==typeof jQuery&&$.extend({product:wasProduct}),Array.prototype.stride||(Array.prototype.stride=function(e){return wasStride(this,e)}),"function"==typeof jQuery&&$.extend({stride:wasStride}),Array.prototype.chunk||(Array.prototype.chunk=function(e,t){return wasChunk(this,t)}),"function"==typeof jQuery&&$.extend({chunk:wasChunk}),Array.prototype.equals||(Array.prototype.equals=function(e,t){return wasEquals(this,t)}),"function"==typeof jQuery&&$.extend({equals:wasEquals}),"undefined"!=typeof module&&void 0!==module.exports&&(module.exports.collections={product:wasProduct,stride:wasStride,chunk:wasChunk,equals:wasEquals}),"undefined"!=typeof module&&void 0!==module.exports&&(module.exports.formats={csv:{CSVToArray:wasCSVToArray,ArrayToCSV:wasArrayToCSV},kvp:{KeyValueToObject:wasKeyValueToObject,KeyValueGet:wasKeyValueGet,KeyValueSet:wasKeyValueSet}}),Array.prototype.switch||(Array.prototype.switch=function(){wasSwitch(this,arguments[0],arguments.slice(1))}),"function"==typeof jQuery&&$.extend({switch:wasSwitch}),"undefined"!=typeof module&&void 0!==module.exports&&(module.exports.lambda={switch:wasSwitch}),"undefined"!=typeof module&&void 0!==module.exports&&(module.exports.mathematics={MapValueToRange:wasMapValueToRange}),"undefined"!=typeof module&&void 0!==module.exports&&(module.exports.physics={HexToRGB:wasHexToRGB,RGBToHex:wasRGBToHex});
function wasArrayToObject(e){var t={};return e.reduce(function(e,t,r){return e[r=Math.floor(r/2)]||(e[r]=[]),e[r].push(t),e},[]).forEach(function(e,r,o){t[e[0]]=e[1]},t),t}function wasProduct(e,t){for(var r=Math.max(e.length,t.length),o={},n=0;n<r;++n)o[e[n]]=t[n];return o}function wasStride(e,t){return e.filter(function(e,r){return r%t==0})}function wasChunk(e,t){return Array.from(new Array(Math.ceil(e.length/t)),(r,o)=>e.slice(o*t,o*t+t))}function wasEquals(e,t){if(!t)return!1;if(e.length!==t.length)return!1;for(var r=0,o=e.length;r<o;r++)if(e[r]instanceof Array&&t[r]instanceof Array){if(!e[r].equals(t[r]))return!1}else if(e[r]!==t[r])return!1;return!0}function wasCSVToArray(e){var t=[],r=[],o="";do{var n=e.charAt(0);if(e=e.slice(1,e.length),","!==n)if('"'!==n||e.charAt(0)!==n)if('"'!==n)o+=n;else{if(r[r.length-1]!==n){r.push(n);continue}r.pop()}else o+=n,e=e.slice(1,e.length);else{if('"'!==r[r.length-1]){t.push(o),o="";continue}o+=n}}while(""!==e);return t.push(o),t}function wasArrayToCSV(e){for(var t=[],r=0;r<e.length;++r){var o=e[r].toString().replace('"','""');/"\s,\r\n/.test(o)?t[r]='"'+o+'"':t[r]=o}return t.join()}function wasKeyValueToObject(e){var t={};return e.split("&").forEach(e=>{var r=e.split("=").filter(e=>"undefined"!==e[0]&&"undefined"!==e[1]);t[r[0]]=r[1]}),t}function wasKeyValueSet(e,t,r){return r.split("&").map(r=>r.split("=")[0]===e?`${e}=${t}`:r).concat(`${e}=${t}`).filter((e,t,r)=>r.indexOf(e)===t).join("&")}function wasKeyValueGet(e,t){return t.split("&").reduce((t,r)=>{var o=r.split("=");return o[0]===e?o[1]:t},"")}function wasSwitch(e,t,...r){if(r.length%2!=0)throw"Pairs of predicates expected for cases";(Array.isArray(e)?e:[e]).forEach(e=>{for(var o=!1,n=0;n<r.length;n+=2)r[n](e)&&r[n+1](e)&&(o=!0);o||t(e)})}function wasMapValueToRange(e,t,r,o,n){return o+(n-o)*(e-t)/(r-t)}function wasHexToRGB(e){e=e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(e,t,r,o){return t+t+r+r+o+o});var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function wasRGBToHex(e,t,r){return"#"+((1<<24)+(e<<16)+(t<<8)+r).toString(16).slice(1)}Array.prototype.toObject||(Array.prototype.toObject=function(){return wasArrayToObject(this)}),"function"==typeof jQuery&&$.extend({toObject:wasArrayToObject}),Array.prototype.product||(Array.prototype.product=function(e){return wasProduct(this,e)}),"function"==typeof jQuery&&$.extend({product:wasProduct}),Array.prototype.stride||(Array.prototype.stride=function(e){return wasStride(this,e)}),"function"==typeof jQuery&&$.extend({stride:wasStride}),Array.prototype.chunk||(Array.prototype.chunk=function(e,t){return wasChunk(this,t)}),"function"==typeof jQuery&&$.extend({chunk:wasChunk}),Array.prototype.equals||(Array.prototype.equals=function(e,t){return wasEquals(this,t)}),"function"==typeof jQuery&&$.extend({equals:wasEquals}),"undefined"!=typeof module&&void 0!==module.exports&&(module.exports.collections={product:wasProduct,stride:wasStride,chunk:wasChunk,equals:wasEquals,toObject:wasArrayToObject}),"undefined"!=typeof module&&void 0!==module.exports&&(module.exports.formats={csv:{CSVToArray:wasCSVToArray,ArrayToCSV:wasArrayToCSV},kvp:{KeyValueToObject:wasKeyValueToObject,KeyValueGet:wasKeyValueGet,KeyValueSet:wasKeyValueSet}}),Array.prototype.switch||(Array.prototype.switch=function(){wasSwitch(this,arguments[0],arguments.slice(1))}),"function"==typeof jQuery&&$.extend({switch:wasSwitch}),"undefined"!=typeof module&&void 0!==module.exports&&(module.exports.lambda={switch:wasSwitch}),"undefined"!=typeof module&&void 0!==module.exports&&(module.exports.mathematics={MapValueToRange:wasMapValueToRange}),"undefined"!=typeof module&&void 0!==module.exports&&(module.exports.physics={HexToRGB:wasHexToRGB,RGBToHex:wasRGBToHex});
/trunk/lib/collections/arrays/arrays.js
@@ -1,6 +1,36 @@
/*************************************************************************/
/* Copyright (C) 2017 Wizardry and Steamworks - License: GNU GPLv3 */
/*************************************************************************/
function wasArrayToObject(a) {
var o = {};
a.reduce(function(a, c, i) {
i = Math.floor(i / 2);
if (!a[i]) {
a[i] = [];
}
a[i].push(c);
return a;
}, []).forEach(function(c, i, a) {
o[c[0]] = c[1];
}, o);
return o;
}
if (!Array.prototype.toObject) {
Array.prototype.toObject = function() {
return wasArrayToObject(this);
};
}
// jQuery
if(typeof jQuery === 'function') {
$.extend({
toObject: wasArrayToObject
});
}
 
 
/*************************************************************************/
/* Copyright (C) 2017 Wizardry and Steamworks - License: GNU GPLv3 */
/*************************************************************************/
function wasProduct(a, b) {
var m = Math.max(a.length, b.length);
var o = {};
@@ -109,6 +139,7 @@
product: wasProduct,
stride: wasStride,
chunk: wasChunk,
equals: wasEquals
equals: wasEquals,
toObject: wasArrayToObject
};
}
/trunk/lib/formats/kvp/kvp.js
@@ -1,19 +1,16 @@
/*************************************************************************/
/* Copyright (C) 2017 Wizardry and Steamworks - License: GNU GPLv3 */
/* Copyright (C) 2020 Wizardry and Steamworks - License: GNU GPLv3 */
/*************************************************************************/
function wasKeyValueToObject(a) {
var o = {};
a.reduce(function(a, c, i) {
i = Math.floor(i / 2);
if (!a[i]) {
a[i] = [];
}
a[i].push(c);
return a;
}, []).forEach(function(c, i, a) {
o[c[0]] = c[1];
}, o);
return o;
function wasKeyValueToObject(data) {
var result = {};
data.split('&').forEach((kvp) => {
var kv = kvp.split('=')
.filter((kv) =>
kv[0] !== 'undefined' && kv[1] !== 'undefined');
result[kv[0]] = kv[1];
 
});
return result;
}
 
/*************************************************************************/