Обновить

Управление методами в зависимости от окружения в 🅰️ngular

Бывают случаи, когда нужно, чтобы определенные методы работали только:

  • 🛠️ В dev-режиме (например, фича-тогглы, дебаг-логи, экспериментальные функции)

  • 🚀 В prod-режиме (аналитика, мониторинг, продакшен-логика)

Вместо того чтобы писать if (isDevMode()) {...} везде, можно использовать декораторы Angular для более чистого и декларативного подхода.

_____

Одно из решений:

export function EnvMode(mode: 'dev' | 'prod') { return function (_: unknown, __: string, descriptor: PropertyDescriptor) { const originalMethod = descriptor.value; descriptor.value = function (...args: unknown[]) { const shouldExecute = mode === 'dev' ? isDevMode() : !isDevMode(); if (!shouldExecute) return; return originalMethod.apply(this, args); }; return descriptor; }; }

_____

Как использовать:

@EnvMode('dev') public setFeatureToggle(): void { // Сработает только в dev-режиме } @EnvMode('prod') public sendAnalytics(): void { // Сработает только в prod-режиме }

_____

🤔 А вы создавали кастомные декораторы? Зачем?

Больше про Angular в тг канале

Теги:
Рейтинг0
Комментарии0

Япония пыталась создать операционную систему для всего мира, но затем вмешалось правительство США

В 1984 году исследователь Токийского университета Кен Сакамура запустил проект TRON (The Real‑time Operating system Nucleus) — инициативу по созданию семейства операционных систем реального времени с открытым исходным кодом ядра. Подпроект BTRON был упомянут в отчёте США о торговых барьерах и фактически закрыт, прежде чем смог попасть в школы по всей Японии. Одновременно с этим подпроект ITRON стал одной из самых распространённых ОС в истории. 

Япония пыталась создать операционную систему для всего мира, но затем вмешалось правительство США

Публикации