
Дмитрий
30.01.2017
09:09:59
Мне нужно сделать pluck по объектам
Есть набор данных из чатов, из каналов, и из обычных диалогов
Со всеми нужно делать одинаковые операции
Потом на следующем уровне вложенности повторяем тот же принцип

Google

Aleh
30.01.2017
09:11:13

Дмитрий
30.01.2017
09:11:23
И так пока не посмотрим на приложение и не подумаем, что кажется что-то идёт не так

andretshurotshka?❄️кде
30.01.2017
09:11:57

Дмитрий
30.01.2017
09:12:00
Допустим, юзер без аватарки

andretshurotshka?❄️кде
30.01.2017
09:15:19
Так везде path из рамды)

Дмитрий
30.01.2017
09:15:39
Воо))
Он же по сути как раз и работает как elvis

andretshurotshka?❄️кде
30.01.2017
09:16:02
А ок)

Дмитрий
30.01.2017
09:29:24
что это заставляет меня немного думать о декомпозиции
Редюсер занимается исключительно извлечением фоток, индифферентно к структуре ответа, извлекает фотки из chat.message.user.photo.id dialog.message.user.photo.id и так далее. Именно из-за его безразличности к любым отсутствиям полей в пути, мы можем инкапсулировать всё извлечение фоток в одном месте, не дублируя код
В общем, я к тому, что разные кейсы есть, и когда ты начинаешь думать, что готов ко всему, жизнь показывает тебе GraphQL наоборот

Котяй Негодяй
30.01.2017
17:51:59
А как мне сделать пакет flow-совместимым?
Ведь импортируется (import muPackage from 'my-package';) код после транспиляции.

Vladimir
30.01.2017
17:54:35
нужно положить рядом с точкой вход файл .flow

Google

Vladimir
30.01.2017
17:54:43
т е index.js.flow
который перенаправляет на исходники

Котяй Негодяй
30.01.2017
17:56:39

Vladimir
30.01.2017
17:57:17
там нужно просто реэкспортировать
пример
исходники в src, скомпилированной в lib
в корне index.js
в нем
module.exports = require('./lib/index.js')
рядом с ним index.js.flow
в нем
import foo from './src/index.js'
export default foo;
ну или так

Котяй Негодяй
30.01.2017
17:59:05
Спасибо. =)
ну или так
Ок. Тогда, нужно добавлять в "files" исходники и директорию flow-typed. А .flowconfig проекта добавлять нужно?

Vladimir
30.01.2017
18:24:39
нет, нужно делать так чтобы .flowconfig был совместимым

Котяй Негодяй
30.01.2017
18:25:03

Vladimir
30.01.2017
18:25:28
будет учитываться только .flowconfig родительского проекта
он должен учитывать зависимость, чтобы она тайпчекалась

Google

Котяй Негодяй
30.01.2017
18:48:22

Vladimir
30.01.2017
18:49:02
ну они должны быть установлены, да

Котяй Негодяй
30.01.2017
18:49:51
Очень странное решение. Получается, что тот, кто использует пакет, вынужден будет сам поддерживать его зависимости.
А вот это как типизировать?
import polyfills from '../config/polyfills.json';

Vadim
31.01.2017
01:50:31
Народ! Использует ли тут кто istanbul вместе с ts?
Как сделать так что б в репортах подсвечивались корректные линии?
Видимо где-то слетает на уровне сорсмапов
http://dl3.joxi.net/drive/2017/01/31/0018/3328/1215744/44/5001d544a9.jpg
Собираю вебпаком

Сергей
31.01.2017
04:46:07
Видимо тут все телепаты


Vadim
31.01.2017
04:47:48
karma.conf.js:
const webpackConfig = require('./webpack-test.config.js');
module.exports = function (config) {
config.set({
basePath: '..',
frameworks: ['mocha', 'chai', 'sinon'],
files: [
'./src/**/*.spec.ts'
],
exclude: [],
preprocessors: {
'./src/**/*.spec.ts': ['webpack']
},
// optionally, configure the reporter
coverageReporter: {
dir: 'coverage',
reporters: [
{
type: 'html',
dir: './coverage',
subdir: '.'
}
]
},
webpack: webpackConfig,
reporters: ['progress', 'coverage'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['PhantomJS'],
singleRun: false,
concurrency: Infinity
})
};
tsconfig.json:
{
"compilerOptions": {
"baseUrl": "..",
"noEmitOnError": true,
"noImplicitAny": true,
"importHelpers": true,
"noImplicitReturns": true,
"strictNullChecks": true,
"skipLibCheck": true,
"moduleResolution": "node",
"module": "ES6",
"target": "ES5",
"lib": ["dom", "es6"],
"jsx": "react",
"sourceMap": true,
"paths": {
"*": [
"src/custom-typings/*",
"src/*"
]
}
},
"files": [
"../src/index.tsx"
]
}


Oleg
31.01.2017
04:50:03
кто InversifyJS на практике использует?

Сергей
31.01.2017
05:23:05
tsconfig.json:
{
"compilerOptions": {
"baseUrl": "..",
"noEmitOnError": true,
"noImplicitAny": true,
"importHelpers": true,
"noImplicitReturns": true,
"strictNullChecks": true,
"skipLibCheck": true,
"moduleResolution": "node",
"module": "ES6",
"target": "ES5",
"lib": ["dom", "es6"],
"jsx": "react",
"sourceMap": true,
"paths": {
"*": [
"src/custom-typings/*",
"src/*"
]
}
},
"files": [
"../src/index.tsx"
]
}
А гист для чего

Aleh
31.01.2017
07:32:57
С ts он все аннотации типов подсвечивал как непокрытые
Год назад где-то, с тех пор не пробовал

Котяй Негодяй
31.01.2017
07:36:55
#flow А вот нужна ли типизация запросов к эластику в виде отдельного пакета? Писать, всё равно, придётся, но, может быть, кому-нибудь ещё пригодится. И как такой пакет вообще оформить, если всё, что я хочу выложить, — это аннотации типов? Просто экспорт исходника и всё? И зависимый код потом нормально будет выполняться?
https://www.elastic.co/guide/en/elasticsearch/reference/5.1/query-dsl.html


Aleksandr
31.01.2017
07:57:25
Начал работать с WebPack. Скажите, что я делаю не так:
Вот я создал файл one.js с сожержимым:
module.exports = function (meaning) {
var variable = meaning;
};
Файл two.js:
module.exports = function () {
var variable2 = 20;
};
И файл main.js:
var sayHello = require('./one');
var sayHello2 = require('./two');
var variable = sayHello(23);
var variable2 = sayHello2();
console.log(variable);
console.log(variable2);
Далее прописал в командной строке webpack /public/test/main.js bundle.js
В итоге переменные variable и variable2 не отображаются. Почему так? Как делать правильно?

Gordey
31.01.2017
08:01:46
наверно потому что ты ничего из функции не возвращаешь

Google

Gordey
31.01.2017
08:02:09
тут не в вебпаке проблема, js подтянуть надо

Aleksandr
31.01.2017
08:03:02
Я просто сборщиками не пользовался до этого, сейчас только начинаю понимать, как что и почему

Котяй Негодяй
31.01.2017
08:41:34
А Flow умеет парсить какое-нибудь описание типов? Ну, чтобы, например, выдаваеть его в качестве доп информации при вызове flow autocomplete.

Admin
ERROR: S client not available

Котяй Негодяй
31.01.2017
08:43:38
Например:
/**
* Функция бла-бла-бла. Делает бла-бла-бла.
*/
type MyFunctionType = ...:
Хотя было бы логичнее выдавать информацию из describe('...', ...) в тестах.

Aleh
31.01.2017
08:53:17
Это как?)
Например:
/**
* Функция бла-бла-бла. Делает бла-бла-бла.
*/
type MyFunctionType = ...:
В describe/context могут быть произвольные строки же

Котяй Негодяй
31.01.2017
09:34:31

Aleh
31.01.2017
09:35:36
Синоним для describe

Котяй Негодяй
31.01.2017
09:41:55
А... =)
Ну ладно. Flow, я так полагаю, эту спеку читать не умеет?

Aleh
31.01.2017
10:13:41

Котяй Негодяй
31.01.2017
10:54:16
У меня объявлен тип:
export type RequestType = {
query?: QueryType,
size?: number,
};
Но Flow ничего не возражает, если я сделаю так:
const request: RequestType = {
invalidParam: 'invalidValue',
};
Как запретить левые свойства в объекте?
Пардон. Разобрался. =)
export type RequestType = {| query?: QueryType |};

Google

andretshurotshka?❄️кде
31.01.2017
11:06:38
Есть же флоу чат теперь @flowtype_ru

Котяй Негодяй
31.01.2017
11:07:47

Vladislav
31.01.2017
12:30:24
Всем привет, что лучше для компиляции es6 фич, тайпскриптовый компилятор или бабель?) А ссылки есть?)

andretshurotshka?❄️кде
31.01.2017
12:38:53
Бабель

Friedrich
31.01.2017
12:44:19
TS-компилятор.
Бабель у меня не мог от массива отнаследоваться правильно (≡ шоб хоть как-то работало), а tsc влёгкую.

Vladimir
31.01.2017
12:46:28
это вряд ли

Friedrich
31.01.2017
12:47:46
Хотя в итоге я, конечно, наркоманию с наследованием от массива просто выпилил :)

Aleh
31.01.2017
12:49:20
я б тоже бабель юзал
тогда и тс можно на полную юзать
он понимает символы и все с ними связанное тогда
итераторы и прочее

Friedrich
31.01.2017
12:49:58
А TS не умеет компилировать символы в ES5?
А, или там просто полифилл нужен для итераторов?

Aleh
31.01.2017
12:50:39