Size: a a a

Angular - русскоговорящее сообщество

2021 February 10

7

7384114837 in Angular - русскоговорящее сообщество
VP
спасибо)
Воспользуйтесь этим в следующий раз
источник

AF

Alexei Fedorov in Angular - русскоговорящее сообщество
Не редко встречаются в файлах импортированного NPM пакета несколько методов  с одинаковым именем в описании класса.

Как интерпретировать эту информацию? Какой из методов верен?
источник

AF

Alexei Fedorov in Angular - русскоговорящее сообщество
Это так автор визауально разбивает один метод на несколько вариантов аргументов?

 /
  * @param name     Cookie name
  * @param value    Cookie value
  * @param expires  Number of days until the cookies expires or an actual `Date`
  * @param path     Cookie path
  * @param domain   Cookie domain
  * @param secure   Secure flag
  * @param sameSite OWASP samesite token `Lax`, `None`, or `Strict`. Defaults to `Lax`
  */
 set(name: string, value: string, expires?: number | Date, path?: string, domain?: string, secure?: boolean, sameSite?: 'Lax' | 'None' | 'Strict'): void;

 /
@param name     Cookie name
  * @param value    Cookie value
  * @param expires  Number of days until the cookies expires or an actual `Date`
  * @param path     Cookie path
  * @param domain   Cookie domain
  * @param secure   Secure flag
  * @param sameSite OWASP samesite token `Lax`, `None`, or `Strict`. Defaults to `Lax`
  */
 set(name: string, value: string, expires?: number | Date, path?: string, domain?: string, secure?: boolean, sameSite?: 'Lax' | 'None' | 'Strict'): void;

 /
  * Cookie's parameters:
  * <pre>
  * expires  Number of days until the cookies expires or an actual Date
  * path     Cookie path
  * domain   Cookie domain
  * secure   Secure flag
  * sameSite OWASP samesite token Lax, None, or Strict. Defaults to Lax
  * </pre>
  * @param name     Cookie name
  * @param value    Cookie value
  * @param options  Body with cookie's params
  */
 set(
   name: string,
   value: string,
   options?: {
     expires?: number | Date;
     path?: string;
     domain?: string;
     secure?: boolean;
     sameSite?: 'Lax' | 'None' | 'Strict';
   }
 ): void;

 set(
   name: string,
   value: string,
   expiresOrOptions?: number | Date | any,
   path?: string,
   domain?: string,
   secure?: boolean,
   sameSite?: 'Lax' | 'None' | 'Strict'
 ): void {
   if (!this.documentIsAccessible) {
     return;
   }

   if (typeof expiresOrOptions === 'number' || expiresOrOptions instanceof Date || path || domain || secure || sameSite) {
     const optionsBody = {
       expires: expiresOrOptions,
       path,
       domain,
       secure,
       sameSite: sameSite ? sameSite : 'Lax',
     };

     this.set(name, value, optionsBody);
     return;
   }

   let cookieString: string = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';';

   const options = expiresOrOptions ? expiresOrOptions : {};

   if (options.expires) {
     if (typeof options.expires === 'number') {
       const dateExpires: Date = new Date(new Date().getTime() + options.expires * 1000 * 60 * 60 * 24);

       cookieString += 'expires=' + dateExpires.toUTCString() + ';';
     } else {
       cookieString += 'expires=' + options.expires.toUTCString() + ';';
     }
   }

   if (options.path) {
     cookieString += 'path=' + options.path + ';';
   }

   if (options.domain) {
     cookieString += 'domain=' + options.domain + ';';
   }

   if (options.secure === false && options.sameSite === 'None') {
     options.secure = true;
     console.warn(
       [ngx-cookie-service] Cookie ${name} was forced with secure flag because sameSite=None. +
         More details : https://github.com/stevermeister/ngx-cookie-service/issues/86#issuecomment-597720130
     );
   }
   if (options.secure) {
     cookieString += 'secure;';
   }

   if (!options.sameSite) {
     options.sameSite = 'Lax';
   }

   cookieString += 'sameSite=' + options.sameSite + ';';

   this.document.cookie = cookieString;
 }
источник

АФ

Андрей Фастовский... in Angular - русскоговорящее сообщество
Alexei Fedorov
Не редко встречаются в файлах импортированного NPM пакета несколько методов  с одинаковым именем в описании класса.

Как интерпретировать эту информацию? Какой из методов верен?
это перегрузка метода
источник

AF

Alexei Fedorov in Angular - русскоговорящее сообщество
Андрей Фастовский
это перегрузка метода
Это когда функция или метод, может вызывать саму себя, в зависимости от аргументов?
источник

АФ

Андрей Фастовский... in Angular - русскоговорящее сообщество
Alexei Fedorov
Это когда функция или метод, может вызывать саму себя, в зависимости от аргументов?
нет, это возможность определить несколько вариантов наборов параметров для одного метода, и соответственно вызывать этот метод с одним из этих наборов
источник

АФ

Андрей Фастовский... in Angular - русскоговорящее сообщество
для наглядности
источник

AB

Artem Borovinskiy in Angular - русскоговорящее сообщество
народ ку! подскажите плз! у меня в приложении есть настройки которые хранятся в локал стоадже  (приходят с бека при загрузке первой приложения). и очень большая проблема чтобы эти настройки передать всем сервисам и компонентам..для этого я создал сабжекты (допустим сабжект валюты) и при изменении валюты я рассылаю его везде..но при изменении валюты приложение перезапускается полностью и новую валюту можно уже брать из стораджа..

проблема моя в том что мне этот сервис валюты приходится везде инжектить чтобы сабжекты подрубить для передачи начальных настроек...но это создаёт избыточность кода + циркулярные зависиомости..моя задача просто передать начальные настройки с бека по всем сервисам (если допустим они не установлены). можно ли как то проще сообщить приложению что нужно ждать настроек в сторадже а потом действовать (взять их оттуда)?
источник

AF

Alexei Fedorov in Angular - русскоговорящее сообщество
Я правильно понимаю, что если я получил в коммандной строке предупреждение

"draw-qr.helper.ts depends on 'easyqrcodejs'. CommonJS or AMD dependencies can cause optimization bailouts."

,то это значит подключаемый NPM-пакет отноcиться модулям CommonJS. И у меня только два варианта: или я ищу другой NPM-пакет, или я игнорирую предупреждения (отключая или нет типичные предупреждения). Всё верно?
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Artem Borovinskiy
народ ку! подскажите плз! у меня в приложении есть настройки которые хранятся в локал стоадже  (приходят с бека при загрузке первой приложения). и очень большая проблема чтобы эти настройки передать всем сервисам и компонентам..для этого я создал сабжекты (допустим сабжект валюты) и при изменении валюты я рассылаю его везде..но при изменении валюты приложение перезапускается полностью и новую валюту можно уже брать из стораджа..

проблема моя в том что мне этот сервис валюты приходится везде инжектить чтобы сабжекты подрубить для передачи начальных настроек...но это создаёт избыточность кода + циркулярные зависиомости..моя задача просто передать начальные настройки с бека по всем сервисам (если допустим они не установлены). можно ли как то проще сообщить приложению что нужно ждать настроек в сторадже а потом действовать (взять их оттуда)?
Вообще странно, Вам точно нужно ВЕЗДЕ эти настройки получить? Непонятно как циклические зависимости получаются, если это сервису условной валюты ничего не нужно.
источник

AB

Artem Borovinskiy in Angular - русскоговорящее сообщество
Oleg Safonov
Вообще странно, Вам точно нужно ВЕЗДЕ эти настройки получить? Непонятно как циклические зависимости получаются, если это сервису условной валюты ничего не нужно.
ну и получается это нормально через сабжекты делать?
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Artem Borovinskiy
ну и получается это нормально через сабжекты делать?
нормально создать сервис, у которого наружу торчит Observable (внутри сабджект, но наружу не выставляйте его).
Непонятно почему он Вам прямо везде нужен, вероятно, этот момент стОит обдумать,)
источник

AB

Artem Borovinskiy in Angular - русскоговорящее сообщество
Oleg Safonov
нормально создать сервис, у которого наружу торчит Observable (внутри сабджект, но наружу не выставляйте его).
Непонятно почему он Вам прямо везде нужен, вероятно, этот момент стОит обдумать,)
ну вот пример! для получения продуктов нужна валюта для заказа валюта для корзины валюта
источник

AB

Artem Borovinskiy in Angular - русскоговорящее сообщество
и конечно начальная валюта должна прийти с бека и передаться в сторадж а там уже по сервисы возмут оттуда. но как они узнают что она пришла без сабжекта ..вот никак
источник

AB

Artem Borovinskiy in Angular - русскоговорящее сообщество
Oleg Safonov
нормально создать сервис, у которого наружу торчит Observable (внутри сабджект, но наружу не выставляйте его).
Непонятно почему он Вам прямо везде нужен, вероятно, этот момент стОит обдумать,)
без примера не понятно
источник

AK

Anton K. in Angular - русскоговорящее сообщество
Курс валюты может поменяться прям в моменте и корзину надо пересчитать?
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Artem Borovinskiy
без примера не понятно
export class MyService {
  private currencySubject = new Subject();

  public currency$: Observable<Currency> = this.currencySubject.asObservable();

}

Типа такого, внутри сервиса можете в сабджект что угодно записать, но наружу торчит только observable
источник

AB

Artem Borovinskiy in Angular - русскоговорящее сообщество
Anton K.
Курс валюты может поменяться прям в моменте и корзину надо пересчитать?
валюта меняется просиходит релоад после уже можно из стораджа новую брать
источник

AB

Artem Borovinskiy in Angular - русскоговорящее сообщество
Oleg Safonov
export class MyService {
  private currencySubject = new Subject();

  public currency$: Observable<Currency> = this.currencySubject.asObservable();

}

Типа такого, внутри сервиса можете в сабджект что угодно записать, но наружу торчит только observable
а какая цель такого усложнения
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Artem Borovinskiy
валюта меняется просиходит релоад после уже можно из стораджа новую брать
а зачем Вам валюта везде везде? Если для отображения, сделайте pipe и в него засуньте сервис с валютой
источник