Skip to content

Commit 560fadf

Browse files
committed
handle typed arrays & b64 in info_array e.g. sankey.groups
1 parent 5860886 commit 560fadf

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/lib/coerce.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -293,17 +293,19 @@ exports.valObjectMeta = {
293293
return out;
294294
}
295295

296-
var twoD = opts.dimensions === 2 || (opts.dimensions === '1-2' && Array.isArray(v) && Array.isArray(v[0]));
296+
if(isTypedArraySpec(v)) v = decodeTypedArraySpec(v);
297297

298-
if(!Array.isArray(v)) {
298+
if(!isArrayOrTypedArray(v)) {
299299
propOut.set(dflt);
300300
return;
301301
}
302302

303+
var twoD = opts.dimensions === 2 || (opts.dimensions === '1-2' && Array.isArray(v) && isArrayOrTypedArray(v[0]));
304+
303305
var items = opts.items;
304306
var vOut = [];
305307
var arrayItems = Array.isArray(items);
306-
var arrayItems2D = arrayItems && twoD && Array.isArray(items[0]);
308+
var arrayItems2D = arrayItems && twoD && isArrayOrTypedArray(items[0]);
307309
var innerItemsOnly = twoD && arrayItems && !arrayItems2D;
308310
var len = (arrayItems && !innerItemsOnly) ? items.length : v.length;
309311

@@ -314,7 +316,7 @@ exports.valObjectMeta = {
314316
if(twoD) {
315317
for(i = 0; i < len; i++) {
316318
vOut[i] = [];
317-
row = Array.isArray(v[i]) ? v[i] : [];
319+
row = isArrayOrTypedArray(v[i]) ? v[i] : [];
318320
if(innerItemsOnly) len2 = items.length;
319321
else if(arrayItems) len2 = items[i].length;
320322
else len2 = row.length;
@@ -338,7 +340,7 @@ exports.valObjectMeta = {
338340
propOut.set(vOut);
339341
},
340342
validateFunction: function(v, opts) {
341-
if(!Array.isArray(v)) return false;
343+
if(!isArrayOrTypedArray(v)) return false;
342344

343345
var items = opts.items;
344346
var arrayItems = Array.isArray(items);
@@ -350,7 +352,7 @@ exports.valObjectMeta = {
350352
// valid when all input items are valid
351353
for(var i = 0; i < v.length; i++) {
352354
if(twoD) {
353-
if(!Array.isArray(v[i]) || (!opts.freeLength && v[i].length !== items[i].length)) {
355+
if(!isArrayOrTypedArray(v[i]) || (!opts.freeLength && v[i].length !== items[i].length)) {
354356
return false;
355357
}
356358
for(var j = 0; j < v[i].length; j++) {

0 commit comments

Comments
 (0)