confidence icon indicating copy to clipboard operation
confidence copied to clipboard

Broken metadata access for non-root $meta

Open kisaiev opened this issue 1 year ago • 0 comments

Problem

Metadata for primitive values (non-objects) cannot be requested by the key (e.g. Store.meta('/b').

Version

  • Package version: v6.0.2 (latest)
  • Node.js version: v20.16.0 (LTS)
❯ node -v
v20.16.0
❯ npm i @hapipal/confidence@latest
❯ npm list @hapipal/confidence
...
└── @hapipal/[email protected]

Steps to reproduce

import { Store } from '@hapipal/confidence';

const store = new Store({
    a: 'a',
    b: {
        $value: 'b',
        $meta: 'b_meta',
    },
    c: {
        inside_c: 'inside_c',
        $meta: 'inside_c_meta',
    },
    $meta: {
        root: 'root_meta',
    },
});

Actual behaviour

// Data is returned as expected
store.get('/'); // { a: 'a', b: 'b', c: { inside_c: 'inside_c' } }

// Root metadata returned as expected
store.meta('/'); // { root: 'root_meta' }

// Metadata for primitive value is unreachable
store.meta('/b'); // undefined

// Metadata for object is returned as expected
console.log(store.meta('/c')); // inside_c_meta

Expected behaviour

store.meta('/b'); // 'b_meta'

kisaiev avatar Oct 30 '24 19:10 kisaiev