UNPKG

@chartshq/datamodel

Version:

An environment with `node`, `rustup` and `wasm-pack` set up.

1 lines 1.57 kB
import{WasmMemory}from"../utils";import{_fieldTypeResolver,_fieldSubtypeResolver}from"../../../constants/fields";import{_aggregationResolver}from"../../../constants/aggregations";import DataModel from"../../../main";export var saveIndecesToMemory=function(e,r){new Int32Array(WasmMemory.buffer,e,r.length).set(r)};export var saveNumbersToMemory=function(e,r){new Float64Array(WasmMemory.buffer,e,r.length).set(r)};export var sanitizeNumbers=function(e){void 0===e&&(e=[]);var r=[],t=[];return e.forEach(function(e){"number"==typeof e&&Number.isFinite(e)?(r.push(e),t.push(1)):(r.push(NaN),t.push(-1))}),{indices:t,values:r}};export var getIndecesFromMemory=function(e,r){for(var t=new Int32Array(WasmMemory.buffer,e,r),n=new Array(r),o=0;o<t.length;o++)n[o]=t[o];return n};export var getNumbersArrayFromMemory=function(e,r){for(var t=new Float64Array(WasmMemory.buffer,e,r),n=new Array(r),o=0;o<t.length;o++)n[o]=t[o];return n};export var isValidString=function(e){var r="",t=DataModel.defaults.getInvalidStore();if(null==e)return!1;if("number"==typeof e){if(isNaN(e))return!1;r=String(e)}else r=e;return!t.isInvalid(r)};export var sanitizeStrings=function(e){void 0===e&&(e=[]);for(var r=new Map,t=[],n=[],o=0,a=0;a<e.length;a++){var i=isValidString(e[a]);i&&!r.has(e[a])?(r.set(e[a],o),t.push(o),o++,n.push(String(e[a]))):t.push(i?r.get(e[a]):-1)}return{uniqueStrings:n,indices:t}};export var getWasmSchema=function(e){return{name:e.name,type:_fieldTypeResolver(e.type),subtype:_fieldSubtypeResolver(e.subtype),aggregation_function:_aggregationResolver(e.defAggFn)}};