Giter Site home page Giter Site logo

atls / nestjs Goto Github PK

View Code? Open in Web Editor NEW
30.0 7.0 7.0 1002.01 MB

NestJS Custom Workshop

License: BSD 3-Clause "New" or "Revised" License

TypeScript 99.68% Shell 0.07% JavaScript 0.25%
nestjs nestjs-library nestjs-tinkoff nestjs-aws nestjs-s3 nestjs-logger nestjs-bus nestjs-signed-url nestjs-kratos nestjs-keto

nestjs's Issues

[feature] coverage server-scripts with tests

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

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

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

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

[feature] coverage nestjs-aws-s3 with tests

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

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

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

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

Обновление зависимостей `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 по теме обновления зависимостей

Обновление зависимостей `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 по теме обновления зависимостей

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

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

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

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

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

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

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

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

No response

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

No response

Обновление зависимостей `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] server-scripts module start failed

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

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

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

yarn run server-scripts start

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

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

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

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

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

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

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

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

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

[chore] cover packages with tests

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

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

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

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

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

[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.

[feature] coverage nestjs-bus with tests

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

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

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

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

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

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

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

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

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

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

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

Обновление зависимостей `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 по теме обновления зависимостей

[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] @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. 

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

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

[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)
    ```

[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] 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' }
    }
  }
}

Обновление зависимостей `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 по теме обновления зависимостей

[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 прошли успешно

Обновление зависимостей `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 по теме обновления зависимостей

Обновление зависимостей `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 по теме обновления зависимостей

[feature] coverage nestjs-signed-url with tests

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

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

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

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

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

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

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

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

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

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

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

Материалы

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

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

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

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

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

yarn run typecheck

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

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

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

  • mac os 11.2

[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

Обновление зависимостей `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 по теме обновления зависимостей

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

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

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-playground

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

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

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

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

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

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

Обновление зависимостей `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 по теме обновления зависимостей

[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-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

Обновление зависимостей `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 по теме обновления зависимостей

Обновление зависимостей `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 по теме обновления зависимостей

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

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

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

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

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

Критерии

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

Материалы

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

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

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

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

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

nestjs-map-errors-interceptor

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

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.