jsona
Version:
Provide data formatters (data model builder & json builder) to work with JSON API specification v1.0 in your JavaScript / TypeScript code
38 lines (30 loc) • 1.05 kB
text/typescript
import {
TJsonaIncludeNamesChain,
TJsonaNormalizedIncludeNamesTree
} from './JsonaTypes';
export function createIncludeNamesTree(
namesChain: TJsonaIncludeNamesChain,
includeTree: TJsonaNormalizedIncludeNamesTree,
): void {
const namesArray = namesChain.split('.');
const currentIncludeName = namesArray.shift();
const chainHasMoreNames = namesArray.length;
let subTree = null;
if (chainHasMoreNames) {
subTree = includeTree[currentIncludeName] || {};
createIncludeNamesTree(namesArray.join('.'), subTree);
}
includeTree[currentIncludeName] = subTree;
}
export function jsonParse(stringified: string): Object {
let parsed;
try {
parsed = JSON.parse(stringified);
} catch (e) {
parsed = {};
console.warn(e);
}
return parsed;
}
// https://github.com/30-seconds/30-seconds-of-code/blob/master/snippets/isPlainObject.md
export const isPlainObject = (val: unknown): val is Object => !!val && typeof val === 'object' && val.constructor === Object;