UNPKG

@dpkit/table

Version:

Data Package implementation in TypeScript.

23 lines 3.59 kB
import { DataType } from "nodejs-polars"; import { col } from "nodejs-polars"; // TODO: support categories // TODO: support categoriesOrder export function parseIntegerField(field, expr) { expr = expr ?? col(field.name); // Handle non-bare numbers (with currency symbols, percent signs, etc.) if (field.bareNumber === false) { // Preserve the minus sign when removing leading characters expr = expr.str.replaceAll("^[^\\d\\-]+", ""); expr = expr.str.replaceAll("[^\\d\\-]+$", ""); } // Handle group character (thousands separator) if (field.groupChar) { // Escape special characters for regex const escapedGroupChar = field.groupChar.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); expr = expr.str.replaceAll(escapedGroupChar, ""); } // Cast to int64 (will handle values up to 2^63-1) expr = expr.cast(DataType.Int64); return expr; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2ZpZWxkL3R5cGVzL2ludGVnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBR25DLDJCQUEyQjtBQUMzQixnQ0FBZ0M7QUFDaEMsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQW1CLEVBQUUsSUFBVztJQUNoRSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFOUIsdUVBQXVFO0lBQ3ZFLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUMvQiwyREFBMkQ7UUFDM0QsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUM3QyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRCwrQ0FBK0M7SUFDL0MsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDcEIsc0NBQXNDO1FBQ3RDLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQzlDLHFCQUFxQixFQUNyQixNQUFNLENBQ1AsQ0FBQTtRQUNELElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBRUQsa0RBQWtEO0lBQ2xELElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoQyxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEludGVnZXJGaWVsZCB9IGZyb20gXCJAZHBraXQvY29yZVwiXG5pbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gXCJub2RlanMtcG9sYXJzXCJcbmltcG9ydCB7IGNvbCB9IGZyb20gXCJub2RlanMtcG9sYXJzXCJcbmltcG9ydCB0eXBlIHsgRXhwciB9IGZyb20gXCJub2RlanMtcG9sYXJzXCJcblxuLy8gVE9ETzogc3VwcG9ydCBjYXRlZ29yaWVzXG4vLyBUT0RPOiBzdXBwb3J0IGNhdGVnb3JpZXNPcmRlclxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSW50ZWdlckZpZWxkKGZpZWxkOiBJbnRlZ2VyRmllbGQsIGV4cHI/OiBFeHByKSB7XG4gIGV4cHIgPSBleHByID8/IGNvbChmaWVsZC5uYW1lKVxuXG4gIC8vIEhhbmRsZSBub24tYmFyZSBudW1iZXJzICh3aXRoIGN1cnJlbmN5IHN5bWJvbHMsIHBlcmNlbnQgc2lnbnMsIGV0Yy4pXG4gIGlmIChmaWVsZC5iYXJlTnVtYmVyID09PSBmYWxzZSkge1xuICAgIC8vIFByZXNlcnZlIHRoZSBtaW51cyBzaWduIHdoZW4gcmVtb3ZpbmcgbGVhZGluZyBjaGFyYWN0ZXJzXG4gICAgZXhwciA9IGV4cHIuc3RyLnJlcGxhY2VBbGwoXCJeW15cXFxcZFxcXFwtXStcIiwgXCJcIilcbiAgICBleHByID0gZXhwci5zdHIucmVwbGFjZUFsbChcIlteXFxcXGRcXFxcLV0rJFwiLCBcIlwiKVxuICB9XG5cbiAgLy8gSGFuZGxlIGdyb3VwIGNoYXJhY3RlciAodGhvdXNhbmRzIHNlcGFyYXRvcilcbiAgaWYgKGZpZWxkLmdyb3VwQ2hhcikge1xuICAgIC8vIEVzY2FwZSBzcGVjaWFsIGNoYXJhY3RlcnMgZm9yIHJlZ2V4XG4gICAgY29uc3QgZXNjYXBlZEdyb3VwQ2hhciA9IGZpZWxkLmdyb3VwQ2hhci5yZXBsYWNlKFxuICAgICAgL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLFxuICAgICAgXCJcXFxcJCZcIixcbiAgICApXG4gICAgZXhwciA9IGV4cHIuc3RyLnJlcGxhY2VBbGwoZXNjYXBlZEdyb3VwQ2hhciwgXCJcIilcbiAgfVxuXG4gIC8vIENhc3QgdG8gaW50NjQgKHdpbGwgaGFuZGxlIHZhbHVlcyB1cCB0byAyXjYzLTEpXG4gIGV4cHIgPSBleHByLmNhc3QoRGF0YVR5cGUuSW50NjQpXG4gIHJldHVybiBleHByXG59XG4iXX0=