Skip to content

Broken metadata access for non-root $meta #120

@kisaiev

Description

@kisaiev

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/confidence@6.0.2

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'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions