Skip to content

Проверка params во вложенных объектах #78

@Pomkaize

Description

@Pomkaize
import * as de from 'descript';

interface ParamsTop {
    param1: string;
    param2: string;
}

interface ParamsResource1 {
    resourceParams: string;
}

const block1 = de.func({
    block: ({ params }: { params: ParamsTop }) => {
        return de.object({
            block: {
                resource1: de.func({
                    block: ({ params }: { params: ParamsResource1 }) => {
                        console.log('params');
                        console.log(params);

                        return 'resource1 result'
                    },
                })
            }
        });
    }
});

de.run(block1, {
    params: {
        param1: 'param1',
        param2: 'param2',
    },
})
    .then((result) => {
        console.log(result);
    });

ParamsResource1 - контракт при котором будет работать блок resource1.
Однако нет проверки на то, что эти параметры будут доставлены до этого блока (в моем примере не доставлены)

Нужно проверять параметры всех parent блоков + их результатов метода options.params, и сравнивать с тем, что нужно для вызова блока. При несоответсвии выдавать ошибку типов

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