Newton's Principia Mathematica
    Have ideas to improve npm?Join in the discussion! »

    ts-dot-prop
    TypeScript icon, indicating that this package has built-in type declarations

    1.4.3 • Public • Published

    NPM Version CI Dev Dependency Status codecov

    ts-dot-prop

    TypeScript utility to transform nested objects using a dot notation path.

    Installation

    npm install ts-dot-prop
    

    Usage

    import * as dot from 'ts-dot-prop';
    
    const obj = {
      foo: 'bar',
      state: {
        name: 'New York',
      },
      fruit: [
        {
          type: 'Apple',
          color: 'red',
        },
        {
          type: 'Mango',
          color: 'orange',
        },
      ],
    };
    
    /**
     * Get
     */
    dot.get(obj, 'state.name');
    // => 'New York'
    
    dot.get(obj, 'fruit[0].type');
    // => 'Apple'
    
    dot.get(obj, 'fruit[*].color');
    // => ['red', 'orange']
    
    dot.get(obj, 'state.capital');
    // => undefined
    
    dot.get(obj, 'state.population.total', 'not found');
    // => 'not found'
    
    /**
     * Set
     */
    dot.set(obj, 'state.name', 'Paris');
    // => state.name === 'Paris'
    
    dot.set(obj, 'state.capital', 'Albany');
    // => state.capital === 'Albany'
    
    dot.set(obj, 'fruit[0].color', 'Green');
    // => fruit[0].color === 'Green'
    
    dot.set(obj, 'fruit[*].color', 'Yellow');
    // => fruit[0].color === 'Yellow'
    // => fruit[1].color === 'Yellow'
    
    /**
     * Has
     */
    dot.has(obj, 'state.name');
    // => true
    
    dot.has(obj, 'fruit[0].type');
    // => true
    
    /**
     * Remove
     */
    dot.remove(obj, 'state.name');
    // => state.name === undefined
    
    dot.remove(obj, 'fruit[0].color');
    // => fruit[0].color === undefined
    
    /**
     * Paths
     */
    dot.paths(obj);
    // => ['foo', 'state.name', 'fruit']

    Install

    npm i ts-dot-prop

    DownloadsWeekly Downloads

    1,872

    Version

    1.4.3

    License

    MIT

    Unpacked Size

    17.8 kB

    Total Files

    10

    Last publish

    Collaborators

    • avatar