@chartshq/datamodel
Version:
An environment with `node`, `rustup` and `wasm-pack` set up.
1 lines • 1.3 kB
JavaScript
var __read=this&&this.__read||function(r,e){var t="function"==typeof Symbol&&r[Symbol.iterator];if(!t)return r;var a,o,n=t.call(r),i=[];try{for(;(void 0===e||e-- >0)&&!(a=n.next()).done;)i.push(a.value)}catch(r){o={error:r}}finally{try{a&&!a.done&&(t=n.return)&&t.call(n)}finally{if(o)throw o.error}}return i},__spread=this&&this.__spread||function(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(__read(arguments[e]));return r};import{columnMajor}from"../utils/index";import{FieldSubtype,FieldType}from"../../constants/fields";import dataParserStore from"./store";function DSVArr(r,e,t){if(!Array.isArray(e))throw new Error("Schema missing or is in an unsupported format");var a=e.map(function(r){return r.name});t=Object.assign({},{firstRowHeader:!0},t);var o=[[]],n=columnMajor(o),i=a;t.firstRowHeader&&(i=r.splice(0,1)[0]);var u=i.reduce(function(r,e,t){var a;return Object.assign(r,((a={})[e]=t,a)),r},{});return r.forEach(function(r){var t=[];return e.forEach(function(e){var a=e.name,o=e.type,n=e.format,i=void 0===n?function(r){return r}:n,s=e.subtype,f=void 0===s?FieldSubtype.CATEGORICAL:s;o===FieldType.MEASURE&&(f=FieldSubtype.CONTINUOUS);var d=dataParserStore.get(f),c=u[a],l=d?d.parse(r[c],i):r[c];t.push(l)}),n.apply(void 0,__spread(t))}),{data:o,schema:e}}export default DSVArr;