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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions