Я ищу не зависящий от библиотеки способ «сложить» функции. Парадигма, к которой я привык, - это «промежуточное программное обеспечение», где что-то происходит в функции, могут возникать ошибки, и глобальный context
(или req
) используется для присоединения новых свойств или изменения существующих. Эти идеи можно найти в таких библиотеках, как express
или type-graphql
.
. Я ищу какой-то независимый способ связывания промежуточного программного обеспечения, не зависящий от библиотек этого типа.
Вот пример того, какие функции у меня есть.
Я борюсь с каким-то чистым способом создания функций. Глобальный подход не является обязательным для правильной типизации с использованием машинописи и не очень функционален.
Там, где более функциональному подходу не хватает такого рода «цепочечной гибкости», где я могу просто иметь массив функций, как показано ниже.
// logs the start of middleware
context.utility.log(debug, ids.onLoad),
// fetches user by email submitted
context.potentialUser.fetchByEmail(SignupOnSubmitArgs),
// throws error if the user is found
context.potentialUser.errorContextPropPresent,
// checks if passowrd and reenterPassword match
context.potentialUser.signupPassword(SignupOnSubmitArgs),
// creates the user
context.user.create(SignupOnSubmitArgs, ''),
// thows error if create failed in some way
context.user.errorContextPropAbsent,
// adds user id to session
context.utility.login,
// redirects user to dashboard
context.utility.redirect(Pages2.dashboardManage)
Существуют ли какие-либо инструменты / библиотеки, которые позволят создавать и очищать цепные функции и склеивать их друг с другом в стеке?