TylerGarlick/dto

View on GitHub
lib/utils/pointers.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';

let Lazy = require('lazy.js');
let Pointer = require('json-ptr');

class Pointers {

  static getValue(source, pointer) {
    let value = '';
    if (Pointers.isValid(pointer)) {
      value = Pointer.get(source, pointer);
    }
    return value;
  }

  static decompileCompound(pointer) {
    let pieces = [];
    if (Pointers.isCompound(pointer)) {
      pieces = new Lazy(pointer.split(' ')).where(Pointers.isValid).toArray();
    }
    return pieces;
  }

  static isCompound(pointer) {
    return new Lazy(pointer) && new Lazy(pointer.split(' ')).some(Pointers.isValid);
  }

  static isValid(pointer) {
    return new Lazy(pointer).startsWith('/') || new Lazy(pointer).startsWith('#/');
  }
}

module.exports = Pointers;