Socket
Socket
Sign inDemoInstall

@mathigon/core

Package Overview
Dependencies
Maintainers
1
Versions
62
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mathigon/core - npm Package Compare versions

Comparing version 1.0.4 to 1.0.5

2

dist/arrays.d.ts

@@ -42,2 +42,4 @@ /** Creates an array of size `n`, containing `value` at every entry. */

export declare function join<T = unknown>(...arrays: T[][]): T[];
/** Converts a 2D array to CSV data. */
export declare function toCSV(data: unknown[][]): string;
declare type LinkedListItem<T> = {

@@ -44,0 +46,0 @@ val: T;

27

dist/index.cjs.js

@@ -16,3 +16,2 @@ var __defProp = Object.defineProperty;

LinkedList: () => LinkedList,
applyDefaults: () => applyDefaults,
autoCorrect: () => autoCorrect,

@@ -50,2 +49,3 @@ cache: () => cache,

throttle: () => throttle,
toCSV: () => toCSV,
toCamelCase: () => toCamelCase,

@@ -72,9 +72,2 @@ toTitleCase: () => toTitleCase,

}
function applyDefaults(obj, defaults) {
for (const key of Object.keys(defaults)) {
if (!Object.prototype.hasOwnProperty.call(obj, key))
obj[key] = defaults[key];
}
return obj;
}
var defaultMerge = (a, b) => a.concat(b);

@@ -157,7 +150,13 @@ function deepExtend(obj1, obj2, arrayMergeFn = defaultMerge) {

}
function safeToJSON(str, fallback = {}) {
function reviver(allowed) {
return function(key, value) {
if (!key || Array.isArray(this) || allowed.includes(key))
return value;
};
}
function safeToJSON(str, fallback, allowedKeys) {
if (!str)
return fallback;
try {
return JSON.parse(str) || fallback;
return JSON.parse(str, allowedKeys ? reviver(allowedKeys) : void 0) || fallback;
} catch (e) {

@@ -266,2 +265,10 @@ return fallback;

}
function toCSV(data) {
return data.map((row) => row.map((x) => {
let cell = x ? `${x}` : "";
if (cell.match(/[,\n"']/))
cell = `"${cell.replace(/"/g, '""')}"`;
return cell;
}).join(",")).join("\n");
}
var LinkedList = class {

@@ -268,0 +275,0 @@ constructor(items) {

@@ -13,9 +13,2 @@ // src/utilities.ts

}
function applyDefaults(obj, defaults) {
for (const key of Object.keys(defaults)) {
if (!Object.prototype.hasOwnProperty.call(obj, key))
obj[key] = defaults[key];
}
return obj;
}
var defaultMerge = (a, b) => a.concat(b);

@@ -98,7 +91,13 @@ function deepExtend(obj1, obj2, arrayMergeFn = defaultMerge) {

}
function safeToJSON(str, fallback = {}) {
function reviver(allowed) {
return function(key, value) {
if (!key || Array.isArray(this) || allowed.includes(key))
return value;
};
}
function safeToJSON(str, fallback, allowedKeys) {
if (!str)
return fallback;
try {
return JSON.parse(str) || fallback;
return JSON.parse(str, allowedKeys ? reviver(allowedKeys) : void 0) || fallback;
} catch (e) {

@@ -207,2 +206,10 @@ return fallback;

}
function toCSV(data) {
return data.map((row) => row.map((x) => {
let cell = x ? `${x}` : "";
if (cell.match(/[,\n"']/))
cell = `"${cell.replace(/"/g, '""')}"`;
return cell;
}).join(",")).join("\n");
}
var LinkedList = class {

@@ -652,3 +659,2 @@ constructor(items) {

LinkedList,
applyDefaults,
autoCorrect,

@@ -686,2 +692,3 @@ cache,

throttle,
toCSV,
toCamelCase,

@@ -688,0 +695,0 @@ toTitleCase,

@@ -11,4 +11,2 @@ /** Object Map Interface. */

export declare function isOneOf<T>(x: T, ...values: T[]): boolean;
/** Applies default keys to an object. Properties with value `undefined` or `null` will **not** be overwritten. */
export declare function applyDefaults<O extends Obj<unknown>, D extends Obj<unknown>>(obj: O, defaults: D): O & D;
/** Deep extends obj1 with obj2, using a custom array merge function. */

@@ -43,2 +41,2 @@ export declare function deepExtend(obj1: any, obj2: any, arrayMergeFn?: (a: unknown[], b: unknown[]) => unknown[]): void;

/** Safe wrapper for JSON.parse. */
export declare function safeToJSON(str?: string, fallback?: unknown): unknown;
export declare function safeToJSON<T>(str?: string | null, fallback?: T, allowedKeys?: string[]): T | undefined;
{
"name": "@mathigon/core",
"version": "1.0.4",
"version": "1.0.5",
"license": "MIT",

@@ -5,0 +5,0 @@ "homepage": "https://mathigon.io/core",

@@ -161,2 +161,13 @@ // =============================================================================

/** Converts a 2D array to CSV data. */
export function toCSV(data: unknown[][]) {
return data.map(row => row.map(x => {
let cell = x ? `${x}` : '';
if (cell.match(/[,\n"']/)) cell = `"${cell.replace(/"/g, '""')}"`;
return cell;
}).join(',')).join('\n');
}
type LinkedListItem<T> = {val: T, prev: LinkedListItem<T>, next: LinkedListItem<T>};

@@ -163,0 +174,0 @@

@@ -29,11 +29,3 @@ // =============================================================================

/** Applies default keys to an object. Properties with value `undefined` or `null` will **not** be overwritten. */
export function applyDefaults<O extends Obj<unknown>, D extends Obj<unknown>>(obj: O, defaults: D) {
for (const key of Object.keys(defaults)) {
if (!Object.prototype.hasOwnProperty.call(obj, key)) (obj as Obj<unknown>)[key] = defaults[key];
}
return obj as O & D;
}
const defaultMerge = ((a: unknown[], b: unknown[]) => a.concat(b));

@@ -151,7 +143,15 @@

function reviver(allowed: string[]) {
// Filter only specific keys in a JSON object.
return function(this: unknown, key: string, value: unknown) {
// eslint-disable-next-line no-invalid-this
if (!key || Array.isArray(this) || allowed.includes(key)) return value;
};
}
/** Safe wrapper for JSON.parse. */
export function safeToJSON(str?: string, fallback: unknown = {}): unknown {
export function safeToJSON<T>(str?: string|null, fallback?: T, allowedKeys?: string[]): T|undefined {
if (!str) return fallback;
try {
return JSON.parse(str) || fallback;
return JSON.parse(str, allowedKeys ? reviver(allowedKeys) : undefined) || fallback;
} catch (e) {

@@ -158,0 +158,0 @@ return fallback;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc