File size: 700 Bytes
a23aa7d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import { NOT_REGEX, QUOTES_REGEX, SLASH_REGEX } from '../constants';
import pointer from 'jsonpointer';

export const pointerToDotNotation = (pointer: string): string => {
  return pointer.replace(SLASH_REGEX, '.');
};

export const cleanAjvMessage = (message: string): string => {
  return message.replace(QUOTES_REGEX, "'").replace(NOT_REGEX, 'not');
};

export const getLastSegment = (path: string): string => {
  const segments = path.split('/');
  return segments.pop() as string;
};

export const safeJsonPointer = <T>({ object, pnter, fallback }: { object: any; pnter: string; fallback: T }): T => {
  try {
    return pointer.get(object, pnter);
  } catch (err) {
    return fallback;
  }
};