
Sergey
16.09.2016
15:03:33

Oleksandr
16.09.2016
15:03:46
не-джаваскриптовый мир (C/C++, C#, etc) живет этим уже сто лет, и вроде нормальный воркфлоу

Aleh
16.09.2016
15:03:59
это где например так?
что-то я такого не знаю)

Google

Aleh
16.09.2016
15:04:27
чтобы если кто-то выкатил какую-то библиотеку, то она у всех апнулась)

Oleksandr
16.09.2016
15:04:32
так не у всех
а в пределах одного, хм, солюшна

Aleh
16.09.2016
15:05:17
ну, библиотека может проходить все тесты(это в общем-то не значит, что она работает), но даже если она работает, то это вообще ни разу не значит, что она будет работать в отдельно каждом проекте, если даже до этого работала. Это надо проверить
и поэтому автоматический апдейт это плохо
и поэтому весь мир знает что-то про lock зависимостей и накатывает только security фиксы)

Oleksandr
16.09.2016
15:06:01
та понятно, но как насчет разложить ее всем в депенденси одной кнопкой чтобы я смог, собственно, перезапустить тот же тайпскрипт у этих депенденсей и проверить хотя бы типы сразу?

Aleh
16.09.2016
15:06:05
а остальное после полного тестирования

Oleksandr
16.09.2016
15:06:11
мне ж в контролируемой среде
а так я в 3 выложил а в одну забыл
и привет
но вообще да, походу npm link как раз этот кейс решает
http://justjs.com/posts/npm-link-developing-your-own-npm-modules-without-tears

Google

Oleksandr
16.09.2016
15:07:41
так что спасибо за наводку

Aleh
16.09.2016
15:10:04
ну есть еще global deps... )

Oleksandr
16.09.2016
15:20:04
уи, работает

Sergey
16.09.2016
15:20:43

Oleksandr
16.09.2016
15:20:46
да)
сейчас еще проверю не случается ли факапа когда модуль referenced из 2 других модулей и не будет ли оно ругаться на duplicate typings

Sergey
16.09.2016
15:23:14
Ну оно его отправляет в global просто и после просто линкуется в проект

Oleksandr
16.09.2016
15:27:57
крутота, референсы видно, autocomplete работает, типы чекаются, на дубликаты не ругается
шоб я так в 2013 жил

Nikita
16.09.2016
15:28:06
народ, а что в таких случаях делать?
https://github.com/facebook/draft-js/issues/661

Oleksandr
16.09.2016
15:28:21
там такой карточный домик из gulpfile был что мама не горюй

Sergey
16.09.2016
15:29:02

Nikita
16.09.2016
15:34:20
@vkurchatkin

Vladimir
16.09.2016
15:34:55
?

Nikita
16.09.2016
15:35:44
что делать, если внешняя либа покрыта flow тайпами, и flow на нее ругается?

Vladimir
16.09.2016
15:36:14
Или не обновлять flow или игнорить либу/отдельные файлы

Nikita
16.09.2016
15:36:45
ясно. надо чейнджлог посмотреть
печально, что нельзя замьютить какие-то ошибки просто

Vladimir
16.09.2016
15:37:09
Я правильно понял, что это при обновлении flow?

Google

Nikita
16.09.2016
15:37:21
неа, это при добавлении draft-js в проект

Vladimir
16.09.2016
15:37:39
Я полагаю, что только игнор спасет
у них там module.system=haste
я думаю что это фатально

Nikita
16.09.2016
15:38:46
так у реакта же тоже haste?

Vladimir
16.09.2016
15:39:22
haste внутри, да, но реакт по сути идет без flow, а типы берутся из libdef

Nikita
16.09.2016
15:39:50
как-то через жопу все(

Vladimir
16.09.2016
15:40:08
Если ты просто хочешь подключить модуль, написаный с flow, то должны в целом настройки совпадать
Согласен
Сейчас выкатили генерацию shadow файлов
по сути, автоматическая генерация libdef из полного flow кода
Должна помочь с такими проблемами

Nikita
16.09.2016
15:41:46
хоть бы для своего кода сделали чтобы круто работало
типо вот юзкейс

Vladimir
16.09.2016
15:42:12
я хз вообще как этот haster работает
может если у тебя тоже haste, то все ок

Nikita
16.09.2016
15:43:00
не, это их система какая-то
они же пишут require('Foo')
все-все файлы называются по разному. у меня это также, но пути пишу полностью

Vladimir
16.09.2016
15:44:10
да я в курсе

Google

Vladimir
16.09.2016
15:44:26
это конкретная проблема
Для того чтобы все хорошо работало в идеале должен быть одинаковый flowconfig

Nikita
16.09.2016
15:45:36
у меня почти такой же, кроме module system
ну и версии flow)

Vadim
16.09.2016
15:59:54
Пишу сейчас тайпинг для либы, и появился очередной вопрос:
функция принимает в качестве аргумента строку, которая является темплейтом, который содержит определенный набор параметров. Как это задокументировать тайпскриптом?
Принимаемая строка должна быть примерно такого вида:
'${path} is something'

Alex
16.09.2016
16:00:51
никак

Vadim
16.09.2016
16:01:09
Жаль (

Alex
16.09.2016
16:01:18
когда-нибудь там сделают поддержку regexp
висит в задачах

Admin
ERROR: S client not available

Vadim
16.09.2016
16:01:51
Да, такое бы помогло

Aleh
16.09.2016
16:01:54
мм
в смысле
на вход строка
а как она сформирована
ну, фиг знает
как угодно

Vadim
16.09.2016
16:02:36
строка, которая ОБЯЗАНА содержать какой-то набор параметров

Aleh
16.09.2016
16:02:44
такого не может быть)

Google

Alex
16.09.2016
16:02:46
но вообще я типизирую строковые типы
делаю их кастомными часто

Aleh
16.09.2016
16:03:32
строка может соответствовать какому-то там паттерну регулрке, но это runtime проверка, а не compile time

Alex
16.09.2016
16:03:38
делаешь что-то типа type CustomType = string & {__myCustomType: true}
соответственно подсунуть туда строку друго типа не получится и в тоже время это строка со всеми операциями

Vadim
16.09.2016
16:04:33

Alex
16.09.2016
16:04:55
это тип
)

Vadim
16.09.2016
16:05:01
Это понятно )

Alex
16.09.2016
16:05:01
прощаю

Vadim
16.09.2016
16:05:40
Означает что CustomType должен быть строкой, а вот что начиная с символа & что значит?

Alex
16.09.2016
16:05:56
ты можешь сделать type TemplateString = string & {__TemplateString: true} да это просто приписка
типа "хак" такой, вполне легальный
теперь у тебя будет проверка на этот тип

Vadim
16.09.2016
16:06:43
что означает символ & ?

Alex
16.09.2016
16:06:44
это то что нужно во время компиляции
да просто слияние типов

Vadim
16.09.2016
16:07:06
Чем это отличается от | ?

Alex
16.09.2016
16:07:13
да
это один общий тип получается
строка со свойством __TemplateString: true

Vadim
16.09.2016
16:07:48
& имеет то же значение, что и | ?
А....