{"action":"created","issue":{"url":"https://api.github.com/repos/ivandashk/shri-first-semester/issues/4","repository_url":"https://api.github.com/repos/ivandashk/shri-first-semester","labels_url":"https://api.github.com/repos/ivandashk/shri-first-semester/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/ivandashk/shri-first-semester/issues/4/comments","events_url":"https://api.github.com/repos/ivandashk/shri-first-semester/issues/4/events","html_url":"https://github.com/ivandashk/shri-first-semester/pull/4","id":374009137,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI1ODA4MDAx","number":4,"title":"7. Typescript","user":{"login":"ivandashk","id":14029952,"node_id":"MDQ6VXNlcjE0MDI5OTUy","avatar_url":"https://avatars0.githubusercontent.com/u/14029952?v=4","gravatar_id":"","url":"https://api.github.com/users/ivandashk","html_url":"https://github.com/ivandashk","followers_url":"https://api.github.com/users/ivandashk/followers","following_url":"https://api.github.com/users/ivandashk/following{/other_user}","gists_url":"https://api.github.com/users/ivandashk/gists{/gist_id}","starred_url":"https://api.github.com/users/ivandashk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ivandashk/subscriptions","organizations_url":"https://api.github.com/users/ivandashk/orgs","repos_url":"https://api.github.com/users/ivandashk/repos","events_url":"https://api.github.com/users/ivandashk/events{/privacy}","received_events_url":"https://api.github.com/users/ivandashk/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-10-25T15:36:00Z","updated_at":"2018-10-29T12:47:44Z","closed_at":null,"author_association":"OWNER","pull_request":{"url":"https://api.github.com/repos/ivandashk/shri-first-semester/pulls/4","html_url":"https://github.com/ivandashk/shri-first-semester/pull/4","diff_url":"https://github.com/ivandashk/shri-first-semester/pull/4.diff","patch_url":"https://github.com/ivandashk/shri-first-semester/pull/4.patch"},"body":"# Запуск\r\n```\r\ngulp\r\n```\r\n\r\n- Подключен TSLint\r\n- Компиляция в строгом режиме с noImplicitAny и strictNullChecks\r\n- Type assertions были заменены на метод cast (где возможно), которая кинет исключение о неверном типе, если пришел не тот тип, который ожидался (к сожалению, в рантайме).\r\nМетод доступен в src/utils/ts-cast.ts\r\n\r\nПомимо типизации был произведен рефакторинг кода:\r\n### Задание 1. Шаблонизация карточек\r\n**Было:** скрипт card-generator.js  \r\n**Стало:** \r\n- card-main.ts - получение events.json и запуск генерации\r\n- card-generator.ts - логика генерации карточек\r\n- card-event.ts - класс CardEvent, сущность всей карточки. Свойство data принимает тип, наследуемый от абстрактного типа CardData.\r\n- CardDataButtons.ts - дополнение для карточки, содержащее кнопки.\r\n- CardDataGraph.ts - дополнение для карточки, содержащее график.\r\n- CardDataImage.ts - дополнение для карточки, содержащее картинку.\r\n- CardDataMeasurements.ts - дополнение для карточки, содержащее данные об измерениях.\r\n- CardDataMusic.ts - дополнение для карточки, содержащее музыкальный плеер.\r\n\r\n### Задание 2. Сенсорный ввод \r\nБыло: gestures-camera.js\r\nСтало: \r\n- gestures-main.ts - определяет является ли устройство сенсорным и вызывает GesturesSetter.ts\r\n- gestures-setter.ts - класс GesturesSetter, которые определяет поведение DOM-элемента, который должен реагировать на жесты\r\n- CurrentGesture.ts - класс, содержащий тип текущего жеста\r\n- Pointer.ts - класс, содержащий информацию о каждом указателе в жесте\r\n\r\n### Задание 3. Мультимедиа\r\nБыло: video-page.js, active-video-module.js\r\nСтало: \r\n- video-page.ts: инициализация видео\r\n- ActiveVideo.ts: Поведение текущего активного видео\r\n- CustomSettings.ts:  Пользовательские настройки для всех видео\r\n- SettingsSet.ts: набор пользовательских настроек отдельного видео\r\n- AudioData.ts: Пользовательские настройки аудиоконтекста."},"comment":{"url":"https://api.github.com/repos/ivandashk/shri-first-semester/issues/comments/433897026","html_url":"https://github.com/ivandashk/shri-first-semester/pull/4#issuecomment-433897026","issue_url":"https://api.github.com/repos/ivandashk/shri-first-semester/issues/4","id":433897026,"node_id":"MDEyOklzc3VlQ29tbWVudDQzMzg5NzAyNg==","user":{"login":"ivandashk","id":14029952,"node_id":"MDQ6VXNlcjE0MDI5OTUy","avatar_url":"https://avatars0.githubusercontent.com/u/14029952?v=4","gravatar_id":"","url":"https://api.github.com/users/ivandashk","html_url":"https://github.com/ivandashk","followers_url":"https://api.github.com/users/ivandashk/followers","following_url":"https://api.github.com/users/ivandashk/following{/other_user}","gists_url":"https://api.github.com/users/ivandashk/gists{/gist_id}","starred_url":"https://api.github.com/users/ivandashk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ivandashk/subscriptions","organizations_url":"https://api.github.com/users/ivandashk/orgs","repos_url":"https://api.github.com/users/ivandashk/repos","events_url":"https://api.github.com/users/ivandashk/events{/privacy}","received_events_url":"https://api.github.com/users/ivandashk/received_events","type":"User","site_admin":false},"created_at":"2018-10-29T12:47:44Z","updated_at":"2018-10-29T12:47:44Z","author_association":"OWNER","body":"@Allarepossible upd: \r\n- Исправлены замечания\r\n- Включены все правила строгой компиляции\r\n- Исправлены отсутствующие явные указания типов возвращаемых значений. Для функций и методов, где нет оператора return возвращаемое значение void опускается\r\n- Для дальнейшего рефакторинга, инициализацию страниц (initSidebar(), setGestures(), generateCards()) можно вынести в отдельные файлы, но требуется подключить бандлер (webpack, browserify), чтобы импортировать hls. В данном тикете считаю эти изменения излишними."}}
{"actor":{"display_login":"ivandashk"}}