src/dygraph.js
function validateNativeFormat(data) {
  const firstRow = data[0];
  const firstX = firstRow[0];
  if (typeof firstX !== 'number' && !utils.isDateLike(firstX)) {
    throw new Error(`Expected number or date but got ${typeof firstX}: ${firstX}.`);
  }
  for (let i = 1; i < firstRow.length; i++) {
    const val = firstRow[i];
    if (val === null || val === undefined) continue;
    if (typeof val === 'number') continue;
    if (utils.isArrayLike(val)) continue;  // e.g. error bars or custom bars.
    throw new Error(`Expected number or array but got ${typeof val}: ${val}.`);
  }
}
function validateNativeFormat(data) {
  const firstRow = data[0];
  const firstX = firstRow[0];
  if (typeof firstX !== 'number' && !utils.isDateLike(firstX)) {
    throw new Error(`Expected number or date but got ${typeof firstX}: ${firstX}.`);
  }
  for (let i = 1; i < firstRow.length; i++) {
    const val = firstRow[i];
    if (val === null || val === undefined) continue;
    if (typeof val === 'number') continue;
    if (utils.isArrayLike(val)) continue;  // e.g. error bars or custom bars.
    throw new Error(`Expected number or array but got ${typeof val}: ${val}.`);
  }
}
function validateNativeFormat ( data ) { const firstRow = data [ 0 ] ; const firstX = firstRow [ 0 ] ; if ( typeof firstX !== 'number' && ! utils . isDateLike ( firstX ) ) { throw new Error ( ` ${ typeof firstX } ${ firstX } ` ) ; } for ( let i = 1 ; i < firstRow . length ; i ++ ) { const val = firstRow [ i ] ; if ( val === null || val === undefined ) continue ; if ( typeof val === 'number' ) continue ; if ( utils . isArrayLike ( val ) ) continue ; // e.g. error bars or custom bars. throw new Error ( ` ${ typeof val } ${ val } ` ) ; } }
In native format, all values must be dates or numbers. This check isn't perfect but will catch most mistaken uses of strings.
In native format all values must be dates or numbers . This check isn t perfect but will catch most mistaken uses of strings .