Как стать автором
Обновить
7
0
Евгений @B_bird

Frontend-разработка

Отправить сообщение

Больше смущает зона аэропортов, хоть сейчас они почти не задействованы... Вряд ли шум, экология и пробки на подъездах позволяют ячейки относить к зеленым

А есть какое-то решение, отличное от тг-клиента на питоне, который имеет доступ к методу получения участников группы?

  1. Ну тогда уж синтаксического сахара на СетМетадата не хватает:

import {SetMetadata} from '@nestjs/common';

export const ACCESS_ROLES_KEY = 'accessRoles';
export const Roles = (...args: string[]) => SetMetadata(ACCESS_ROLES_KEY, args);

Тогда красиво использовать:

    @Roles(Role.Admin, Role.Pm)
    @Get()
    findAll() {
        return this.dictionaryService.findAll();
    }
  1. RoleGuard сделать глобальным

providers: [
        {
            provide: APP_GUARD,
            useClass: AuthGuard,
        },
        {
            provide: APP_GUARD,
            useClass: RolesGuard,
        },
    ],
  1. Ну и reflector лучше брать context.getHandler(), context.getClass() тогда можно на весь класс вешать.

Сходу пример не приведу, но не помню за последние годы ни одного проекта без его использования. Чаще всего цель одна - иммутабельность исходного сложного объекта с данными.

Хотя нет, вспомнился пример:
Vue.js компонент грида, в него передается пропс - начальные фильтры initialFilters, являющиеся массивом объектов, далее эти фильтры сохраняются в контексте компонента filters и пользователь может их модицифировать настройками грида. Без клона мы имеем передачу массива объектов по ссылке через пропс и изменение в компоненте грида приводит к изменению исходных объектов в массиве родителя, передавшего его в пропсы.

Можно сократить. Статья c громким названием нам всего лишь пересказывает (примешивая зачем-то сюда вьютифай) два небольших раздела документации, а именно:

  1. рендер-функции (https://v2.vuejs.org/v2/guide/render-function.html#createElement-Arguments)

  2. маунт (https://v2.vuejs.org/v2/api/#vm-mount)

С целью сделать создания компонента as service.

Добро пожаловать в мир вью, вас ждет еще много интересного, если вызывает удивление это:

createElement понимает теги Vuetify

Подтверждаю, спустя годы в их коде появилось:

d.prototype.attachToMediaControls = function() {
  const t = this.handleMediaActionEvents.bind(this);
  this.mediaHandlers.forEach(e=>{
    try {
      window.navigator.mediaSession.setActionHandler(e, t)
    } catch {
      console.log(`The media session action "${action}" is not supported yet.`)
    }
  })
}

Спасибо. Странно, упустил, хотя в чужом реальном коде нигде пока не встречал. Жаль только, что с ограничениями по классам и методам объекта при клонировании (впрочем, как и в лодаше).

Глядишь, лет через двадцать и deepCopy появится...

Это ж авторизация от имени приложения Я.Музыки, а они от Яндекс ID хотят такой скоуп, да )

Я про блокировки к чему упоминал-то (забыл явно сказать): ты же vs code расширение наверное будешь публиковать в сторе или где-то еще, откуда оно там позволяет их качать, так вот у тебя явное нарушение правил сервиса, но выстрелит ли - хз. Как минимум, лучше какой-то запасной аккаунт использовать, если там же в "сторе" есть еще что-либо кроме этого нового расширения, чтобы безболезненно бан пережить.

Так я ж написал - связался с их юристом автором жалобы, объяснил, что расширение никоим образом не вредит, а скорее наоборот, тем более при отсутствующей официальном расширении (оно было еле живое, потом вообще убрали, видимо, в угоду Я.Браузеру). Через время разблокировали и пришло уведомление от гугла, с тех пор не трогали, хотя там опять как грибов появилось даунлоадеров. Видимо, какое-то обострение было, явно не регулярная работа.

Есть у меня расширение, просто пульт к витрине Я.Музыки, пару лет назад в один прекрасный момент гугл мне пишет, что поступила жалоба и заблокировано, контакты юриста подавшего жалобу прилагались. Связался объяснил, жалобу отозвали, разблокировали. Видимо попал под одну гребенку с расширениями, которые позволяли качать, что не могло устраивать Яндекс.

Ну минус отсутствия официального апи: с любым релизом перестанет работать. Плюс юристы Я любят жалобы писать, на моё расширение была жалоба, блокировали в свое время, хотя оно только пульт для открытой вкладки Я.Музыки.

Только до сих пор толком так и не ясно как событийный сервис воркер должен работать в виде бэкграунд страницы, для аудиоплеера, например, нужно хранить состояние и через него контент и попап чтобы общались в рилтайме...

Живее всех живых, а на фоне ютреков, джир в условных блоках - так еще реинкарнировать может ;)

Поэтому колбеки мы добавили сами, немного модернизировав код Redmine

А можно пример кода плагина, реализующего хуки?

Долгое время я использовал метод копания в их классах чтобы цепляться на события и передавать их в моё расширение, но по факту любой их релиз мог ломать всё, благо я был на связи с их главным разработчиком и они выкатили сами externalAPI, доступное на их витрине, которым уже который год и пользуюсь.

А так, да, некоторые фичи клевые!
Garmin 245M — спотифай с плейлистами с многочисленными жанрами и почти под любой каденс, а также встроенный метроном, помимо основных ключевых показателей.
Бегать с этой коробочкой — сомнительное удовольствие с учетом минимизации таскаемых с собой на пробежке вещей, хотя если автора устраивает, то почему бы и нет.
Мне лично даже метроном в часах не нужен и раздражает спустя пару км, достаточно удачного плейлиста.
Ладно бы коробочка реализовывала сбор беговой динамики, как в HRM или Running Dynamics Pod, хотя там интереснее алгоритмы, нежели физический сбор данных с гироскопа и акселерометра.
Официальный сайт (рф) говорит о 10тыс., оригинальный сайт (usa) говорит о 35тыс., попробовав, все же склоняюсь к 10тыс…
1

Информация

В рейтинге
Не участвует
Откуда
Королев, Москва и Московская обл., Россия
Зарегистрирован
Активность