Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    andrey
    @kaflan
    я пробывал разные решение которые гуглил
    нечего
    Sviatoslav Sydorenko
    @webknjaz
    Ти маєш зрозуміти суть проблеми, а не тикати всі рішення поспіль, сподіваючись, що щось запрацює. Це не інженерний підхід.
    А взагалі, це не лінуксовий чатик. З такими описами треба на stackexchange писати.
    Sviatoslav Sydorenko
    @webknjaz
    [Olexa] у кого проекты на ангуларе2 в продакшене - не забудеть поменять angular2 на @angular
    andrey
    @kaflan
    кстати за кило бананов намутил себе коробочную штуку
    в которую вставляеться майфун и играет
    Maksym Vlasov
    @MaxymVlasov
    велосипед.жс (:
    https://github.com/srcjz/wheel.js
    andrey
    @kaflan
    так работает же
    Sviatoslav Sydorenko
    @webknjaz
    @kaflan давай вже без оффтопа
    @/all

    це посилання висить у темі чату. обов'язкове для прочитання

    https://github.com/itkpi/chats/blob/master/RULES.md

    vei tsi
    @veitsi
    привіт, можна легкий офтоп?
    Sviatoslav Sydorenko
    @webknjaz
    якщо це стосується js
    vei tsi
    @veitsi
    :)
    Sviatoslav Sydorenko
    @webknjaz
    [Olexa] кто нибудь заказывал ng-book2?
    Nikita Yuzhakov
    @yuzhakovvv
    напиши мне в ЛС, есть знакомый в КПИ который брал
    @webknjaz
    Maksym Vlasov
    @MaxymVlasov
    @Nikke1 це з телеграму прилетіло
    Синхронізація йде через акк Свята
    Sviatoslav Sydorenko
    @webknjaz
    [Oleg Lunin] Всем привет) Не подскажите, где можно годный гайд по расширениям хрома читнуть?
    UA Web Challenge
    @uawebchallenge_twitter
    Всем привет) завтра пройдет JS Meetup про факапы. Приглашаю присоединиться: http://js.devatwork.net/ первый митап про php прошел весело и с пользой. Тем, кто напишет сюда (https://vk.com/little.hope) организуем скидку по промокоду.)
    Sviatoslav Sydorenko
    @webknjaz
    [Oleg Lunin] Кто-то знаком с написанием расширений? Как допустим с помощью js автоматически нажать на кнопку при её появлении?
    Pavlo
    @Khomitskyi
    С
    Pavlo
    @Khomitskyi
    Підписуєшся на подв
    *подію зміни дому, перевіряєш чи є потрібна кнопка і нажимаєш
    Maksym Vlasov
    @MaxymVlasov

    eval() краще не використовувати (с) MDN

    Тож у мене питання:
    Як переписати без eval() ось цей шмат коду:

    /**
     * Read JSON file.
     * @param {string} srcFrom - source, which is currently being processed.
     * @param {string} file - path to JSON file with data of current iteration.
     * @returns {JSON} data - JSON only with events.
     */
    dataIO.read = (srcFrom, file) => {
      const key = {
        dou: 'data.rss.channel.item',
        meetup: 'data.results',
        bigCityEvent: 'data'
      }
    
      let data = fs.readJsonSync(file, {'throws': false})
      data = eval(key[srcFrom])
    
      return data
    }

    якщо взяти до уваги, що шляхи в кожному з файлів різні, і, напр, rss в структурі meetup і bigCityEvent відсутні, що приводить до TypeError: Cannot read property 'rss' of undefined

    Ivan Tumanov
    @itumanov
    switch-case напиши вместо всей этой рефлексии
    Evgeniy Vashchuk
    @evashchuk
    @MaxymVlasov Я щось взагалі не можу зрозуміти, що тобі треба зробити, дивлячись на цей шматок) Можеш пояснити?
    Ivan Tumanov
    @itumanov
    в зависимости от параметра srcFrom, возвращать разные куски json файла
    Evgeniy Vashchuk
    @evashchuk
    а key це що?
    Ivan Tumanov
    @itumanov
    пути внутри объекта data
    я даже представить не могу где эта функция может понадобится, и страшно представить контекст ее исполнения)
    Evgeniy Vashchuk
    @evashchuk
    тоді да, switch найкраще буде. але воно всерівно якось фігово спроектовано і це буде костильок
    Maksym Vlasov
    @MaxymVlasov

    @itumanov https://github.com/itkpi/events-parser/blob/master/data/parse.js

    Вже. От з нього і переписую, бо додавати нові джерела - це пздц
    Сама ідея: itkpi/events-parser#27

    Контекст виконання: агрегація всякого різного контенту. |В моєму випадку - події
    Alexey Orlenko
    @aqrln
    @MaxymVlasov в данном случае eval абсолютно безопасен, так как в него попадает только тот код, который ты сам генерируешь и на который внешний мир не имеет никакого влияния, однако да, использовать его не стоит хотя бы с по причинам производительности. И сам по себе eval достаточно медленный по очевидным причинам, и V8 не оптимизирует функции, которые его содержат. Можно сделать что-то такое:
    function getValueByPath(object, path) {
      if (typeof(path) === 'string' || typeof(path) === 'symbol') {
        return object[path];
      }
    
      if (!path) {
        return object;
      }
    
      let value = object;
    
      for (let key of path) {
        value = value[key];
      }
    
      return value;
    }
    
    /**
     * Read JSON file.
     * @param {string} source - source, which is currently being processed.
     * @param {string} file - path to JSON file with data of current iteration.
     * @returns {Object} data - object only with events.
     */
    dataIO.read = (source, file) => {
      const keys = {
        dou: ['rss', 'channel', 'item'],
        meetup: ['results'],
        bigCityEvent: []
      };
    
      const data = fs.readJsonSync(file);
      const result = getValueByPath(data, keys[source]);
    
      return result;
    };
    Alexey Orlenko
    @aqrln

    ну и это

      const keys = {
        dou: ['rss', 'channel', 'item'],
        meetup: ['results'],
        bigCityEvent: []
      };

    явно не внутри этой функции должно находиться

    я вижу, там подобные проверки по всему коду размазаны
    собери все метаданные о том, как обрабатывать разные источники, в одном месте, и используй везде
    как побочный эффект, можно будет во время выполнения кода их подменять, что для подобного агрегатора может быть полезно
    Maksym Vlasov
    @MaxymVlasov

    @aqrln о, дякую

    const keys явно не внутри этой функции должно находиться

    Ага, це наступний етап в itkpi/events-parser#27

    Sviatoslav Sydorenko
    @webknjaz
    [Alex Voloshchenko] Phantomjs
    Andrey
    @a-kud
    Есть кто при жизни?
    Sviatoslav Sydorenko
    @webknjaz
    всі на місці
    Punita Ojha
    @punitaojha
    This message was deleted
    Джон, просто Джон
    @sudodoki
    шо, чатик умер? Где нынче itkpi жизнь обитает? В телеграмме где-то?
    Sviatoslav Sydorenko
    @webknjaz
    @sudodoki в телеграмі, а звідси в лінкований канал вроді копіюється контент