Code Monkey home page Code Monkey logo

nestjs's People

Contributors

archeon-atls avatar artemmakhaydinov avatar dependabot[bot] avatar github-actions[bot] avatar nelfimov avatar rimidalu avatar slumberydude avatar sollidy avatar tfk70 avatar torinasakura avatar vodopmi avatar zigfrei avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

nestjs's Issues

[bug] server-scripts module start failed

Описание бага

server-scripts падает при запуске

Воспроизведение

yarn run server-scripts start

Ожидаемое поведение

Команда успешно выполняется

Обновление зависимостей `typesense-typeorm`

С чем связан запрос на фичу?

Обновление зависимостей в модуле typesense-typeorm

Расскажите как вы это себе видите

Обновить и зафиксировать версии пакета @atls/nestjs-typesense-typeorm до максимально возможных таким образом, чтобы ничего не ломалось, а именно проходили команды критерия готовности.

Исключения:

Зависимости typescript, typeorm обновлять не нужно.

Если ломаются тесты и это связанно с переходом NestJs с версии 8 на 10, и проблема не на поверхности (не фиксится заменой в тесте, например, метода .asyncListen на .listen), то пакеты, начинающиеся с @nestjs/... обновлять не выше мажорной 8.

Definition of done (критерий готовности)

Проходят без ошибок команды:

  • yarn install
  • yarn check
  • yarn test unit

Если в пакете есть скрипты build и prepack, то они тоже должны проходить без ошибок.

Приложите пример реализаций

https://classic.yarnpkg.com/lang/en/docs/cli/workspace/
yarn workspace <workspace> add <[email protected]> <keys>

Приложите материалы задачи

Можете посмотреть закрытые PR и issue по теме обновления зависимостей

Обновление grpc-playground

С чем связан запрос на фичу?

Обновление зависимостей в репозитории grpc-playground

Расскажите как вы это себе видите

После обновления зависимостей (минорных или мажорных версий) следующие шаги должны пройти без ошибок:

  • установка зависимостей: yarn (обратить внимание на peerDependencies, если нужно, добавить в yarnrc)
  • чек: yarn check
  • тесты: yarn test unit
  • build или prepack: опционально по наличию команды.

Приложите пример реализаций

Обновление зависимостей `external-renderer`

С чем связан запрос на фичу?

Обновление зависимостей в модуле external-renderer

Расскажите как вы это себе видите

Обновить и зафиксировать версии пакета @atls/nestjs-external-renderer до максимально возможных таким образом, чтобы ничего не ломалось, а именно проходили команды критерия готовности.

Исключения:

Зависимости typescript, typeorm обновлять не нужно.

Если ломаются тесты и это связанно с переходом NestJs с версии 8 на 10, и проблема не на поверхности (не фиксится заменой в тесте, например, метода .asyncListen на .listen), то пакеты, начинающиеся с @nestjs/... обновлять не выше мажорной 8.

Definition of done (критерий готовности)

Проходят без ошибок команды:

  • yarn install
  • yarn check
  • yarn test unit

Если в пакете есть скрипты build и prepack, то они тоже должны проходить без ошибок.

Приложите пример реализаций

https://classic.yarnpkg.com/lang/en/docs/cli/workspace/
yarn workspace <workspace> add <[email protected]> <keys>

Приложите материалы задачи

Можете посмотреть закрытые PR и issue по теме обновления зависимостей

[feature] coverage server-scripts with tests

С чем связан запрос на фичу?

возникла необходимость в покрытии кода тестами

Расскажите как вы это себе видите

  1. Создать папку tests
  2. Покрыть тестами публичное апи:

[bug] nestjs-map-errors-interceptor works incorrectly with nestjs >7

Описание бага

При использовании nestjs/[email protected] и @nestjs/[email protected] интерцептор выбрасывает ошибку

Материалы

identity-service_1  | TypeError: Cannot convert undefined or null to object
identity-service_1  |     at Function.values (<anonymous>)
identity-service_1  |     at mapErrors (/workspace/node_modules/@atlantis-lab/nestjs-map-errors-interceptor/dist/MapValidationErrorsInterceptor.js:25:80)
identity-service_1  |     at Array.reduce (<anonymous>)
identity-service_1  |     at CatchSubscriber.selector (/workspace/node_modules/@atlantis-lab/nestjs-map-errors-interceptor/dist/MapValidationErrorsInterceptor.js:32:51)
identity-service_1  |     at CatchSubscriber.error (/workspace/node_modules/rxjs/src/internal/operators/catchError.ts:130:23)
identity-service_1  |     at MergeMapSubscriber.SimpleOuterSubscriber.notifyError (/workspace/node_modules/rxjs/src/internal/innerSubscribe.ts:70:22)
identity-service_1  |     at SimpleInnerSubscriber._error (/workspace/node_modules/rxjs/src/internal/innerSubscribe.ts:34:17)
identity-service_1  |     at SimpleInnerSubscriber.Subscriber.error (/workspace/node_modules/rxjs/src/internal/Subscriber.ts:113:12)
identity-service_1  |     at SwitchMapSubscriber.Subscriber._error (/workspace/node_modules/rxjs/src/internal/Subscriber.ts:143:22)
identity-service_1  |     at SwitchMapSubscriber.Subscriber.error (/workspace/node_modules/rxjs/src/internal/Subscriber.ts:113:12)
identity-service_1  |     at /workspace/node_modules/rxjs/src/internal/util/subscribeToPromise.ts:12:30

[feature] coverage nestjs-aws-s3 with tests

С чем связан запрос на фичу?

Появилось необходимость в тестировании из-за частого обновления зависимостей

Расскажите как вы это себе видите

  1. Создать папку tests
  2. Протестировать единственный сервис - aws-s3
  3. Протестировать публичный метод модуля - forRoot

Обновление зависимостей `kratos`

С чем связан запрос на фичу?

Обновление зависимостей в модуле kratos

Расскажите как вы это себе видите

Обновить и зафиксировать версии пакета @atls/nestjs-kratos до максимально возможных таким образом, чтобы ничего не ломалось, а именно проходили команды критерия готовности.

Исключения:

Зависимости typescript, typeorm обновлять не нужно.

Если ломаются тесты и это связанно с переходом NestJs с версии 8 на 10, и проблема не на поверхности (не фиксится заменой в тесте, например, метода .asyncListen на .listen), то пакеты, начинающиеся с @nestjs/... обновлять не выше мажорной 8.

Definition of done (критерий готовности)

Проходят без ошибок команды:

  • yarn install
  • yarn check
  • yarn test unit

Если в пакете есть скрипты build и prepack, то они тоже должны проходить без ошибок.

Приложите пример реализаций

https://classic.yarnpkg.com/lang/en/docs/cli/workspace/
yarn workspace <workspace> add <[email protected]> <keys>

Приложите материалы задачи

Можете посмотреть закрытые PR и issue по теме обновления зависимостей

Обновление зависимостей `keto`

С чем связан запрос на фичу?

Обновление зависимостей в модуле keto

Расскажите как вы это себе видите

Обновить и зафиксировать версии пакета @atls/nestjs-keto до максимально возможных таким образом, чтобы ничего не ломалось, а именно проходили команды критерия готовности.

Исключения:

Зависимости typescript, typeorm обновлять не нужно.

Если ломаются тесты и это связанно с переходом NestJs с версии 8 на 10, и проблема не на поверхности (не фиксится заменой в тесте, например, метода .asyncListen на .listen), то пакеты, начинающиеся с @nestjs/... обновлять не выше мажорной 8.

Definition of done (критерий готовности)

Проходят без ошибок команды:

  • yarn install
  • yarn check
  • yarn test unit

Если в пакете есть скрипты build и prepack, то они тоже должны проходить без ошибок.

Приложите пример реализаций

https://classic.yarnpkg.com/lang/en/docs/cli/workspace/
yarn workspace <workspace> add <[email protected]> <keys>

Приложите материалы задачи

Можете посмотреть закрытые PR и issue по теме обновления зависимостей

Обновление зависимостей `typesense`

С чем связан запрос на фичу?

Обновление зависимостей в модуле typesense

Расскажите как вы это себе видите

Обновить и зафиксировать версии пакета @atls/nestjs-typesense до максимально возможных таким образом, чтобы ничего не ломалось, а именно проходили команды критерия готовности.

Исключения:

Зависимости typescript, typeorm обновлять не нужно.

Если ломаются тесты и это связанно с переходом NestJs с версии 8 на 10, и проблема не на поверхности (не фиксится заменой в тесте, например, метода .asyncListen на .listen), то пакеты, начинающиеся с @nestjs/... обновлять не выше мажорной 8.

Definition of done (критерий готовности)

Проходят без ошибок команды:

  • yarn install
  • yarn check
  • yarn test unit

Если в пакете есть скрипты build и prepack, то они тоже должны проходить без ошибок.

Приложите пример реализаций

https://classic.yarnpkg.com/lang/en/docs/cli/workspace/
yarn workspace <workspace> add <[email protected]> <keys>

Приложите материалы задачи

Можете посмотреть закрытые PR и issue по теме обновления зависимостей

Обновление зависимостей `logger`

С чем связан запрос на фичу?

Обновление зависимостей в модуле logger

Расскажите как вы это себе видите

Обновить и зафиксировать версии пакета @atls/nestjs-logger до максимально возможных таким образом, чтобы ничего не ломалось, а именно проходили команды критерия готовности.

Исключения:

Зависимости typescript, typeorm обновлять не нужно.

Если ломаются тесты и это связанно с переходом NestJs с версии 8 на 10, и проблема не на поверхности (не фиксится заменой в тесте, например, метода .asyncListen на .listen), то пакеты, начинающиеся с @nestjs/... обновлять не выше мажорной 8.

Definition of done (критерий готовности)

Проходят без ошибок команды:

  • yarn install
  • yarn check
  • yarn test unit

Если в пакете есть скрипты build и prepack, то они тоже должны проходить без ошибок.

Приложите пример реализаций

https://classic.yarnpkg.com/lang/en/docs/cli/workspace/
yarn workspace <workspace> add <[email protected]> <keys>

Приложите материалы задачи

Можете посмотреть закрытые PR и issue по теме обновления зависимостей

Обновление grpc-errors

С чем связан запрос на фичу?

Обновление зависимостей в репозитории grpc-errors

Расскажите как вы это себе видите

После обновления зависимостей (минорных или мажорных версий) следующие шаги должны пройти без ошибок:

  • установка зависимостей: yarn (обратить внимание на peerDependencies, если нужно, добавить в yarnrc)
  • чек: yarn check
  • тесты: yarn test unit
  • build или prepack: опционально по наличию команды.

Приложите пример реализаций

Адаптер `keto-grpc`

С чем связан запрос на фичу?

Необходимо добавить адаптер и гард для использования keto-grpc-client

Расскажите как вы это себе видите

  • используем @ory/keto-grpc-client
  • необходимы клиенты для
    • чтения
    • записи
  • УРЛ для отправки запросов должен быть кастомизируем
  • посмотреть в каком формате передавать тупли
  • тесты

Definition of done (критерий готовности)

Тесты проходят, пакет предоставляет гард, есть кастомизация УРЛа запросов

Приложите пример реализаций

No response

Приложите материалы задачи

No response

Обновление зависимостей `dataloader`

С чем связан запрос на фичу?

Обновление зависимостей в модуле dataloader

Расскажите как вы это себе видите

Обновить и зафиксировать версии пакета @atls/nestjs-dataloader до максимально возможных таким образом, чтобы ничего не ломалось, а именно проходили команды критерия готовности.

Исключения:

Зависимости typescript, typeorm обновлять не нужно.

Если ломаются тесты и это связанно с переходом NestJs с версии 8 на 10, и проблема не на поверхности (не фиксится заменой в тесте, например, метода .asyncListen на .listen), то пакеты, начинающиеся с @nestjs/... обновлять не выше мажорной 8.

Definition of done (критерий готовности)

Проходят без ошибок команды:

  • yarn install
  • yarn check
  • yarn test unit

Если в пакете есть скрипты build и prepack, то они тоже должны проходить без ошибок.

Приложите пример реализаций

https://classic.yarnpkg.com/lang/en/docs/cli/workspace/
yarn workspace <workspace> add <[email protected]> <keys>

Приложите материалы задачи

Можете посмотреть закрытые PR и issue по теме обновления зависимостей

Connection isn't provided

Описание бага

  1. @atls/nestjs-typesense-typeorm
  2. Инициализация модуля

Воспроизведение

Шаги для воспроизведения бага:

  1. Инициализируем окружение (nest, typesense, typeorm)
  2. Инициализируем модули
  3. Видим ошибку, проект не билдится

Ожидаемое поведение

Моудль инициализируется без ошибок

Материалы

[Nest] 9690  - 10/17/2021, 2:36:58 PM     LOG [InstanceLoader] TypeOrmModule dependencies initialized +53ms
[Nest] 9690  - 10/17/2021, 2:36:58 PM   ERROR [ExceptionHandler] Nest can't resolve dependencies of the TypeOrmListenersBuilder (TypesenseMetadataRegistry, EntityToDocumentMapper, ?). Please make sure that the argument Connection at index [2] is available in the TypesenseTypeOrmModule context.

Potential solutions:
- If Connection is a provider, is it part of the current TypesenseTypeOrmModule?
- If Connection is exported from a separate @Module, is that module imported within TypesenseTypeOrmModule?
  @Module({
    imports: [ /* the Module containing Connection */ ]
  })

Error: Nest can't resolve dependencies of the TypeOrmListenersBuilder (TypesenseMetadataRegistry, EntityToDocumentMapper, ?). Please make sure that the argument Connection at index [2] is available in the TypesenseTypeOrmModule context.

Potential solutions:
- If Connection is a provider, is it part of the current TypesenseTypeOrmModule?
- If Connection is exported from a separate @Module, is that module imported within TypesenseTypeOrmModule?
  @Module({
    imports: [ /* the Module containing Connection */ ]
  })

    at Injector.lookupComponentInParentModules (/home/dozer/workspace/typesense-demo/.yarn/unplugged/@nestjs-core-virtual-d5967d0c39/node_modules/@nestjs/core/injector/injector.js:201:19)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at Injector.resolveComponentInstance (/home/dozer/workspace/typesense-demo/.yarn/unplugged/@nestjs-core-virtual-d5967d0c39/node_modules/@nestjs/core/injector/injector.js:156:33)
    at resolveParam (/home/dozer/workspace/typesense-demo/.yarn/unplugged/@nestjs-core-virtual-d5967d0c39/node_modules/@nestjs/core/injector/injector.js:108:38)
    at async Promise.all (index 2)
    at Injector.resolveConstructorParams (/home/dozer/workspace/typesense-demo/.yarn/unplugged/@nestjs-core-virtual-d5967d0c39/node_modules/@nestjs/core/injector/injector.js:123:27)
    at Injector.loadInstance (/home/dozer/workspace/typesense-demo/.yarn/unplugged/@nestjs-core-virtual-d5967d0c39/node_modules/@nestjs/core/injector/injector.js:52:9)
    at Injector.loadProvider (/home/dozer/workspace/typesense-demo/.yarn/unplugged/@nestjs-core-virtual-d5967d0c39/node_modules/@nestjs/core/injector/injector.js:74:9)
    at async Promise.all (index 4)
    at InstanceLoader.createInstancesOfProviders (/home/dozer/workspace/typesense-demo/.yarn/unplugged/@nestjs-core-virtual-d5967d0c39/node_modules/@nestjs/core/injector/instance-loader.js:44:9)

Репа с репродьюсом

TFK70/typesense-demo#2

  1. docker-compose up db
  2. docker-compose up typesense
  3. export TYPESENSE_API_KEY=testkey (из-под докера пока не работает)
  4. yarn dev

Данные окружения

[bug] server-scripts module start failed

Описание бага

server-scripts падает при запуске

Воспроизведение

yarn run actl server-scripts start

Ожидаемое поведение

Команда успешно выполняется

Материалы

логи

yarn run v1.22.10
$ yarn workspace @identity/service dev
$ actl server-scripts start
[@octokit/rest] `const Octokit = require("@octokit/rest")` is deprecated. Use `const { Octokit } = require("@octokit/rest")` instead
[@octokit/rest] `const Octokit = require("@octokit/rest")` is deprecated. Use `const { Octokit } = require("@octokit/rest")` instead
[@octokit/rest] `const Octokit = require("@octokit/rest")` is deprecated. Use `const { Octokit } = require("@octokit/rest")` instead
Unknown Syntax Error: Extraneous positional argument ("server-scripts").

$ /usr/local/bin/node /Users/tuogeniy/Documents/atlantis-lab/challenge/backend/identity/service/node_modules/.bin/actl

[feature] coverage nestjs-bus with tests

С чем связан запрос на фичу?

Появилось необходимость в тестировании из-за частого обновления зависимостей

Расскажите как вы это себе видите

  1. Создать папку tests
  2. Протестировать работу шины через in-memory транспорт
  3. Протестировать работу шины через rabbitmq транспорт

Обновление grpc-http-proxy

С чем связан запрос на фичу?

Обновление зависимостей в репозитории grpc-http-proxy

Расскажите как вы это себе видите

После обновления зависимостей (минорных или мажорных версий) следующие шаги должны пройти без ошибок:

  • установка зависимостей: yarn (обратить внимание на peerDependencies, если нужно, добавить в yarnrc)
  • чек: yarn check
  • тесты: yarn test unit
  • build или prepack: опционально по наличию команды.

Приложите пример реализаций

Обновление `grpc-reflection`

С чем связан запрос на фичу?

Обновление зависимостей в репозитории grpc-reflection

Расскажите как вы это себе видите

Необходимо обновить все зависимости пакета. @nestjs/... выше мажорной 8 версии не ставить.

Критерии

  • yarn check без ошибок
  • yarn test unit без ошибок
  • build или prepack`: опционально по наличию команды
  • yarn логи пофикшены предупреждения зависимостей

Материалы

Интерактивный апгрейд через yarn:

Обновление зависимостей `signed-url`

С чем связан запрос на фичу?

Обновление зависимостей в модуле signed-url

Расскажите как вы это себе видите

Обновить и зафиксировать версии пакета @atlantis-lab/nestjs-signed-url до максимально возможных таким образом, чтобы ничего не ломалось, а именно проходили команды критерия готовности.

Исключения:

Зависимости typescript, typeorm обновлять не нужно.

Если ломаются тесты и это связанно с переходом NestJs с версии 8 на 10, и проблема не на поверхности (не фиксится заменой в тесте, например, метода .asyncListen на .listen), то пакеты, начинающиеся с @nestjs/... обновлять не выше мажорной 8.

Definition of done (критерий готовности)

Проходят без ошибок команды:

  • yarn install
  • yarn check
  • yarn test unit

Если в пакете есть скрипты build и prepack, то они тоже должны проходить без ошибок.

Приложите пример реализаций

https://classic.yarnpkg.com/lang/en/docs/cli/workspace/
yarn workspace <workspace> add <[email protected]> <keys>

Приложите материалы задачи

Можете посмотреть закрытые PR и issue по теме обновления зависимостей

NestJS Gateway Type

Ошибка

.yarn/__virtual__/grpc-reflection-js-virtual-bc1509ab8f/0/cache/grpc-reflection-js-npm-0.1.2-a7cf71e831-cff6360336.zip/node_modules/grpc-reflection-js/build/src/reflection_grpc_pb.d.ts:18:126
Type error: Namespace '"/workspaces/nestjs/.yarn/__virtual__/grpc-reflection-js-virtual-bc1509ab8f/0/cache/grpc-reflection-js-npm-0.1.2-a7cf71e831-cff6360336.zip/node_modules/grpc-reflection-js/build/src/reflection_pb"' has no exported member 'ServerReflectionResponse'.

  16 | declare function deserialize_grpc_reflection_v1alpha_ServerReflectionRequest(buffer_arg: any): import("./reflection_pb.js").ServerReflectionRequest;
  17 | declare function serialize_grpc_reflection_v1alpha_ServerReflectionResponse(arg: any): Buffer;
> 18 | declare function deserialize_grpc_reflection_v1alpha_ServerReflectionResponse(buffer_arg: any): import("./reflection_pb.js").ServerReflectionResponse;
     |                                                                                                                              ^
  19 | export {};
  20 |

Что делал

  1. Перебирал все версии grpc-reflection-js начиная с 0.1.2(latest)
  2. Ковырялся в unplugged, тк он не может найти релятивно заимпорченный модуль в той же директории (безрезультатно)

Обновление `grpc-identity`

С чем связан запрос на фичу?

Обновление зависимостей в репозитории grpc-identity

Расскажите как вы это себе видите

Необходимо обновить все зависимости пакета. @nestjs/... выше мажорной 8 версии не ставить.

Критерий успеха

  • yarn check без ошибок
  • yarn test unit без ошибок
  • build или prepack: опционально по наличию команды
  • yarn логи пофикшены предупреждения зависимостей

Материалы

Интерактивный апгрейд через yarn:

[bug] class constructor usage in test fails

Описание бага

  1. @atlantis-lab/[email protected]
  2. Падение при запуске теста

Воспроизведение

Шаги для воспроизведения бага:

yarn test packages/nestjs-tinkoff
  yarn run v1.22.5
  $ mctl test
  ts-jest[versions] (WARN) Version 24.9.0 of jest installed has not been tested with ts-jest. If you're experiencing issues, consider using a supported version (>=26.0.0 <27.0.0-0). Please do not report issues in ts-jest if you are using unsupported versions.
  ts-jest[config] (WARN) The option `tsConfig` is deprecated and will be removed in ts-jest 27, use `tsconfig` instead
  ts-jest[versions] (WARN) Version 24.9.0 of jest installed has not been tested with ts-jest. If you're experiencing issues, consider using a supported version (>=26.0.0 <27.0.0-0). Please do not report issues in ts-jest if you are using unsupported versions.
  ts-jest[config] (WARN) The option `tsConfig` is deprecated and will be removed in ts-jest 27, use `tsconfig` instead
  ts-jest[versions] (WARN) Version 24.9.0 of jest installed has not been tested with ts-jest. If you're experiencing issues, consider using a supported version (>=26.0.0 <27.0.0-0). Please do not report issues in ts-jest if you are using unsupported versions.
  ts-jest[config] (WARN) The option `tsConfig` is deprecated and will be removed in ts-jest 27, use `tsconfig` instead
  ts-jest[versions] (WARN) Version 24.9.0 of jest installed has not been tested with ts-jest. If you're experiencing issues, consider using a supported version (>=26.0.0 <27.0.0-0). Please do not report issues in ts-jest if you are using unsupported versions.
  ts-jest[config] (WARN) The option `tsConfig` is deprecated and will be removed in ts-jest 27, use `tsconfig` instead
   FAIL  packages/nestjs-tinkoff/__tests__/request-verifier-guard.test.ts
    ● Test suite failed to run
  
      TypeError: Class constructor Tinkoff cannot be invoked without 'new'
  
         8 | export class TinkoffService extends Tinkoff {
         9 |   public constructor(@Inject(TINKOFF_API_OPTIONS) options: TinkoffPublicOptions) {
      > 10 |     super(options)
           |     ^
        11 |   }
        12 | }
        13 | 
  
        at new TinkoffService (packages/nestjs-tinkoff/src/services/tinkoff.service.ts:10:5)
        at Object.<anonymous> (packages/nestjs-tinkoff/__tests__/request-verifier-guard.test.ts:3:21)
  
   PASS  packages/nestjs-map-errors-interceptor/__tests__/interceptor.test.ts
   PASS  packages/server-scripts/__tests__/create-webpack-config.test.ts
   PASS  packages/nestjs-signed-url/__tests__/generate-url.test.ts
  
  Test Suites: 1 failed, 3 passed, 4 total
  Tests:       6 passed, 6 total
  Snapshots:   0 total
  Time:        1.567s, estimated 2s
  Ran all test suites.
  
  error Command failed with exit code 1.
  info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Обновление зависимостей `gateway`

С чем связан запрос на фичу?

Обновление зависимостей в модуле gateway

Расскажите как вы это себе видите

Обновить и зафиксировать версии пакета @atls/nestjs-gateway до максимально возможных таким образом, чтобы ничего не ломалось, а именно проходили команды критерия готовности.

Исключения:

Зависимости typescript, typeorm обновлять не нужно.

Если ломаются тесты и это связанно с переходом NestJs с версии 8 на 10, и проблема не на поверхности (не фиксится заменой в тесте, например, метода .asyncListen на .listen), то пакеты, начинающиеся с @nestjs/... обновлять не выше мажорной 8.

Definition of done (критерий готовности)

Проходят без ошибок команды:

  • yarn install
  • yarn check
  • yarn test unit

Если в пакете есть скрипты build и prepack, то они тоже должны проходить без ошибок.

Приложите пример реализаций

https://classic.yarnpkg.com/lang/en/docs/cli/workspace/
yarn workspace <workspace> add <[email protected]> <keys>

Приложите материалы задачи

Можете посмотреть закрытые PR и issue по теме обновления зависимостей

[bug] @atlantis-lab/nestjs-tinkoff test failed

Описание бага

@atlantis-lab/[email protected]

Запуск тестов пакета заканчивается ошибкой.

Воспроизведение

Шаги для воспроизведения бага:

yarn test packages/nestjs-tinkoff
FAIL packages/nestjs-tinkoff/__tests__/request-verifier-guard.test.ts
● Test suite failed to run

  packages/nestjs-tinkoff/__tests__/request-verifier-guard.test.ts:3:30 - error TS2554: Expected 1 arguments, but got 0.

  3 const requestVerifierGuard = new RequestVerifierGuard()
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~

    packages/nestjs-tinkoff/src/guards/request-verifier.guard.ts:7:22
      7   public constructor(private readonly tinkoff: TinkoffService) {}
                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      An argument for 'tinkoff' was not provided. 

Ожидаемое поведение

Успешное прохождение тестов.

[feature] coverage nestjs-tinkoff with tests

С чем связан запрос на фичу?

необходимость в покрытии тестами

Расскажите как вы это себе видите

  1. Создать папку tests
  2. Создать файл в котором протестировать https://github.com/Atlantis-Lab/nestjs/blob/master/packages/nestjs-tinkoff/src/guards/request-verifier.guard.ts
    Моки для теста можно взять из тестов репозитория https://github.com/Atlantis-Lab/tinkoff-api

[bug] fix atlantis-lab/server-scripts

Описание бага

  1. @atlantis-lab/[email protected]

Воспроизведение

Шаги для воспроизведения бага:
2. Выполнить команду yarn test
3. Видим ошибку "Option 'whitelist' is not supported. Did you mean 'allowlist" - так как в webpack-node-externals whitelist и blacklist были обновлени на allowlist и blocklist

Ожидаемое поведение

Тесты Server Scripts Webpack прошли успешно

[bug] nests deps resolving failed with rabbitmq transport

Описание бага

Если использовать rabbitmq транспорт приложение падает при запуске

Воспроизведение

@Module({
  imports: [
    BusModule.forRoot({
      transport: Transport.RabbitMQ,
      configuration: {
        queueName: process.env.QUEUE_NAME,
        connectionString: process.env.BUS_URL,
      },
    }),
  ],
  providers: [],
  controllers: [],
})
export class ServiceModule {}

Материалы

Search for the keywords to learn more about each warning.
To ignore, add // eslint-disable-next-line to the line before.

Starting the development server...

[Nest] 7344   - 03/30/2021, 5:20:38 PM   [NestFactory] Starting Nest application...
[Nest] 7344   - 03/30/2021, 5:20:38 PM   [InstanceLoader] BusModule dependencies initialized +108ms
[Nest] 7344   - 03/30/2021, 5:20:38 PM   [InstanceLoader] LoggerModule dependencies initialized +1ms
[Nest] 7344   - 03/30/2021, 5:20:38 PM   [InstanceLoader] TypeOrmModule dependencies initialized +0ms
[Nest] 7344   - 03/30/2021, 5:20:38 PM   [InstanceLoader] TypeOrmModule dependencies initialized +0ms
[Nest] 7344   - 03/30/2021, 5:20:38 PM   [ExceptionHandler] Nest can't resolve dependencies of the BusRabbitMQModule (Symbol(@atlantis-lab/nestjs-bus/application-container), ?, Logger, ApplicationBootstrap, ExplorerService). Please make sure that the argument Symbol(@atlantis-lab/nestjs-bus/bus-rabbitmq-configuration) at index [1] is available in the BusRabbitMQModule context.

Potential solutions:
- If Symbol(@atlantis-lab/nestjs-bus/bus-rabbitmq-configuration) is a provider, is it part of the current BusRabbitMQModule?
- If Symbol(@atlantis-lab/nestjs-bus/bus-rabbitmq-configuration) is exported from a separate @Module, is that module imported within BusRabbitMQModule?
  @Module({
    imports: [ /* the Module containing Symbol(@atlantis-lab/nestjs-bus/bus-rabbitmq-configuration) */ ]
  })
 +2ms
Error: Nest can't resolve dependencies of the BusRabbitMQModule (Symbol(@atlantis-lab/nestjs-bus/application-container), ?, Logger, ApplicationBootstrap, ExplorerService). Please make sure that the argument Symbol(@atlantis-lab/nestjs-bus/bus-rabbitmq-configuration) at index [1] is available in the BusRabbitMQModule context.

Potential solutions:
- If Symbol(@atlantis-lab/nestjs-bus/bus-rabbitmq-configuration) is a provider, is it part of the current BusRabbitMQModule?
- If Symbol(@atlantis-lab/nestjs-bus/bus-rabbitmq-configuration) is exported from a separate @Module, is that module imported within BusRabbitMQModule?
  @Module({
    imports: [ /* the Module containing Symbol(@atlantis-lab/nestjs-bus/bus-rabbitmq-configuration) */ ]
  })

    at Injector.lookupComponentInParentModules (/Users/tuogeniy/Documents/atlantis-lab/challenge/node_modules/@nestjs/core/injector/injector.js:188:19)
    at Injector.resolveComponentInstance (/Users/tuogeniy/Documents/atlantis-lab/challenge/node_modules/@nestjs/core/injector/injector.js:144:33)
    at resolveParam (/Users/tuogeniy/Documents/atlantis-lab/challenge/node_modules/@nestjs/core/injector/injector.js:98:38)
    at async Promise.all (index 1)
    at Injector.resolveConstructorParams (/Users/tuogeniy/Documents/atlantis-lab/challenge/node_modules/@nestjs/core/injector/injector.js:113:27)
    at Injector.loadInstance (/Users/tuogeniy/Documents/atlantis-lab/challenge/node_modules/@nestjs/core/injector/injector.js:46:9)
    at Injector.loadProvider (/Users/tuogeniy/Documents/atlantis-lab/challenge/node_modules/@nestjs/core/injector/injector.js:68:9)
    at async Promise.all (index 0)
    at InstanceLoader.createInstancesOfProviders (/Users/tuogeniy/Documents/atlantis-lab/challenge/node_modules/@nestjs/core/injector/instance-loader.js:43:9)
    at /Users/tuogeniy/Documents/atlantis-lab/challenge/node_modules/@nestjs/core/injector/instance-loader.js:28:13
    at async Promise.all (index 3)
    at InstanceLoader.createInstances (/Users/tuogeniy/Documents/atlantis-lab/challenge/node_modules/@nestjs/core/injector/instance-loader.js:27:9)
    at InstanceLoader.createInstancesOfDependencies (/Users/tuogeniy/Documents/atlantis-lab/challenge/node_modules/@nestjs/core/injector/instance-loader.js:17:9)
    at /Users/tuogeniy/Documents/atlantis-lab/challenge/node_modules/@nestjs/core/nest-factory.js:90:17
    at Function.asyncRun (/Users/tuogeniy/Documents/atlantis-lab/challenge/node_modules/@nestjs/core/errors/exceptions-zone.js:18:13)
    at NestFactoryStatic.initialize (/Users/tuogeniy/Documents/atlantis-lab/challenge/node_modules/@nestjs/core/nest-factory.js:88:13)
    ```

Обновление зависимостей `typeorm-seeding`

С чем связан запрос на фичу?

Обновление зависимостей в модуле typeorm-seeding

Расскажите как вы это себе видите

Обновить и зафиксировать версии пакета @atls/nestjs-typeorm-seeding до максимально возможных таким образом, чтобы ничего не ломалось, а именно проходили команды критерия готовности.

Исключения:

Зависимости typescript, typeorm обновлять не нужно.

Если ломаются тесты и это связанно с переходом NestJs с версии 8 на 10, и проблема не на поверхности (не фиксится заменой в тесте, например, метода .asyncListen на .listen), то пакеты, начинающиеся с @nestjs/... обновлять не выше мажорной 8.

Definition of done (критерий готовности)

Проходят без ошибок команды:

  • yarn install
  • yarn check
  • yarn test unit

Если в пакете есть скрипты build и prepack, то они тоже должны проходить без ошибок.

Приложите пример реализаций

https://classic.yarnpkg.com/lang/en/docs/cli/workspace/
yarn workspace <workspace> add <[email protected]> <keys>

Приложите материалы задачи

Можете посмотреть закрытые PR и issue по теме обновления зависимостей

[chore] cover packages with tests

Какого рода задача?

Покрытие тестами и исправление билда

Что и где будем менять?

Cписок библиотек которые можно и нужно покрыть тестами:

  • nestjs-bus (после #156)
  • nestjs-logger
  • nestjs-map-errors-interceptor
  • nestjs-signed-url
  • nestjs-tinkoff
  • server-scripts

[feature] coverage nestjs-map-errors-interceptor with tests

С чем связан запрос на фичу?

необходимость покрыть код тестами

Расскажите как вы это себе видите

nestjs-map-errors-interceptor

  1. создать папку tests
  2. Создать в папке файл в котором проверить работу класса MapValidationErrorsInterceptor

[feature] coverage nestjs-logger with tests

С чем связан запрос на фичу?

необходимость в покрытии кода тестами

Расскажите как вы это себе видите

  1. Создать папку tests
  2. Покрыть публичные методы модуля тестами https://github.com/Atlantis-Lab/nestjs/blob/master/packages/nestjs-bus/src/module.ts
  3. Покрыть публичные провайдеры тестами (https://github.com/Atlantis-Lab/nestjs/blob/master/packages/nestjs-bus/src/core.ts#L67)
    • applicationBootstrapProvider
    • busProvider
    • handlerRegistryProvider

Обновление зависимостей `hydra`

С чем связан запрос на фичу?

Обновление зависимостей в модуле hydra

Расскажите как вы это себе видите

Обновить и зафиксировать версии пакета @atls/nestjs-hydra до максимально возможных таким образом, чтобы ничего не ломалось, а именно проходили команды критерия готовности.

Исключения:

Зависимости typescript, typeorm обновлять не нужно.

Если ломаются тесты и это связанно с переходом NestJs с версии 8 на 10, и проблема не на поверхности (не фиксится заменой в тесте, например, метода .asyncListen на .listen), то пакеты, начинающиеся с @nestjs/... обновлять не выше мажорной 8.

Definition of done (критерий готовности)

Проходят без ошибок команды:

  • yarn install
  • yarn check
  • yarn test unit

Если в пакете есть скрипты build и prepack, то они тоже должны проходить без ошибок.

Приложите пример реализаций

https://classic.yarnpkg.com/lang/en/docs/cli/workspace/
yarn workspace <workspace> add <[email protected]> <keys>

Приложите материалы задачи

Можете посмотреть закрытые PR и issue по теме обновления зависимостей

[bug] fix nestjs-bus package

Описание бага

  1. @atlantis-lab/[email protected]

Воспроизведение

Шаги для воспроизведения бага:

  1. Идем в папку packages/nestjs-bus
  2. Запускаем build
  3. Видим ошибки с инициализации RabbitMqTransport
  4. Идём туда-то packages/nestjs-bus/src/module.js:30
  5. Смотрим contructor в RabbitMqTransport
  6. Видим не хватает handlerRegister при инициализации RabbitMqTransport

Ожидаемое поведение

  1. Build прошел успешно
  2. Протестили nestjs-bus пакет в тестовом сервисе

[bug] adapt nestjs-bus to the updated @node-ts/bus-core & @node-ts/bus-rabbitmq

Описание бага

После обновления пакета 9f834cf проект перестал проходить проверку типов

Воспроизведение

yarn run typecheck

Ожидаемое поведение

Проект проходит проверку без ошибок

Данные окружения

  • mac os 11.2

[feature] map objects nested into array validation errors by MapErrorsInterceptor

С чем связан запрос на фичу?

Необходимо изменить отображение объекта ошибки, возращенного методом MapErrorsInterceptor#intercept в случаях перехвата ошибок валидации, вызванных декоратором поля @ValidateNetsed({ each: true }).

Расскажите как вы это себе видите

MapToErrorsInterceptor отвечает за отображение ошибок, возникающих при запуске хендлеров контроллера, в частности, ошибок валидации запросов клиента. Для этого MapToErrorsInterceptor перехватывает ошибки класса ValidationError из пакета class-validator и отображает в ожидаемый клиентом формат.

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

Для больших подробностей расмотрим следующий пример:

import { IsString, validateOrReject } from 'class-vaidator'
import { from }                       from 'rxjs'

class NestedBar {
  @IsString()
  bar: any
}

class Foo {
  @ValidateNested({ each: true })
  nestedBars: Array<NestedBar>
}

const nestedBar1 = new NestedBar()
nestedBar1.bar = 1
const nestedBar2 = new NestedBar()
nestedBar2.bar = 'string'
const nestedBars = [nestedBar1, nestedBar2]
const foo = new Foo()
foo.nestedBars = nestedBars

const interceptor = new MapToErrorsInterceptor()
const handler = {
  handle = () => from(validateOrReject(foo))
}
// print ValidatioError to be intercepted by MapToErrorsInterceptor
interceptor.intercept({}, handler).pipe(console.log)

/*
  [
    {
      property: "nestedBar",
      target: {
        nestedBar: [
          { bar: 1 },
          { bar: "str" },
          { bar: null }
        ]
      },
      value: [
        { bar: 1 },
        { bar: "str" },
        { bar: null }
      ],
      children: [
        {
          property: "0",
          target: [
            { bar: 1 },
            { bar: "str" },
            { bar: null }
          ],
          value: { bar: 1  }
          children: [
            {
              property: "bar",
              target: { bar: 1 },
              value: 1
              children: [],
              constraints: {
                isString: "each value in bar must be a string"
              },
            }
          ],
        },
        {
          property: "2",
          target: [
            { bar: 1 },
            { bar: "str" },
            { bar: null }
          ],
          value: { bar: null },
          children: [
            {
              property: "bar",
              target: { bar: null },
              value: null,
              children: [],
              constraints: {
                isString: "each value in bar must be a string"
              },
            }
          ],
        }
      ],
    }
  ]
*/

Поля выходного объекта require('class-validator').validate, которые содержат ошибки валидации для невалидых объектов входного массива, будут отображены в объекты с динамическим ключом - индексом проверяемого элемента в массиве. Такая форма несериализуема для передачи протоколами со статической типизацией полей. Необходимо добавить поддержку отображения ValidationError для таких случаев.

Пример выходного объекта для отправки на клиент:

{
  errors: {
    nestedBar: [
      { bar: 'each value in bar must be a string' },
      {},
      { bar: 'each value in bar must be a string' }
    ]
  }
}

Пример текущей реализации выходного объекта для отправки на клиент:

{
  errors: {
    nestedBar: {
      '0': { bar: 'each value in bar must be a string' },
      '2': { bar: 'each value in bar must be a string' }
    }
  }
}

[feature] coverage nestjs-signed-url with tests

С чем связан запрос на фичу?

возникла необходимость в покрытии кода тестами

Расскажите как вы это себе видите

  1. Создать папку tests
  2. Протестировать код

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.