nitreojs / puregram

powerful and modern telegram bot api sdk for node.js and typescript 😁
https://puregram.cool
Do What The F*ck You Want To Public License
172 stars 10 forks source link

Типизация собственной реализации хранилища. #87

Closed titsex closed 9 months ago

titsex commented 9 months ago

И снова привет. Пытаюсь в качестве storage использовать Redis. Пишу свой класс имплементирующий методы SessionStorage и натыкаюсь на некоторые проблемы с типами и отличие от того, что на гитхабе.

В исходном коде на гитхабе, интерфейс имеет правильную типизацию (так например, get метод возвращает any или undefined). image

Но в актуальной версии типизация очень странная. Он ожидает объект (просто объект) или ничего. image

И из-за этого приходится делать вот такие костыли =) image

nitreojs commented 9 months ago

Но в актуальной версии типизация очень странная

😄 опять проблемы текущей версии сессии; я недавно review'ил код и нихуя не понял, почему там object, поэтому в актуальной (новой) версии там any

nitreojs commented 9 months ago

к слову, puregram-redis-storage!

titsex commented 9 months ago

Да, я сейчас костыль на костыле (as unknown as ...) делаю и для гета и для сета.

titsex commented 9 months ago

Видел, немного смутило что обновлений нет. Да и свой класс не так то и сложно реализовать, и поддерживать будет проще.

nitreojs commented 9 months ago

а там обновлять то и нечево, session тоже необновленный лежит по факту, плюсом челики в форуме юзают говорят все работает и тема

nitreojs commented 9 months ago

короче видимо лучше новую версию session релизить а то чето жопа какаято

titsex commented 9 months ago

Было бы славно. Ибо сет метод ожидает value как object. Пытаясь привести к any, ругается линтер. Пришлось отключить для этой строчки его.

titsex commented 9 months ago

Что за метод touch и зачем он нужен? Я сначала увидел его, подумал что это какой-то переименованный has. Полез в твой MemoryStorage и там реализация отсутствует: image

Судя по типам, он ничего не возвращает: image

Раз он ничего не возвращает и даже ты не реализовал его в MemoryStorage - зачем он?

nitreojs commented 9 months ago

действует так же как и touch в unix, а в MemoryStorage нет смысла его делать, все в памяти ж

titsex commented 9 months ago

Благодарю.

nitreojs commented 9 months ago

в ближайшее время релизну тогда @puregram/session пусть будет красивое удобное... ща времени просто нет допиливать @puregram/scenes

titsex commented 9 months ago

Спасибо за отзывчивость.