Skip to content

12.41.0

Choose a tag to compare

@peterver peterver released this 06 Jun 10:23
· 67 commits to main since this release

Added

  • feat: Added a new object/scramble util. This scramble util works exactly the same as object/omit, with the exception that instead of omitting it replaces the found values.
import {scramble} from '@valkyriestudios/utils/object';

const subject = {
    user: {
        name: 'Peter',
        secret: 'Z',
        age: 35,
    },
    pin: 1234,
    data: {
        rows: [
            {meta: {secret: 'x', id: 1}},
            {meta: {secret: 'y', id: 2}},
        ],
        accessToken: 'whadup',
    },
};

const cleaned = omit(scramble, ['*.secret', '*.age', 'data.accessToken', 'pin']);

/* Cleaned will be */
{
    user: {
        name: 'Peter',
        secret: '***',
        age: '***',
    },
    pin: '***',
    data: {
        rows: [
            {meta: {secret: '***', id: 1}},
            {meta: {secret: '***', id: 2}},
        ],
        accessToken: '***',
    },
}

Improved

  • feat: Added support for using a wildcard prefix in object/omit keys arrays. You can now do for example:
import {omit} from '@valkyriestudios/utils/object';

const subject = {
    user: {
        name: 'Peter',
        secret: 'Z',
        age: 35,
    },
    pin: 1234,
    data: {
        rows: [
            {meta: {secret: 'x', id: 1}},
            {meta: {secret: 'y', id: 2}},
        ],
        accessToken: 'whadup',
    },
};

const cleaned = omit(subject, ['*.secret', '*.age', 'data.accessToken', 'pin']);

/* Cleaned will be */
{
    user: {
        name: 'Peter',
    },
    data: {
        rows: [
            {meta: {id: 1}},
            {meta: {id: 2}},
        ],
    },
}
  • deps: Upgrade @types/node to 22.15.30
  • deps: Upgrade @vitest/coverage-v8 to 3.2.2
  • deps: Upgrade vitest to 3.2.2