UNPKG

@sketch-hq/sketch-assistant-utils

Version:

Utility functions and types for Sketch Assistants.

43 lines (42 loc) 1.41 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getParentPointer = exports.evalPointer = void 0; const json_pointer_1 = __importDefault(require("@json-schema-spec/json-pointer")); /** * Resolve a RFC6901 JSON Pointer to a value with a target object instance. */ const evalPointer = (pointer, instance) => { try { const ptr = json_pointer_1.default.parse(pointer); return ptr.eval(instance); } catch (err) { return undefined; } }; exports.evalPointer = evalPointer; /** * Unwind a RFC6901 JSON Pointer string one level to find the JSON Pointer for its parent, * e.g. `/foo/bar/0/baz` => `foo/bar[0]`. If the JSON Pointer is invalid or the parent isn't * available (i.e. already at the root) then `undefined` is returned. */ const getParentPointer = (pointer) => { try { const ptr = json_pointer_1.default.parse(pointer); if (ptr.tokens.length === 0) return undefined; try { return new json_pointer_1.default(ptr.tokens.splice(0, ptr.tokens.length - 1)).toString(); } catch (err) { return undefined; } } catch (err) { return undefined; } }; exports.getParentPointer = getParentPointer;