Compare commits

...

957 Commits

Author SHA1 Message Date
Kamil Myśliwiec
caa8a8f6fe chore(@nestjs) publish v8.2.0 release 2021-11-08 09:30:35 +01:00
Kamil Myśliwiec
63581c9d18 chore(): update package.json 2021-11-08 09:28:34 +01:00
Kamil Mysliwiec
4bf2fd4747 Merge pull request #8365 from sjkummer/fix-grpc-channel-options
Fix grpc channel options
2021-11-08 09:28:16 +01:00
Kamil Mysliwiec
d47fc5142d Merge pull request #8465 from aaronschweig/feature/grpc-package-definition
feat(microservices): adds packageDefinition option to ClientGrpc
2021-11-08 09:27:49 +01:00
Kamil Mysliwiec
fdcf5b2f50 Merge pull request #8511 from nestjs/renovate/npm-validator-vulnerability
chore(deps): update dependency validator to 13.7.0 [security]
2021-11-08 09:27:10 +01:00
Kamil Mysliwiec
1a03bd7565 Merge pull request #8509 from nestjs/renovate/sinon-12.x
chore(deps): update dependency sinon to v12
2021-11-08 09:22:17 +01:00
Kamil Mysliwiec
b2cf9149b5 Merge pull request #8508 from nestjs/renovate/fastify-static-4.x
fix(deps): update dependency fastify-static to v4.5.0
2021-11-08 09:22:13 +01:00
Kamil Mysliwiec
2e75a27ef3 Merge pull request #8515 from nestjs/renovate/jest-monorepo
chore(deps): update dependency @types/jest to v27.0.2
2021-11-08 09:22:09 +01:00
Kamil Mysliwiec
5c9df2438d Merge pull request #8516 from nestjs/renovate/apollo-graphql-packages
fix(deps): update apollo graphql packages to v3.5.0
2021-11-08 09:22:00 +01:00
Kamil Mysliwiec
53c07e563e Merge pull request #8517 from nestjs/renovate/fastify-3.x
fix(deps): update dependency fastify to v3.23.1
2021-11-08 09:21:52 +01:00
Kamil Mysliwiec
b8205f5eef Merge pull request #8522 from nestjs/renovate/clang-format-1.x
chore(deps): update dependency clang-format to v1.6.0
2021-11-08 09:21:46 +01:00
Kamil Mysliwiec
64ba27d4ed Merge pull request #8527 from nestjs/renovate/grpc-grpc-js-1.x
fix(deps): update dependency @grpc/grpc-js to v1.4.3
2021-11-08 09:21:29 +01:00
Kamil Mysliwiec
e3e615a4f3 Merge pull request #8524 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.62.1
2021-11-08 09:21:22 +01:00
Renovate Bot
63113d85c5 fix(deps): update dependency fastify to v3.23.1 2021-11-07 19:50:18 +00:00
Renovate Bot
7bdb6d5c87 fix(deps): update dependency @grpc/grpc-js to v1.4.3 2021-11-05 22:53:27 +00:00
Renovate Bot
e471603ebc fix(deps): update apollo graphql packages to v3.5.0 2021-11-05 18:56:23 +00:00
Renovate Bot
f9fe42f4d4 chore(deps): update dependency webpack to v5.62.1 2021-11-05 17:14:46 +00:00
Renovate Bot
4c35caaf8d chore(deps): update dependency clang-format to v1.6.0 2021-11-05 10:59:18 +00:00
Renovate Bot
1e49562a2e chore(deps): update dependency @types/jest to v27.0.2 2021-11-04 19:06:20 +00:00
Renovate Bot
6b6ebf3ca9 chore(deps): update dependency sinon to v12 2021-11-04 16:35:30 +00:00
Kamil Mysliwiec
4566dbca5f Merge pull request #8507 from aaabramov/patch-2
Fix typo in ImATeapotException doc :D
2021-11-04 08:10:38 +01:00
Renovate Bot
4f9ad51db9 chore(deps): update dependency validator to 13.7.0 [security] 2021-11-03 18:56:16 +00:00
Renovate Bot
23eed20abc fix(deps): update dependency fastify-static to v4.5.0 2021-11-03 16:46:29 +00:00
Andrii
f934e7848d Fix typo in ImATeapotException doc :D 2021-11-03 17:59:13 +02:00
Kamil Myśliwiec
f69d157013 Merge branch 'jmcdo29-feat/streamable-file-config' 2021-11-03 09:53:45 +01:00
Kamil Myśliwiec
365c40bd98 fix(platform-fastify): fix streamable file processing 2021-11-03 09:52:42 +01:00
Kamil Myśliwiec
1d35d7b687 Merge branch 'feat/streamable-file-config' of https://github.com/jmcdo29/nest into jmcdo29-feat/streamable-file-config 2021-11-03 08:36:27 +01:00
Kamil Myśliwiec
5bb4fc5aa4 Merge branch 'master' of https://github.com/nestjs/nest 2021-11-03 08:35:53 +01:00
Kamil Mysliwiec
fb1ba6ceca Merge pull request #8493 from nestjs/renovate/ts-morph-12.x
fix(deps): update dependency ts-morph to v12.2.0
2021-11-03 08:35:47 +01:00
Kamil Mysliwiec
9a7ee41b10 Merge pull request #8495 from nestjs/renovate/confluentinc-cp-kafka-7.x
chore(deps): update confluentinc/cp-kafka docker tag to v7
2021-11-03 08:35:44 +01:00
Kamil Mysliwiec
31055aba24 Merge pull request #8497 from nestjs/renovate/core-js-3.x
chore(deps): update dependency core-js to v3.19.1
2021-11-03 08:35:40 +01:00
Kamil Mysliwiec
c7edd139ea Merge pull request #8498 from nestjs/renovate/apollo-graphql-packages
fix(deps): update apollo graphql packages
2021-11-03 08:35:34 +01:00
Kamil Mysliwiec
d788b7d5b9 Merge pull request #8499 from nestjs/renovate/nats-2.x
chore(deps): update dependency nats to v2.3.0
2021-11-03 08:35:29 +01:00
Kamil Mysliwiec
1e09584c36 Merge pull request #8504 from nestjs/renovate/subscriptions-transport-ws-0.x
chore(deps): update dependency subscriptions-transport-ws to v0.11.0
2021-11-03 08:35:24 +01:00
Kamil Myśliwiec
0b0c1748ed Merge branch 'master' of https://github.com/nestjs/nest 2021-11-03 08:35:12 +01:00
Kamil Mysliwiec
41b01254ac Merge pull request #8464 from nestjs/renovate/graphql-15.x
fix(deps): update dependency graphql to v15.7.2
2021-11-03 08:35:03 +01:00
Renovate Bot
c6021b1502 chore(deps): update dependency subscriptions-transport-ws to v0.11.0 2021-11-03 00:29:40 +00:00
Renovate Bot
121013e2c9 chore(deps): update dependency nats to v2.3.0 2021-11-02 22:51:43 +00:00
Renovate Bot
6d66fee96b fix(deps): update apollo graphql packages 2021-11-02 21:24:53 +00:00
Renovate Bot
20173294ef chore(deps): update dependency core-js to v3.19.1 2021-11-02 21:16:10 +00:00
Renovate Bot
0a4fd93361 chore(deps): update confluentinc/cp-kafka docker tag to v7 2021-11-02 20:02:50 +00:00
Renovate Bot
7de6f40c45 fix(deps): update dependency ts-morph to v12.2.0 2021-11-02 17:35:22 +00:00
Renovate Bot
63eb125aa4 fix(deps): update dependency graphql to v15.7.2 2021-11-02 09:34:04 +00:00
Kamil Mysliwiec
dbf3999373 Merge pull request #8468 from nestjs/renovate/graphql-query-complexity-0.x
fix(deps): update dependency graphql-query-complexity to v0.10.0
2021-11-02 10:13:14 +01:00
Kamil Mysliwiec
ecf9c6b57a Merge pull request #8470 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.61.0
2021-11-02 10:13:10 +01:00
Kamil Mysliwiec
d86e43c822 Merge pull request #8473 from nestjs/renovate/babel-monorepo
chore(deps): update babel monorepo to v7.16.0
2021-11-02 10:13:05 +01:00
Kamil Mysliwiec
d3f119b09e Merge pull request #8476 from nestjs/renovate/ts-morph-12.x
fix(deps): update dependency ts-morph to v12.1.0
2021-11-02 10:13:00 +01:00
Kamil Mysliwiec
e29eee1090 Merge pull request #8479 from nestjs/renovate/major-commitlint-monorepo
chore(deps): update commitlint monorepo to v14 (major)
2021-11-02 10:12:56 +01:00
Kamil Mysliwiec
dbb7c682f9 Merge pull request #8482 from nestjs/renovate/imports-loader-3.x
chore(deps): update dependency imports-loader to v3.1.1
2021-11-02 10:12:51 +01:00
Kamil Mysliwiec
365948c227 Merge pull request #8483 from nestjs/renovate/fastify-multipart-5.x
chore(deps): update dependency fastify-multipart to v5.1.0
2021-11-02 10:12:46 +01:00
Kamil Mysliwiec
a1d6eccc76 Merge pull request #8484 from nestjs/renovate/sequelize-6.x
fix(deps): update dependency sequelize to v6.9.0
2021-11-02 10:12:31 +01:00
Jay McDoniel
51005735fe feat(common): add the ability to set some extra metadata about returned files 2021-11-01 16:35:08 -07:00
Renovate Bot
4d3819ef6f fix(deps): update dependency sequelize to v6.9.0 2021-11-01 20:06:15 +00:00
Renovate Bot
685344309a chore(deps): update dependency fastify-multipart to v5.1.0 2021-11-01 18:02:23 +00:00
Renovate Bot
73e5008e4c chore(deps): update dependency imports-loader to v3.1.1 2021-11-01 18:00:22 +00:00
Renovate Bot
43817a9f71 chore(deps): update commitlint monorepo to v14 2021-11-01 08:35:13 +00:00
Renovate Bot
0913b7cdc4 fix(deps): update dependency ts-morph to v12.1.0 2021-10-31 00:27:09 +00:00
Renovate Bot
0aef269531 chore(deps): update babel monorepo to v7.16.0 2021-10-30 02:03:20 +00:00
Renovate Bot
466fe92370 chore(deps): update dependency webpack to v5.61.0 2021-10-29 14:57:18 +00:00
Kamil Myśliwiec
399ac86db7 Merge branch 'master' of https://github.com/nestjs/nest 2021-10-29 12:57:30 +02:00
Kamil Myśliwiec
2a1cc6291a feat(common): allow to swap out class-validator and class-transformer 2021-10-29 12:57:22 +02:00
Aaron Schweig
3b7429357d feat(microservices): removes @grpc/grpc-js import 2021-10-29 09:02:11 +02:00
Kamil Mysliwiec
1394305bf3 Merge pull request #8402 from Tony133/test/sample-14-mongoose-base
test(sample-14): added unit test and other improvements
2021-10-29 08:29:20 +02:00
Renovate Bot
502e0bfaaa fix(deps): update dependency graphql-query-complexity to v0.10.0 2021-10-28 22:18:40 +00:00
Tony133
ea25c7dfbd test(): improvements 2021-10-28 17:52:24 +02:00
Aaron Schweig
76f2918f17 feat(microservices): adds packageDefinition option to ClientGrpc
Closes #8457
2021-10-28 17:44:24 +02:00
Kamil Mysliwiec
fb5ee1ddb2 Merge pull request #8458 from nestjs/renovate/graphql-15.x
fix(deps): update dependency graphql to v15.7.1
2021-10-28 08:30:49 +02:00
Renovate Bot
49b2fc04b9 fix(deps): update dependency graphql to v15.7.1 2021-10-27 17:17:52 +00:00
Tony
2788b8b6f1 Update sample/14-mongoose-base/src/cats/cats.controller.ts
Co-authored-by: Kamil Mysliwiec <mail@kamilmysliwiec.com>
2021-10-27 16:23:58 +02:00
Tony
2113d86ac8 Update sample/14-mongoose-base/src/cats/cats.controller.ts
Co-authored-by: Kamil Mysliwiec <mail@kamilmysliwiec.com>
2021-10-27 16:23:53 +02:00
Sebastian Schmid
fdf11a51ae fix(microservices): npm run format 2021-10-27 13:57:15 +02:00
Kamil Mysliwiec
37a7121736 Merge pull request #8448 from nestjs/renovate/lint-staged-11.x
chore(deps): update dependency lint-staged to v11.2.6
2021-10-27 08:45:57 +02:00
Kamil Mysliwiec
af6b73300f Merge pull request #8449 from nestjs/renovate/graphql-15.x
fix(deps): update dependency graphql to v15.7.0
2021-10-27 08:45:39 +02:00
Kamil Mysliwiec
5d7573ed2f Merge pull request #8450 from nestjs/renovate/grpc-grpc-js-1.x
fix(deps): update dependency @grpc/grpc-js to v1.4.2
2021-10-27 08:45:25 +02:00
Renovate Bot
6babebbfab fix(deps): update dependency @grpc/grpc-js to v1.4.2 2021-10-26 22:49:11 +00:00
Renovate Bot
a00750de1d fix(deps): update dependency graphql to v15.7.0 2021-10-26 21:05:13 +00:00
Tony133
3f1a491987 test(): updated annotations 2021-10-26 21:52:54 +02:00
Renovate Bot
2b0b7a54fe chore(deps): update dependency lint-staged to v11.2.6 2021-10-26 19:29:31 +00:00
Tony
45a44ee3cf Merge branch 'master' into test/sample-14-mongoose-base 2021-10-26 21:13:00 +02:00
Kamil Mysliwiec
dc71c4753a Merge pull request #8439 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.60.0
2021-10-26 08:28:54 +02:00
Kamil Mysliwiec
e9e8214bfc Merge pull request #8440 from nestjs/renovate/axios-0.x
fix(deps): update dependency axios to v0.24.0
2021-10-26 08:28:50 +02:00
Kamil Mysliwiec
60db92b52b Merge pull request #8445 from nestjs/renovate/sinon-10.x
chore(deps): update dependency @types/sinon to v10.0.6
2021-10-26 08:28:44 +02:00
Kamil Mysliwiec
3f81fa103a Merge pull request #8447 from nestjs/renovate/node-16.x
chore(deps): update dependency @types/node to v16.11.6
2021-10-26 08:28:39 +02:00
Kamil Mysliwiec
14263c7aa1 Merge pull request #8435 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v8.1.2
2021-10-26 08:27:53 +02:00
Renovate Bot
ec20b131f7 chore(deps): update dependency @types/node to v16.11.6 2021-10-26 03:18:01 +00:00
Renovate Bot
67ae27490b chore(deps): update dependency @types/sinon to v10.0.6 2021-10-26 01:02:51 +00:00
Renovate Bot
fc77e4fca8 fix(deps): update dependency axios to v0.24.0 2021-10-25 19:45:28 +00:00
Renovate Bot
762b6bf6a7 chore(deps): update dependency webpack to v5.60.0 2021-10-25 19:42:46 +00:00
Tony133
fa22622f42 test(sample-14: improvements 2021-10-25 17:37:44 +02:00
Tony
8608ac31eb Merge branch 'master' into test/sample-14-mongoose-base 2021-10-25 17:22:47 +02:00
Renovate Bot
2250c4955e fix(deps): update nest monorepo to v8.1.2 2021-10-25 15:14:15 +00:00
Kamil Myśliwiec
ac73124e85 chore(@nestjs) publish v8.1.2 release 2021-10-25 15:34:43 +02:00
Kamil Mysliwiec
1cb094c7b2 Merge pull request #8434 from nestjs/revert-8378-renovate/fastify-3.x
Revert "fix(deps): update dependency fastify to v3.22.1"
2021-10-25 15:30:07 +02:00
Kamil Mysliwiec
53c3a059aa Revert "fix(deps): update dependency fastify to v3.22.1" 2021-10-25 15:29:55 +02:00
Kamil Mysliwiec
d151218010 Merge pull request #8432 from nestjs/renovate/core-js-3.x
chore(deps): update dependency core-js to v3.19.0
2021-10-25 12:35:39 +02:00
Renovate Bot
1d0b0e65dc chore(deps): update dependency core-js to v3.19.0 2021-10-25 09:38:07 +00:00
Kamil Mysliwiec
5902643a71 Merge pull request #8413 from nestjs/renovate/imports-loader-3.x
chore(deps): update dependency imports-loader to v3.1.0
2021-10-25 11:33:02 +02:00
Kamil Mysliwiec
613af5c963 Merge pull request #8415 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.29
2021-10-25 11:32:56 +02:00
Kamil Mysliwiec
899fb9b1f5 Merge pull request #8416 from nestjs/renovate/ts-node-10.x
chore(deps): update dependency ts-node to v10.4.0
2021-10-25 11:32:50 +02:00
Kamil Mysliwiec
05721f43af Merge pull request #8418 from nestjs/renovate/sinon-10.x
chore(deps): update dependency @types/sinon to v10.0.5
2021-10-25 11:32:45 +02:00
Kamil Mysliwiec
dc02e98a89 Merge pull request #8419 from nestjs/renovate/lint-staged-11.x
chore(deps): update dependency lint-staged to v11.2.4
2021-10-25 11:32:40 +02:00
Kamil Mysliwiec
df4eca1399 Merge pull request #8420 from nestjs/renovate/sequelize-6.x
fix(deps): update dependency sequelize to v6.8.0
2021-10-25 11:32:03 +02:00
Kamil Mysliwiec
1aec93d03e Merge pull request #8428 from nestjs/dependabot/npm_and_yarn/ts-node-10.4.0
chore(deps-dev): bump ts-node from 10.3.1 to 10.4.0
2021-10-25 11:31:55 +02:00
Kamil Myśliwiec
e0bf2b252c Merge branch 'master' of https://github.com/nestjs/nest 2021-10-25 09:41:46 +02:00
Kamil Myśliwiec
11266b36eb fix(microservices): make empty response error more verbose #8055 2021-10-25 09:41:40 +02:00
dependabot[bot]
3ad7aaabf9 chore(deps-dev): bump ts-node from 10.3.1 to 10.4.0
Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 10.3.1 to 10.4.0.
- [Release notes](https://github.com/TypeStrong/ts-node/releases)
- [Commits](https://github.com/TypeStrong/ts-node/compare/v10.3.1...v10.4.0)

---
updated-dependencies:
- dependency-name: ts-node
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 00:24:42 +00:00
Renovate Bot
f8c423ee80 fix(deps): update dependency sequelize to v6.8.0 2021-10-24 13:45:07 +00:00
Renovate Bot
1589ff39c1 chore(deps): update dependency lint-staged to v11.2.4 2021-10-23 19:48:36 +00:00
Renovate Bot
370c8d3cc6 chore(deps): update dependency @types/sinon to v10.0.5 2021-10-23 19:46:02 +00:00
Renovate Bot
2bc6a604d1 chore(deps): update dependency ts-node to v10.4.0 2021-10-22 22:45:11 +00:00
Renovate Bot
87ff00395a chore(deps): update dependency @types/node to v14.17.29 2021-10-22 20:30:07 +00:00
Tony
ba2abaded4 Merge branch 'master' into test/sample-14-mongoose-base 2021-10-22 16:57:09 +02:00
Renovate Bot
43325c1bd4 chore(deps): update dependency imports-loader to v3.1.0 2021-10-22 12:51:06 +00:00
Kamil Mysliwiec
f31d5a6f64 Merge pull request #8397 from nestjs/renovate/pin-dependencies
chore(deps): pin dependency @types/jest to v27.0.1
2021-10-22 14:24:32 +02:00
Kamil Mysliwiec
c9c643991d Merge branch 'master' into renovate/pin-dependencies 2021-10-22 14:24:25 +02:00
Kamil Mysliwiec
5708741f75 Merge pull request #8410 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.28
2021-10-22 14:23:58 +02:00
Kamil Mysliwiec
addadd9abe Merge pull request #8411 from nestjs/renovate/nestjs-swagger-5.x
fix(deps): update dependency @nestjs/swagger to v5.1.4
2021-10-22 14:23:48 +02:00
Kamil Mysliwiec
74c0d3575f Merge pull request #7531 from nestjs/renovate/major-apollo-graphql-packages
fix(deps): update dependency apollo-server-express to v3
2021-10-22 14:23:40 +02:00
Tony
8448580ebd Update sample/14-mongoose-base/src/cats/cats.controller.spec.ts
Co-authored-by: Kamil Mysliwiec <mail@kamilmysliwiec.com>
2021-10-22 10:46:03 +02:00
Tony
c54a67bf74 Update sample/14-mongoose-base/src/cats/cats.controller.spec.ts
Co-authored-by: Kamil Mysliwiec <mail@kamilmysliwiec.com>
2021-10-22 10:45:57 +02:00
Renovate Bot
24b2007be8 fix(deps): update dependency @nestjs/swagger to v5.1.4 2021-10-22 08:15:32 +00:00
Renovate Bot
5fb192b24d chore(deps): update dependency @types/node to v14.17.28 2021-10-22 08:14:08 +00:00
Renovate Bot
4cbf9c5338 chore(deps): pin dependency @types/jest to v27.0.1 2021-10-22 07:42:37 +00:00
Kamil Myśliwiec
e2a13b8000 Merge branch 'master' of https://github.com/nestjs/nest 2021-10-22 09:35:44 +02:00
Kamil Myśliwiec
736c40e443 fix(core): log error if fastify listen failed #8404 2021-10-22 09:35:34 +02:00
Renovate Bot
9715b97932 fix(deps): update dependency apollo-server-express to v3 2021-10-22 07:26:07 +00:00
Kamil Mysliwiec
894bf0182f Merge pull request #8403 from nestjs/renovate/mongoose-6.x
fix(deps): update dependency mongoose to v6.0.12
2021-10-22 09:18:37 +02:00
Kamil Mysliwiec
61b824a2a8 Merge pull request #8401 from nestjs/renovate/ts-node-10.x
chore(deps): update dependency ts-node to v10.3.1
2021-10-22 09:18:31 +02:00
Kamil Mysliwiec
9ba9822753 Merge pull request #8400 from nestjs/renovate/imports-loader-3.x
chore(deps): update dependency imports-loader to v3.0.1
2021-10-22 09:18:25 +02:00
Kamil Mysliwiec
960335eadc Merge pull request #8399 from nestjs/renovate/nestjs-swagger-5.x
fix(deps): update dependency @nestjs/swagger to v5.1.3
2021-10-22 09:18:20 +02:00
Kamil Mysliwiec
93b803fbfd Merge pull request #8289 from nestjs/renovate/apollo-graphql-packages
fix(deps): update apollo graphql packages
2021-10-22 09:18:09 +02:00
Kamil Mysliwiec
e45fd18db5 Merge pull request #8312 from nestjs/dependabot/npm_and_yarn/apollo-server-express-3.4.0
chore(deps-dev): bump apollo-server-express from 3.3.0 to 3.4.0
2021-10-22 09:17:53 +02:00
Renovate Bot
923bfc45a8 fix(deps): update dependency mongoose to v6.0.12 2021-10-21 22:37:52 +00:00
Tony133
119794d40b test(sample-14): updateds 2021-10-21 22:58:53 +02:00
Tony133
88470dacdf test(sample-14): added unit test and other improvements 2021-10-21 21:30:27 +02:00
Renovate Bot
625510bbd2 chore(deps): update dependency ts-node to v10.3.1 2021-10-21 19:02:32 +00:00
Renovate Bot
2a4386cedf chore(deps): update dependency imports-loader to v3.0.1 2021-10-21 16:21:57 +00:00
Renovate Bot
aabd33c45a fix(deps): update dependency @nestjs/swagger to v5.1.3 2021-10-21 14:38:41 +00:00
Renovate Bot
7854ad7d80 fix(deps): update apollo graphql packages 2021-10-21 13:04:52 +00:00
Kamil Mysliwiec
2b5d0cf2b9 Merge pull request #8044 from Tony133/test/sample-07-sequelize
test(sample-07): added unit tests
2021-10-21 14:30:46 +02:00
Tony
f373c4189f Update sample/07-sequelize/src/users/users.controller.spec.ts
Co-authored-by: Kamil Mysliwiec <mail@kamilmysliwiec.com>
2021-10-21 14:01:42 +02:00
dependabot[bot]
3083a9a785 chore(deps-dev): bump apollo-server-express from 3.3.0 to 3.4.0
Bumps [apollo-server-express](https://github.com/apollographql/apollo-server/tree/HEAD/packages/apollo-server-express) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/apollographql/apollo-server/releases)
- [Changelog](https://github.com/apollographql/apollo-server/blob/main/CHANGELOG.md)
- [Commits](https://github.com/apollographql/apollo-server/commits/apollo-server-express@3.4.0/packages/apollo-server-express)

---
updated-dependencies:
- dependency-name: apollo-server-express
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-21 11:58:53 +00:00
Kamil Mysliwiec
c994964bc8 Merge pull request #8395 from nestjs/renovate/nestjs-swagger-5.x
fix(deps): update dependency @nestjs/swagger to v5.1.2
2021-10-21 13:57:21 +02:00
Kamil Mysliwiec
b6f9f8c94b Merge pull request #8032 from Tony133/test/sample--05-sql-typeorm
test(sample-05): added unit tests
2021-10-21 13:55:59 +02:00
Kamil Myśliwiec
ca05e88a85 chore(): resolve conflicts 2021-10-21 13:53:23 +02:00
Renovate Bot
1be1ce21f5 fix(deps): update dependency @nestjs/swagger to v5.1.2 2021-10-21 11:52:30 +00:00
Kamil Myśliwiec
66bf64e781 Merge branch 'renovate/nestjs-graphql-9.x' 2021-10-21 13:48:05 +02:00
Kamil Myśliwiec
7737594a20 sample(): update federation samples 2021-10-21 13:47:39 +02:00
Tony133
596b0d703b test(): improvements 2021-10-21 11:22:19 +02:00
Tony133
1110197e5b tests(): renamed userArray into usersArray 2021-10-21 11:08:25 +02:00
Tony133
b142da095b test(): improvements 2021-10-21 11:05:39 +02:00
Tony133
06fd145147 chore(): removed unused import 2021-10-21 11:01:03 +02:00
Tony
c3bf1e4347 Merge branch 'master' into test/sample-07-sequelize 2021-10-21 10:42:23 +02:00
Tony
1def23a5d0 Update sample/05-sql-typeorm/src/users/users.controller.spec.ts
Co-authored-by: Kamil Mysliwiec <mail@kamilmysliwiec.com>
2021-10-21 10:25:18 +02:00
Renovate Bot
ab0bce9d4d fix(deps): update dependency @nestjs/graphql to v9.1.1 2021-10-21 07:41:22 +00:00
Kamil Mysliwiec
2e6cea63df Merge pull request #8360 from nestjs/renovate/nest-monorepo
chore(deps): update dependency @nestjs/cli to v8.1.4
2021-10-21 09:24:24 +02:00
Kamil Mysliwiec
cc8968b18d Merge pull request #8379 from nestjs/renovate/jest-monorepo
chore(deps): update dependency jest to v27.3.1
2021-10-21 09:24:18 +02:00
Kamil Mysliwiec
bea45cb73e Merge pull request #8381 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.59.1
2021-10-21 09:24:13 +02:00
Kamil Mysliwiec
c5ce998377 Merge pull request #8389 from nestjs/renovate/mongodb-3.x
fix(deps): update dependency mongodb to v3.7.3
2021-10-21 09:24:07 +02:00
Kamil Mysliwiec
27ce01cd43 Merge pull request #8394 from nestjs/renovate/husky-7.x
chore(deps): update dependency husky to v7.0.4
2021-10-21 09:23:29 +02:00
Renovate Bot
0f20512d79 chore(deps): update dependency husky to v7.0.4 2021-10-21 04:06:34 +00:00
Renovate Bot
b8cd3aada0 chore(deps): update dependency webpack to v5.59.1 2021-10-20 23:32:42 +00:00
Renovate Bot
291dc956e0 fix(deps): update dependency mongodb to v3.7.3 2021-10-20 17:56:16 +00:00
Renovate Bot
5c41909e94 chore(deps): update dependency jest to v27.3.1 2021-10-20 15:37:16 +00:00
Renovate Bot
052b6eedce chore(deps): update dependency @nestjs/cli to v8.1.4 2021-10-20 12:35:06 +00:00
Kamil Mysliwiec
d434b3f255 Merge pull request #8387 from nestjs/renovate/nestjs-mongoose-9.x
fix(deps): update dependency @nestjs/mongoose to v9.0.1
2021-10-20 12:40:37 +02:00
Renovate Bot
f67d012b33 fix(deps): update dependency @nestjs/mongoose to v9.0.1 2021-10-20 09:25:13 +00:00
Tony
347562d1d8 Merge branch 'master' into test/sample-07-sequelize 2021-10-20 11:22:58 +02:00
Kamil Mysliwiec
6390c54eac Merge pull request #8380 from nestjs/renovate/fast-json-stringify-2.x
fix(deps): update dependency fast-json-stringify to v2.7.11
2021-10-20 10:38:07 +02:00
Kamil Mysliwiec
15a58901d6 Merge pull request #8378 from nestjs/renovate/fastify-3.x
fix(deps): update dependency fastify to v3.22.1
2021-10-20 10:37:57 +02:00
Kamil Mysliwiec
e855ad6c97 Merge pull request #8376 from nestjs/renovate/nodemon-2.x
chore(deps): update dependency nodemon to v2.0.14
2021-10-20 10:37:49 +02:00
Kamil Mysliwiec
9eb695cf81 Merge pull request #8375 from nestjs/renovate/socket.io-packages
fix(deps): update socket.io packages
2021-10-20 10:37:42 +02:00
Kamil Mysliwiec
35b19f3794 Merge pull request #8374 from nestjs/renovate/nestjs-swagger-5.x
fix(deps): update dependency @nestjs/swagger to v5.1.1
2021-10-20 10:37:36 +02:00
Kamil Mysliwiec
2a9a984e8c Merge pull request #8373 from nestjs/renovate/nestjs-bull-0.x
fix(deps): update dependency @nestjs/bull to v0.4.2
2021-10-20 10:37:27 +02:00
Kamil Mysliwiec
3da5b45cf6 Merge pull request #8372 from nestjs/renovate/mysql-8.x
chore(deps): update mysql docker tag to v8.0.27
2021-10-20 10:37:22 +02:00
Kamil Mysliwiec
95c974cd07 Merge pull request #8371 from nestjs/renovate/webpack-cli-4.x
chore(deps): update dependency webpack-cli to v4.9.1
2021-10-20 10:37:17 +02:00
Kamil Mysliwiec
621fb133fa Merge pull request #8370 from nestjs/renovate/nestjs-schematics-8.x
chore(deps): update dependency @nestjs/schematics to v8.0.4
2021-10-20 10:37:12 +02:00
Kamil Mysliwiec
8385b254ce Merge pull request #8368 from nestjs/renovate/grpc-proto-loader-0.x
chore(deps): update dependency @grpc/proto-loader to v0.6.6
2021-10-20 10:36:28 +02:00
Kamil Mysliwiec
04a4f0029d Merge pull request #8384 from micalevisk/perf/short-circuit-on-instantiateClass
refactor(core): avoid running useless instance wrapper's checks
2021-10-20 08:41:23 +02:00
Micael Levi (lab)
80a05dcce7 refactor(core): avoid running useless instance wrapper checks
Leveraging on short-circuit evaluation to avoid running useless checks
that might make `Injector#instantiateClass` unnecessary slow
2021-10-19 23:48:43 -04:00
Renovate Bot
2a773885e7 fix(deps): update dependency fast-json-stringify to v2.7.11 2021-10-19 21:10:56 +00:00
Renovate Bot
f6d09b1720 fix(deps): update dependency fastify to v3.22.1 2021-10-19 18:03:36 +00:00
Tony133
c6d271ab7f chore(): improvement 2021-10-19 18:24:13 +02:00
Renovate Bot
c13a49e9f8 chore(deps): update dependency nodemon to v2.0.14 2021-10-19 15:46:22 +00:00
Renovate Bot
555fff6d84 fix(deps): update dependency @nestjs/swagger to v5.1.1 2021-10-19 14:58:11 +00:00
Renovate Bot
56fa3d8d5e fix(deps): update dependency @nestjs/bull to v0.4.2 2021-10-19 13:58:15 +00:00
Renovate Bot
1f5b466721 chore(deps): update mysql docker tag to v8.0.27 2021-10-19 13:56:43 +00:00
Renovate Bot
2c55fbe62c fix(deps): update socket.io packages 2021-10-19 13:10:30 +00:00
Renovate Bot
aa4dbfe400 chore(deps): update dependency webpack-cli to v4.9.1 2021-10-19 12:31:29 +00:00
Renovate Bot
fbd7c3edfa chore(deps): update dependency @nestjs/schematics to v8.0.4 2021-10-19 12:29:55 +00:00
Sebastian Schmid
25dbb330cd Alligned gRPC ChannelOptions code in server and client.
Removed GRPC_DEFAULT_MAX_RECEIVE_MESSAGE_LENGTH and GRPC_DEFAULT_MAX_SEND_MESSAGE_LENGTH constants. This default values are already the same in the underlying gRPC library. If the gRPC team decides to change that values in the future, nestjs should adopt the new values automatically.
2021-10-19 10:10:45 +02:00
Renovate Bot
9c175c408c chore(deps): update dependency @grpc/proto-loader to v0.6.6 2021-10-19 07:58:33 +00:00
Kamil Mysliwiec
8759c6ba20 Merge pull request #8362 from nestjs/renovate/codechecks-client-0.x
chore(deps): update dependency @codechecks/client to v0.1.12
2021-10-19 08:52:21 +02:00
Sebastian Schmid
e88e310731 cleanup 2021-10-18 23:48:00 +02:00
Sebastian Schmid
5ac3637dee The GrpcOptions attribute "channelOptions" was not used anymore (never read in the code). Therefore, declaring those ChannelOptions had no effect anymore and there was no way to configure specific gRPC settings & limits.
Also extended ChannelOptions with grpc-node.max_session_memory which is required when sending big messages (see https://github.com/grpc/grpc-node/pull/1666).

Ensured backward compatibility by including size limits like grpc.max_send_message_length to the ChannelOptions
2021-10-18 23:37:33 +02:00
Sebastian Schmid
a96ceb440f Merge pull request #1 from nestjs/master
Sync with master
2021-10-18 23:00:29 +02:00
Renovate Bot
5c0902f2d5 chore(deps): update dependency @codechecks/client to v0.1.12 2021-10-18 18:46:29 +00:00
Tony
ae433f0daa Update sample/07-sequelize/package.json
Co-authored-by: Nidin Pereira <npereira@justclean.com>
2021-10-18 16:41:57 +02:00
Tony
de8d95d861 Update sample/07-sequelize/src/users/users.module.ts
Co-authored-by: Kamil Mysliwiec <mail@kamilmysliwiec.com>
2021-10-18 15:47:10 +02:00
Kamil Mysliwiec
628d976151 Merge pull request #8036 from Tony133/test/sample-06-mongoose
test(sample-06): added unit tests
2021-10-18 12:24:47 +02:00
Tony
3ba20525b0 Merge branch 'master' into test/sample-07-sequelize 2021-10-18 12:20:23 +02:00
Tony
c85d84d9e6 Merge branch 'master' into test/sample--05-sql-typeorm 2021-10-18 12:17:43 +02:00
Tony
220905e9ee Merge branch 'master' into test/sample-06-mongoose 2021-10-18 12:16:38 +02:00
Kamil Mysliwiec
20967866da Merge pull request #7666 from nestjs/renovate/mysql-8.x
chore(deps): update mysql docker tag
2021-10-18 11:10:56 +02:00
Kamil Mysliwiec
969778825c Merge pull request #8349 from nestjs/renovate/ts-jest-27.x
chore(deps): update dependency ts-jest to v27.0.7
2021-10-18 09:48:44 +02:00
Kamil Mysliwiec
baba936dd5 Merge pull request #8346 from nestjs/renovate/cli-color-2.x
fix(deps): update dependency cli-color to v2.0.1
2021-10-18 09:48:33 +02:00
Kamil Mysliwiec
6a37bddebe Merge pull request #8345 from nestjs/renovate/mysql2-2.x
fix(deps): update dependency mysql2 to v2.3.2
2021-10-18 09:48:27 +02:00
Kamil Mysliwiec
f2b56256d8 Merge pull request #8344 from nestjs/renovate/mocha-9.x
chore(deps): update dependency mocha to v9.1.3
2021-10-18 09:48:22 +02:00
Kamil Mysliwiec
c505080a3f Merge pull request #8331 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.27
2021-10-18 09:48:17 +02:00
Kamil Mysliwiec
dc0bb8d673 Merge pull request #8329 from nestjs/renovate/light-my-request-4.x
fix(deps): update dependency light-my-request to v4.6.0
2021-10-18 09:48:10 +02:00
Kamil Mysliwiec
8426f2c2ac Merge pull request #8328 from nestjs/renovate/socket.io-packages
fix(deps): update socket.io packages
2021-10-18 09:48:03 +02:00
Kamil Mysliwiec
8f2afeb0bb Merge pull request #8327 from nestjs/renovate/engine.io-client-6.x
chore(deps): update dependency engine.io-client to v6.0.2
2021-10-18 09:47:58 +02:00
Kamil Mysliwiec
a285be8047 Merge pull request #8319 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v8.1.1
2021-10-18 09:47:52 +02:00
Kamil Mysliwiec
9dcdfb7cc2 Merge pull request #8351 from fishmandev/patch-1
docs(common): fix a typo in CONTRIBUTING.md
2021-10-18 09:21:27 +02:00
Dmitriy Fishman
9e25c55b21 Update CONTRIBUTING.md 2021-10-17 17:56:08 +03:00
Renovate Bot
2170ea25cb chore(deps): update dependency ts-jest to v27.0.7 2021-10-16 12:34:10 +00:00
Renovate Bot
958bcaaa49 fix(deps): update dependency mysql2 to v2.3.2 2021-10-16 08:50:12 +00:00
Renovate Bot
ec1c35fb77 fix(deps): update socket.io packages 2021-10-16 00:45:50 +00:00
Renovate Bot
c19bd5f502 chore(deps): update dependency engine.io-client to v6.0.2 2021-10-16 00:42:01 +00:00
Renovate Bot
697fd2cf66 fix(deps): update dependency cli-color to v2.0.1 2021-10-15 18:18:00 +00:00
Renovate Bot
da4a8a82d2 fix(deps): update nest monorepo to v8.1.1 2021-10-15 11:07:11 +00:00
Renovate Bot
a4234bc252 fix(deps): update dependency light-my-request to v4.6.0 2021-10-15 09:33:10 +00:00
Renovate Bot
7014fcd05c chore(deps): update dependency mocha to v9.1.3 2021-10-15 09:29:35 +00:00
Renovate Bot
4311517e2a chore(deps): update dependency @types/node to v14.17.27 2021-10-15 09:23:37 +00:00
Tony
dd8e6977e8 test(): update users controller 2021-10-15 10:51:58 +02:00
Tony
9421ff1e3c Update sample/07-sequelize/src/users/users.controller.spec.ts
Co-authored-by: Jay McDoniel <jmcdo29@gmail.com>
2021-10-15 10:40:03 +02:00
Kamil Mysliwiec
b37f9b2c94 Merge pull request #8332 from nestjs/renovate/ts-jest-27.x
chore(deps): update dependency ts-jest to v27.0.6
2021-10-15 10:27:21 +02:00
Kamil Mysliwiec
e699e4540c Merge pull request #8333 from nestjs/renovate/mongoose-6.x
fix(deps): update dependency mongoose to v6.0.11
2021-10-15 10:27:14 +02:00
Kamil Mysliwiec
459d7ccabc Merge pull request #8340 from soudai-s/feature/modify-graphql-federation-sample-straightforwardly
Feature/modify graphql federation sample straightforwardly
2021-10-15 09:13:27 +02:00
soudai-s
213d066b2e sample(31): modify queries 2021-10-15 13:01:28 +09:00
soudai-s
572fcc462d sample(31): align method naming with its behavior 2021-10-15 13:01:24 +09:00
Renovate Bot
60556a775a fix(deps): update dependency mongoose to v6.0.11 2021-10-14 23:58:00 +00:00
Renovate Bot
834b143272 chore(deps): update dependency ts-jest to v27.0.6 2021-10-14 22:40:31 +00:00
Tony133
26929c8bba tests(): improvement 2021-10-14 23:21:08 +02:00
Tony
9711141149 Merge branch 'master' into test/sample-07-sequelize 2021-10-14 22:20:24 +02:00
Tony
4b6eaae07d Update sample/05-sql-typeorm/src/users/users.controller.spec.ts
Co-authored-by: Jay McDoniel <jmcdo29@gmail.com>
2021-10-14 11:47:23 +02:00
Tony
e1566d9d92 Merge branch 'master' into test/sample-06-mongoose 2021-10-14 11:42:36 +02:00
Tony
9bf05d4b9d Merge branch 'master' into test/sample--05-sql-typeorm 2021-10-14 11:40:36 +02:00
Kamil Mysliwiec
6239dd32fe Merge pull request #8313 from nestjs/renovate/bull-3.x
fix(deps): update dependency bull to v3.29.3
2021-10-14 09:55:32 +02:00
Kamil Mysliwiec
345033e376 Merge pull request #8315 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.58.2
2021-10-14 09:55:26 +02:00
Kamil Mysliwiec
96dfd1e976 Merge pull request #8318 from nestjs/renovate/fastify-static-4.x
chore(deps): update dependency fastify-static to v4.4.2
2021-10-14 09:55:22 +02:00
Kamil Mysliwiec
9709c6dbde Merge pull request #8321 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.26
2021-10-14 09:55:13 +02:00
Kamil Mysliwiec
decbc97258 Merge pull request #8322 from nestjs/renovate/grpc-grpc-js-1.x
fix(deps): update dependency @grpc/grpc-js to v1.4.1
2021-10-14 09:55:08 +02:00
Kamil Myśliwiec
4293388a47 chore(@nestjs) publish v8.1.1 release 2021-10-14 09:54:07 +02:00
Kamil Myśliwiec
188da6b5eb Merge branch 'master' of https://github.com/nestjs/nest 2021-10-14 09:50:52 +02:00
Kamil Myśliwiec
7e9de1982a chore(): revert typescript to 4.3 #8320 2021-10-14 09:50:44 +02:00
Renovate Bot
1ad836ed66 chore(deps): update dependency @types/node to v14.17.26 2021-10-13 22:42:53 +00:00
Renovate Bot
ccfcc19fbb fix(deps): update dependency @grpc/grpc-js to v1.4.1 2021-10-13 19:09:57 +00:00
Renovate Bot
864159fadd chore(deps): update mysql docker tag 2021-10-13 17:21:41 +00:00
Renovate Bot
0b4c8f82bd chore(deps): update dependency webpack to v5.58.2 2021-10-13 14:07:49 +00:00
Renovate Bot
b0114703e8 chore(deps): update dependency fastify-static to v4.4.2 2021-10-13 14:06:34 +00:00
Kamil Mysliwiec
2af3dd22d5 Merge pull request #8303 from nestjs/renovate/core-js-3.x
chore(deps): update dependency core-js to v3.18.3
2021-10-13 15:03:20 +02:00
Kamil Mysliwiec
3adf58888a Merge pull request #8317 from mohan-murali/master
docs(contributing): fixed some grammatical mistakes
2021-10-13 15:03:08 +02:00
Kamil Mysliwiec
bdca9f574c Update CONTRIBUTING.md 2021-10-13 15:03:00 +02:00
mohan-murali
5e6790e1e8 docs(contributing): fixed some grammatical mistakes 2021-10-13 18:22:26 +05:30
Tony
7d849c96a6 Merge branch 'master' into test/sample--05-sql-typeorm 2021-10-13 14:51:16 +02:00
Tony
621809bf0f Merge branch 'master' into test/sample-07-sequelize 2021-10-13 14:50:47 +02:00
Kamil Mysliwiec
40e3ea31a0 Merge pull request #8300 from nestjs/renovate/axios-0.x
fix(deps): update dependency axios to v0.23.0
2021-10-13 14:47:09 +02:00
Kamil Myśliwiec
92758003ab chore(@nestjs) publish v8.1.0 release 2021-10-13 14:37:32 +02:00
Kamil Mysliwiec
447499a3c9 Merge pull request #8039 from Zclhlmgqzc/fix-middleware-globalPrefixOptions-exclude
fix: middleware with globalPrefixOptions exclude
2021-10-13 14:35:29 +02:00
Kamil Mysliwiec
3db185118a Merge pull request #8286 from nestjs/dependabot/npm_and_yarn/commitlint/cli-13.2.1
chore(deps-dev): bump @commitlint/cli from 13.2.0 to 13.2.1
2021-10-13 14:35:22 +02:00
Kamil Myśliwiec
98858b2b9a Merge branch 'aboqasem-expose-validation-pipe-validate' 2021-10-13 14:34:43 +02:00
Kamil Myśliwiec
673fd1fec3 refactor(common): move validate under the is primitive (validation pipe) 2021-10-13 14:34:35 +02:00
Kamil Myśliwiec
42c89e0c40 Merge branch 'expose-validation-pipe-validate' of https://github.com/aboqasem/nest into aboqasem-expose-validation-pipe-validate 2021-10-13 14:33:52 +02:00
Kamil Myśliwiec
e18dd2ef45 Merge branch 'jmcdo29-feat/debug-logs' 2021-10-13 14:33:10 +02:00
Kamil Myśliwiec
04f4cdb01b refactor(core): minor tweaks 2021-10-13 14:32:54 +02:00
Kamil Myśliwiec
b8fb74e769 Merge branch 'feat/debug-logs' of https://github.com/jmcdo29/nest into jmcdo29-feat/debug-logs 2021-10-13 14:23:44 +02:00
Kamil Myśliwiec
45262b0529 Merge branch 'master' of https://github.com/nestjs/nest 2021-10-13 14:23:27 +02:00
Kamil Myśliwiec
5f234eb1d6 Merge branch 'Ayzrian-ws-add-logging-for-gateway-mounting' 2021-10-13 14:23:20 +02:00
Kamil Myśliwiec
94fc5f6e32 fix(websockets): fix subscription logs 2021-10-13 14:22:44 +02:00
Mohammad Al Zouabi
77be992b2b feat(common): provide a validate protected method in ValidationPipe to enable overriding 2021-10-13 20:12:12 +08:00
Kamil Mysliwiec
f79037907d Merge pull request #8293 from nestjs/dependabot/npm_and_yarn/apollo-server-core-3.4.0
chore(deps-dev): bump apollo-server-core from 3.3.0 to 3.4.0
2021-10-13 14:11:13 +02:00
Kamil Mysliwiec
6399dfdcb4 Merge pull request #8310 from nestjs/dependabot/npm_and_yarn/typescript-4.4.4
chore(deps-dev): bump typescript from 4.4.3 to 4.4.4
2021-10-13 14:11:03 +02:00
Kamil Mysliwiec
b577f3e5ab Merge pull request #8309 from nestjs/dependabot/npm_and_yarn/types/node-16.10.5
chore(deps-dev): bump @types/node from 16.10.1 to 16.10.5
2021-10-13 14:10:59 +02:00
Kamil Mysliwiec
ec520feba9 Merge pull request #8308 from nestjs/dependabot/npm_and_yarn/core-js-3.18.3
chore(deps-dev): bump core-js from 3.18.2 to 3.18.3
2021-10-13 14:10:54 +02:00
Kamil Mysliwiec
b02700c97f Merge pull request #8305 from nestjs/dependabot/npm_and_yarn/fastify-static-4.4.2
chore(deps-dev): bump fastify-static from 4.4.0 to 4.4.2
2021-10-13 14:10:48 +02:00
Kamil Mysliwiec
89a5a4e8d3 Merge pull request #8311 from nestjs/dependabot/npm_and_yarn/axios-0.23.0
chore(deps): bump axios from 0.22.0 to 0.23.0
2021-10-13 14:10:36 +02:00
Kamil Myśliwiec
3089a6672b Merge branch 'ws-add-logging-for-gateway-mounting' of https://github.com/Ayzrian/nest into Ayzrian-ws-add-logging-for-gateway-mounting 2021-10-13 14:08:01 +02:00
Kamil Mysliwiec
e2fba4a8e1 Merge pull request #7962 from nestjs/renovate/nestjs-graphql-9.x
fix(deps): update dependency @nestjs/graphql to v9.0.6
2021-10-13 14:07:14 +02:00
Kamil Mysliwiec
affe18febe Merge pull request #8128 from micalevisk/feat/issue-8050
feat(core,common): support global default version
2021-10-13 14:02:58 +02:00
Kamil Mysliwiec
9c64dca7d7 Merge pull request #8253 from Ayzrian/microservices-fix-grpc-package-name
fix(microservices): use root package when packageName is not defined
2021-10-13 13:59:47 +02:00
Kamil Mysliwiec
87853c5f5c Merge pull request #8231 from Ayzrian/microservices-expose-interceptors-field
feature(microservices): expose interceptors option for grpc
2021-10-13 13:59:23 +02:00
Kamil Mysliwiec
9a919f067b Merge pull request #8144 from nestjs/feat/msvc-message-builder
feat(microservices): add message builders
2021-10-13 13:59:01 +02:00
Tony
066da15068 Merge branch 'master' into test/sample-06-mongoose 2021-10-13 10:24:50 +02:00
Renovate Bot
e0563a6403 fix(deps): update dependency bull to v3.29.3 2021-10-13 08:13:09 +00:00
Renovate Bot
5dc0ebdd7e chore(deps): update dependency core-js to v3.18.3 2021-10-13 07:59:38 +00:00
Renovate Bot
c76a9370c9 fix(deps): update dependency axios to v0.23.0 2021-10-13 07:07:46 +00:00
dependabot[bot]
5c95c16f6f chore(deps-dev): bump @commitlint/cli from 13.2.0 to 13.2.1
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint) from 13.2.0 to 13.2.1.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/compare/v13.2.0...v13.2.1)

---
updated-dependencies:
- dependency-name: "@commitlint/cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-13 06:54:14 +00:00
dependabot[bot]
a352fca952 chore(deps): bump axios from 0.22.0 to 0.23.0
Bumps [axios](https://github.com/axios/axios) from 0.22.0 to 0.23.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.22.0...v0.23.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-13 06:54:08 +00:00
dependabot[bot]
7c90dc0e34 chore(deps-dev): bump apollo-server-core from 3.3.0 to 3.4.0
Bumps [apollo-server-core](https://github.com/apollographql/apollo-server/tree/HEAD/packages/apollo-server-core) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/apollographql/apollo-server/releases)
- [Changelog](https://github.com/apollographql/apollo-server/blob/main/CHANGELOG.md)
- [Commits](https://github.com/apollographql/apollo-server/commits/apollo-server-core@3.4.0/packages/apollo-server-core)

---
updated-dependencies:
- dependency-name: apollo-server-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-13 06:53:44 +00:00
dependabot[bot]
bdce2e1c4d chore(deps-dev): bump typescript from 4.4.3 to 4.4.4
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.4.3 to 4.4.4.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.4.3...v4.4.4)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-13 06:52:19 +00:00
dependabot[bot]
958e61f6f1 chore(deps-dev): bump @types/node from 16.10.1 to 16.10.5
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 16.10.1 to 16.10.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-13 06:51:28 +00:00
dependabot[bot]
3ad982d696 chore(deps-dev): bump core-js from 3.18.2 to 3.18.3
Bumps [core-js](https://github.com/zloirock/core-js) from 3.18.2 to 3.18.3.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.18.2...v3.18.3)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-13 06:51:22 +00:00
dependabot[bot]
3ab96e694c chore(deps-dev): bump fastify-static from 4.4.0 to 4.4.2
Bumps [fastify-static](https://github.com/fastify/fastify-static) from 4.4.0 to 4.4.2.
- [Release notes](https://github.com/fastify/fastify-static/releases)
- [Commits](https://github.com/fastify/fastify-static/compare/v4.4.0...v4.4.2)

---
updated-dependencies:
- dependency-name: fastify-static
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-13 06:50:56 +00:00
Kamil Mysliwiec
c619067c86 Merge pull request #8267 from nestjs/renovate/mongoose-6.x
fix(deps): update dependency mongoose to v6.0.10
2021-10-13 08:49:41 +02:00
Kamil Mysliwiec
4a00b83190 Merge pull request #8290 from nestjs/renovate/fastify-static-4.x
fix(deps): update dependency fastify-static to v4.4.2
2021-10-13 08:49:23 +02:00
Kamil Mysliwiec
244cbe2e4f Merge pull request #8291 from nestjs/renovate/ts-node-10.x
chore(deps): update dependency ts-node to v10.3.0
2021-10-13 08:49:18 +02:00
Kamil Mysliwiec
15a9489b58 Merge pull request #8297 from nestjs/renovate/eslint-plugin-import-2.x
chore(deps): update dependency eslint-plugin-import to v2.25.2
2021-10-13 08:49:05 +02:00
Kamil Mysliwiec
7fcdeeca4a Merge pull request #8301 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.22
2021-10-13 08:48:46 +02:00
Kamil Mysliwiec
6630eebf7f Merge pull request #8304 from nestjs/renovate/grpc-grpc-js-1.x
fix(deps): update dependency @grpc/grpc-js to v1.3.8
2021-10-13 08:48:32 +02:00
Renovate Bot
ea32c88488 chore(deps): update dependency eslint-plugin-import to v2.25.2 2021-10-13 01:25:42 +00:00
Renovate Bot
4d7560c3d6 fix(deps): update dependency @grpc/grpc-js to v1.3.8 2021-10-12 22:31:46 +00:00
Nazarii Romankiv
81e1e21289 refactor(microservices): applied comment suggestion 2021-10-12 23:09:17 +03:00
Renovate Bot
7eb2eb44cd fix(deps): update dependency fastify-static to v4.4.2 2021-10-12 19:28:16 +00:00
Renovate Bot
c5c1eb3b97 chore(deps): update dependency @types/node to v14.17.22 2021-10-12 18:35:57 +00:00
Renovate Bot
4918bbeee4 chore(deps): update dependency ts-node to v10.3.0 2021-10-12 14:47:34 +00:00
Renovate Bot
e8b0b7574d fix(deps): update dependency mongoose to v6.0.10 2021-10-12 12:25:50 +00:00
Kamil Mysliwiec
6bd3a9c0ae Merge pull request #8281 from nestjs/renovate/sequelize-typescript-2.x
fix(deps): update dependency sequelize-typescript to v2.1.1
2021-10-12 13:41:30 +02:00
Kamil Mysliwiec
7b1705543b Merge pull request #8255 from nestjs/renovate/fastify-multipart-5.x
chore(deps): update dependency fastify-multipart to v5.0.2
2021-10-12 13:41:12 +02:00
Renovate Bot
858a2c72bb fix(deps): update dependency @nestjs/graphql to v9.0.6 2021-10-11 14:54:42 +00:00
Renovate Bot
8d02c90cfb fix(deps): update dependency sequelize-typescript to v2.1.1 2021-10-11 09:37:51 +00:00
Renovate Bot
b06de50b1d chore(deps): update dependency fastify-multipart to v5.0.2 2021-10-11 07:52:26 +00:00
Kamil Mysliwiec
aca45139a6 Merge pull request #8246 from nestjs/renovate/fastify-static-4.x
fix(deps): update dependency fastify-static to v4.4.0
2021-10-11 09:08:04 +02:00
Kamil Mysliwiec
efbc7b9412 Merge pull request #8260 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.58.1
2021-10-11 09:07:58 +02:00
Kamil Mysliwiec
8646a72be0 Merge pull request #8288 from nestjs/revert-8262-renovate/apollo-graphql-packages
Revert "fix(deps): update apollo graphql packages"
2021-10-11 09:07:52 +02:00
Kamil Mysliwiec
591bd8b240 Revert "fix(deps): update apollo graphql packages" 2021-10-11 09:07:42 +02:00
Kamil Mysliwiec
642b3ae62d Merge pull request #8262 from nestjs/renovate/apollo-graphql-packages
fix(deps): update apollo graphql packages
2021-10-11 09:07:36 +02:00
Kamil Mysliwiec
a43d07b0f5 Merge pull request #8266 from nestjs/renovate/jest-monorepo
chore(deps): update dependency jest to v27.2.5
2021-10-11 09:07:31 +02:00
Kamil Mysliwiec
dd55ab15fd Merge pull request #8268 from nestjs/renovate/engine.io-client-6.x
chore(deps): update dependency engine.io-client to v6
2021-10-11 09:07:18 +02:00
Kamil Mysliwiec
74366a9c86 Merge pull request #8269 from nestjs/renovate/lint-staged-11.x
chore(deps): update dependency lint-staged to v11.2.3
2021-10-11 09:07:12 +02:00
Kamil Mysliwiec
c000f64ad8 Merge pull request #8276 from nestjs/renovate/sequelize-6.x
fix(deps): update dependency sequelize to v6.7.0
2021-10-11 09:06:35 +02:00
Kamil Mysliwiec
25979c27c0 Merge pull request #8277 from matheusinfo/style/standardization-tests-name
style():  rename tests name to follow global style
2021-10-11 09:04:51 +02:00
Kamil Mysliwiec
365d34255b Merge pull request #8278 from jmcdo29/fix/flush-logs-on-package-resolve-error
fix: flush logs on package resolution failure
2021-10-11 09:04:28 +02:00
Kamil Myśliwiec
df00a0a181 Merge branch 'master' of https://github.com/nestjs/nest 2021-10-11 08:58:15 +02:00
Kamil Myśliwiec
ba6d455b3c sample(20-cache): fix http cache interceptor 2021-10-11 08:58:06 +02:00
Renovate Bot
91c58e8abb chore(deps): update dependency lint-staged to v11.2.3 2021-10-10 18:06:11 +00:00
Jay McDoniel
5e2a8be2a5 fix: flush logs on package resolution failure 2021-10-09 16:54:06 -07:00
Jay McDoniel
99a884a64e fix: update method names and fast exit if not debug mode 2021-10-09 16:51:47 -07:00
Jay McDoniel
b208b74f40 chore: add type-cast to token as we know it will be function 2021-10-09 16:51:47 -07:00
Jay McDoniel
9064a29081 chore: remove logger change in cats sample 2021-10-09 16:51:46 -07:00
Jay McDoniel
cdfee483ee fix: use .name instead of a toString split for class token names 2021-10-09 16:51:46 -07:00
Jay McDoniel
039928983f refactor: remove InjectorLogger as it wouldn't allow for logger overrides 2021-10-09 16:51:45 -07:00
Jay McDoniel
e1392a892d chore: fix up prepare file 2021-10-09 16:51:45 -07:00
Jay McDoniel
9a15936e4c chore: delete needless file 2021-10-09 16:51:45 -07:00
Jay McDoniel
f673a221b3 refactor: use isFunction over typeof 2021-10-09 16:51:44 -07:00
Jay McDoniel
daa39dbe68 feat: better way to track complex token 2021-10-09 16:51:44 -07:00
Jay McDoniel
3b617962dc feat: refactor the logs to be more consolidated and have color 2021-10-09 16:51:44 -07:00
Jay McDoniel
8a1e89e637 feat: change DEBUG to NEST_DEBUG 2021-10-09 16:51:43 -07:00
Jay McDoniel
3f51facdc2 fix(core): make the logs work for the tests
I believe most if not all of these failures stem from creating
the module and inquirer objects manually. If i'm wrong about that
let me know and I can update the code accordingly.
2021-10-09 16:51:43 -07:00
Jay McDoniel
3d6d17c618 fix: put back an accidentally removed line 2021-10-09 16:51:42 -07:00
Jay McDoniel
1809667800 feat(core): add return to injector logger which fixes undefined log 2021-10-09 16:51:42 -07:00
Jay McDoniel
3a465aa2c3 feat: finish up the resolution logs 2021-10-09 16:51:42 -07:00
Jay McDoniel
0e6828cc81 feat(core): add new logger for injector logging 2021-10-09 16:51:41 -07:00
Matheus Andrade
282f774d6b style(): rename tests name to follow global style
Some initital tests name used "Should" instead "should", so i rename them
2021-10-09 18:36:52 -03:00
Renovate Bot
9cb166852c fix(deps): update dependency sequelize to v6.7.0 2021-10-09 20:17:34 +00:00
Nazarii Romankiv
1cc573bc74 refactor(microservices): make interceptors optional 2021-10-09 20:45:36 +03:00
Renovate Bot
7942cb5bc5 chore(deps): update dependency engine.io-client to v6 2021-10-08 17:53:05 +00:00
Renovate Bot
680f6fe3cd chore(deps): update dependency webpack to v5.58.1 2021-10-08 17:51:42 +00:00
Renovate Bot
bc4df64c7c chore(deps): update dependency jest to v27.2.5 2021-10-08 16:54:20 +00:00
Kamil Mysliwiec
85e51e240c Merge pull request #8257 from nestjs/renovate/pin-dependencies
fix(deps): pin dependency graphql-subscriptions to 1.2.1
2021-10-08 13:56:28 +02:00
Renovate Bot
e619bc251a fix(deps): update apollo graphql packages 2021-10-07 23:50:25 +00:00
Nazarii Romankiv
8588c3e02a refactor(microservices): inline interceptor inteface 2021-10-07 20:06:12 +03:00
Tony
87d5465507 Update sample/05-sql-typeorm/src/users/users.service.spec.ts 2021-10-07 15:34:46 +02:00
Tony
3a6c4b3872 Update sample/05-sql-typeorm/src/users/users.service.spec.ts 2021-10-07 15:34:37 +02:00
Renovate Bot
9608e8130d fix(deps): pin dependency graphql-subscriptions to 1.2.1 2021-10-07 12:50:12 +00:00
Tony
309b2b5148 sample(06-mongoose): Remove interface Cat 2021-10-07 14:38:37 +02:00
Kamil Myśliwiec
f104bf6032 chore(): update to typescript 4.4.3 2021-10-07 14:27:22 +02:00
Kamil Myśliwiec
e4b91cbf6c chore(): upgrade to mysql2 2021-10-07 14:21:46 +02:00
Kamil Myśliwiec
30f1c3e72b chore(): update to apollo v3 2021-10-07 14:07:43 +02:00
Renovate Bot
e0a487b6c9 fix(deps): update dependency fastify-static to v4.4.0 2021-10-07 11:12:05 +00:00
Tony
353e698971 Update sample/06-mongoose/src/cats/cats.service.spec.ts 2021-10-07 11:40:39 +02:00
Nazarii Romankiv
1c91bd6642 test(microservices): cover edge case with unit tests 2021-10-07 10:03:26 +03:00
Kamil Mysliwiec
2b1e5e924e Update sample/06-mongoose/src/cats/cats.service.ts 2021-10-07 09:02:57 +02:00
Kamil Mysliwiec
fc8e4893f2 Update sample/06-mongoose/src/cats/cats.controller.spec.ts 2021-10-07 09:02:00 +02:00
Kamil Mysliwiec
4e318997e1 Merge pull request #8037 from Tony133/test/sample-13-unit-test
tests(sample-13): added unit tests
2021-10-07 09:01:09 +02:00
Kamil Mysliwiec
60e18f547a Update sample/13-mongo-typeorm/src/photo/photo.controller.spec.ts 2021-10-07 09:00:54 +02:00
Nazarii Romankiv
0bd2365711 fix(microservices): use root package when packageName is not defined 2021-10-07 09:59:27 +03:00
Kamil Mysliwiec
0a372c2332 Merge pull request #8250 from nestjs/renovate/rxjs-7.x
fix(deps): update dependency rxjs to v7.4.0
2021-10-07 08:59:18 +02:00
Kamil Mysliwiec
b9396eea0a Merge pull request #8249 from nestjs/renovate/webpack-cli-4.x
chore(deps): update dependency webpack-cli to v4.9.0
2021-10-07 08:59:11 +02:00
Kamil Mysliwiec
bae1182743 Merge pull request #8248 from nestjs/renovate/babel-monorepo
chore(deps): update babel monorepo to v7.15.8
2021-10-07 08:59:07 +02:00
Kamil Mysliwiec
89f74648da Merge pull request #8229 from nestjs/renovate/graphql-15.x
fix(deps): update dependency graphql to v15.6.1
2021-10-07 08:58:55 +02:00
Kamil Mysliwiec
ef9d1beb31 Merge pull request #8228 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v8.0.11
2021-10-07 08:57:37 +02:00
Renovate Bot
d8d736a1ba fix(deps): update dependency rxjs to v7.4.0 2021-10-07 00:00:44 +00:00
Renovate Bot
2751bddc84 chore(deps): update dependency webpack-cli to v4.9.0 2021-10-06 21:56:22 +00:00
Renovate Bot
e716c9d50b chore(deps): update babel monorepo to v7.15.8 2021-10-06 21:53:59 +00:00
Tony
6056283d20 Update sample/05-sql-typeorm/src/users/users.controller.spec.ts
Co-authored-by: Jay McDoniel <jmcdo29@gmail.com>
2021-10-06 23:36:57 +02:00
Nazarii Romankiv
1d2d10f55f refactor(microservices): inline interceptor type from GRPC. 2021-10-06 21:53:31 +03:00
Tony
e7942c9868 Update sample/06-mongoose/src/cats/cats.controller.spec.ts
Co-authored-by: Jay McDoniel <jmcdo29@gmail.com>
2021-10-06 17:45:59 +02:00
Renovate Bot
75e7c64f5b fix(deps): update nest monorepo to v8.0.11 2021-10-06 11:55:59 +00:00
Kamil Myśliwiec
574a517efe chore(@nestjs) publish v8.0.11 release 2021-10-06 13:09:04 +02:00
Kamil Myśliwiec
2ff445100b fix(common): fix parse array pipe (primitive values) #7408 #7926 2021-10-06 13:08:10 +02:00
Zclhlmgqzc
226a1ac28b fix: middleware with globalPrefixOptions exclude 2021-10-06 18:43:53 +08:00
Kamil Mysliwiec
8c315e9ffb Merge pull request #8245 from Zclhlmgqzc/fix-expressAdapter-createMiddlewareFactory
fix: ExpressAdapter createMiddlewareFactory
2021-10-06 11:38:10 +02:00
Kamil Myśliwiec
efbc8d056f Merge branch 'master' of https://github.com/nestjs/nest 2021-10-06 11:27:01 +02:00
Kamil Myśliwiec
75c58dd39b chore(): update readme 2021-10-06 11:26:58 +02:00
Tony
83692f8c04 Merge branch 'master' into test/sample--05-sql-typeorm 2021-10-06 10:43:58 +02:00
Tony
382eae9242 Merge branch 'master' into test/sample-13-unit-test 2021-10-06 10:43:17 +02:00
Tony
e72cfca000 Merge branch 'master' into test/sample-06-mongoose 2021-10-06 10:42:41 +02:00
Tony
d764c299bc Merge branch 'master' into test/sample-07-sequelize 2021-10-06 10:35:28 +02:00
Zclhlmgqzc
14fc5de6cf fix: ExpressAdapter createMiddlewareFactory 2021-10-06 16:01:04 +08:00
Renovate Bot
0e412af378 fix(deps): update dependency graphql to v15.6.1 2021-10-06 07:56:04 +00:00
Kamil Mysliwiec
17cec8ba2c Merge pull request #8232 from nestjs/renovate/fastify-static-4.x
fix(deps): update dependency fastify-static to v4.2.4
2021-10-06 09:30:29 +02:00
Kamil Mysliwiec
e9f5606e52 Merge pull request #8242 from nestjs/revert-8113-fix-middlewareConsumer-forRoutes-controller
Revert "fix(core): middlewareConsumer forRoutes controller"
2021-10-06 09:18:18 +02:00
Kamil Mysliwiec
80ecfacb36 Merge pull request #8239 from nestjs/renovate/mongodb-3.x
fix(deps): update dependency mongodb to v3.7.2
2021-10-06 09:17:35 +02:00
Kamil Mysliwiec
6291443020 Merge pull request #8238 from nestjs/renovate/core-js-3.x
chore(deps): update dependency core-js to v3.18.2
2021-10-06 09:17:30 +02:00
Kamil Mysliwiec
961e87ded4 Merge pull request #8236 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.21
2021-10-06 09:17:25 +02:00
Kamil Mysliwiec
60e78ef7f7 Merge pull request #8233 from nestjs/renovate/light-my-request-4.x
fix(deps): update dependency light-my-request to v4.5.0
2021-10-06 09:17:04 +02:00
Kamil Mysliwiec
b36feb1009 Merge pull request #8237 from nestjs/renovate/npm-fastify-static-vulnerability
chore(deps): update dependency fastify-static to v4.2.4 [security]
2021-10-06 09:16:57 +02:00
Kamil Mysliwiec
b6bc35ee37 Revert "fix(core): middlewareConsumer forRoutes controller" 2021-10-06 09:16:35 +02:00
Kamil Mysliwiec
9c7dfd9a77 Merge pull request #8215 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.57.1
2021-10-06 09:15:57 +02:00
Renovate Bot
87f9fedbdd fix(deps): update dependency mongodb to v3.7.2 2021-10-05 22:52:19 +00:00
Renovate Bot
5f43413828 chore(deps): update dependency core-js to v3.18.2 2021-10-05 22:50:45 +00:00
Renovate Bot
52df7c15de chore(deps): update dependency fastify-static to v4.2.4 [security] 2021-10-05 21:27:34 +00:00
Renovate Bot
4d25621bac chore(deps): update dependency @types/node to v14.17.21 2021-10-05 21:24:37 +00:00
Renovate Bot
4275aac316 fix(deps): update dependency light-my-request to v4.5.0 2021-10-05 18:48:33 +00:00
Renovate Bot
cd4e923164 chore(deps): update dependency webpack to v5.57.1 2021-10-05 18:45:52 +00:00
Renovate Bot
7313176bf7 fix(deps): update dependency fastify-static to v4.2.4 2021-10-05 18:43:25 +00:00
Nazarii Romankiv
e0f5a6dbed fix(microservices): expose interceptors option for grpc 2021-10-05 21:12:25 +03:00
Nazarii Romankiv
004333e577 style(websockets): run prettier 2021-10-05 20:37:20 +03:00
Nazarii Romankiv
a446f268ce refactor(websockets): remove internal type and use type-casting to object in place 2021-10-05 20:33:56 +03:00
Kamil Myśliwiec
c0089cd9ae chore(@nestjs) publish v8.0.10 release 2021-10-05 09:54:24 +02:00
Kamil Mysliwiec
2cdee2557c Merge pull request #8113 from Zclhlmgqzc/fix-middlewareConsumer-forRoutes-controller
fix(core): middlewareConsumer forRoutes controller
2021-10-05 09:43:06 +02:00
Kamil Mysliwiec
a2edf96588 Merge pull request #8198 from nestjs/renovate/axios-0.x
fix(deps): update dependency axios to v0.22.0
2021-10-05 09:41:19 +02:00
Kamil Mysliwiec
892cbe57de Merge pull request #8216 from nestjs/renovate/lint-staged-11.x
chore(deps): update dependency lint-staged to v11.2.0
2021-10-05 09:17:14 +02:00
Kamil Mysliwiec
2ac7b58307 Merge pull request #8220 from nestjs/renovate/mongoose-6.x
fix(deps): update dependency mongoose to v6.0.9
2021-10-05 09:16:33 +02:00
Kamil Mysliwiec
0fd7e91bd5 Merge pull request #8219 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v4.33.0
2021-10-05 09:12:37 +02:00
Renovate Bot
712d15d730 fix(deps): update dependency mongoose to v6.0.9 2021-10-04 21:32:01 +00:00
Nazarii Romankiv
af906f7f1e refactor(websockets): stop tracking yarn.lock 2021-10-04 22:14:41 +03:00
Nazarii Romankiv
faacef6d7f refactor(websockets): run prettier 2021-10-04 22:13:21 +03:00
Nazarii Romankiv
f2dd06338b refactor(websockets): use internal nest gateway type 2021-10-04 22:10:55 +03:00
Nazarii Romankiv
784cb129f4 refactor(websockets): removed logs for lifecycle hooks 2021-10-04 21:59:27 +03:00
Renovate Bot
07e49bb567 chore(deps): update typescript-eslint monorepo to v4.33.0 2021-10-04 18:13:48 +00:00
Renovate Bot
1aa705c732 chore(deps): update dependency lint-staged to v11.2.0 2021-10-04 11:37:25 +00:00
Zclhlmgqzc
8289272861 fix(core): middlewareConsumer forRoutes controller 2021-10-04 19:33:00 +08:00
Kamil Mysliwiec
026c1bd61c Update Readme.md 2021-10-04 10:25:48 +02:00
Kamil Mysliwiec
30fe142234 Merge pull request #8206 from nestjs/renovate/typeorm-0.x
fix(deps): update dependency typeorm to v0.2.38
2021-10-04 09:00:32 +02:00
Kamil Mysliwiec
4d5bda66b1 Merge pull request #8214 from micalevisk/using-issue-forms
chore(): migrate to github issue forms from issue templates
2021-10-04 09:00:04 +02:00
Micael Levi (lab)
9361b1b267 chore(): migrate to github issue forms from issue templates
More about GitHub issue forms here:
https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms
2021-10-03 21:59:53 -04:00
Tony
e5db699b22 Merge branch 'master' into test/sample-07-sequelize 2021-10-03 17:30:14 +02:00
Tony
ea78596e65 Merge branch 'master' into test/sample--05-sql-typeorm 2021-10-03 17:28:01 +02:00
Tony
16c44b6eea Merge branch 'master' into test/sample-06-mongoose 2021-10-03 17:26:24 +02:00
Tony
bcd2041b9d Merge branch 'master' into test/sample-13-unit-test 2021-10-03 17:24:32 +02:00
Renovate Bot
25c604883e fix(deps): update dependency typeorm to v0.2.38 2021-10-02 22:58:30 +00:00
Nazarii Romankiv
be250fa7c2 refactor(websockets): run prettier 2021-10-02 19:42:05 +03:00
Nazarii Romankiv
0effa64d3e feat(websockets): add logging on gateway method to events/messages mount 2021-10-02 19:32:52 +03:00
Kamil Myśliwiec
f1ccd10976 feat(microservices): integrate response serializers 2021-10-02 15:52:39 +02:00
Kamil Mysliwiec
90ebd68257 Merge pull request #8202 from nestjs/renovate/concurrently-6.x
chore(deps): update dependency concurrently to v6.3.0
2021-10-02 15:43:38 +02:00
Kamil Mysliwiec
94daf20c1c Merge pull request #8191 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v8.0.9
2021-10-02 15:41:31 +02:00
Renovate Bot
7c0d8bae39 chore(deps): update dependency concurrently to v6.3.0 2021-10-02 09:10:22 +00:00
Kamil Mysliwiec
1f297a4d2b Merge pull request #8200 from nestjs/renovate/rxjs-7.x
fix(deps): update dependency rxjs to v7.3.1
2021-10-02 10:56:37 +02:00
Kamil Mysliwiec
20d3dafdd5 Merge pull request #8199 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.56.0
2021-10-02 10:56:30 +02:00
Renovate Bot
68ba64055e fix(deps): update dependency rxjs to v7.3.1 2021-10-02 00:25:49 +00:00
Renovate Bot
e89ebfe7a5 chore(deps): update dependency webpack to v5.56.0 2021-10-01 14:40:45 +00:00
Kamil Mysliwiec
8b965fa256 Merge pull request #8052 from Tony133/sample/update-mongoose-base
sample(14-mongoose): update name database mongodb
2021-10-01 13:39:40 +02:00
Tony133
155c2568d3 sample(14-mongoose): update name database mongodb 2021-10-01 13:15:41 +02:00
Kamil Myśliwiec
d72415a61b chore(): resolve conflicts 2021-10-01 11:32:27 +02:00
Kamil Myśliwiec
62978f887f test(microservices): add e2e tests for record builders 2021-10-01 11:31:56 +02:00
Renovate Bot
18dd2430b8 fix(deps): update dependency axios to v0.22.0 2021-10-01 09:30:10 +00:00
Renovate Bot
2db3ff8194 fix(deps): update nest monorepo to v8.0.9 2021-10-01 08:18:41 +00:00
Kamil Mysliwiec
a57653fc1d Merge pull request #8195 from nestjs/renovate/nestjs-mongoose-9.x
fix(deps): update dependency @nestjs/mongoose to v9
2021-10-01 09:23:00 +02:00
Kamil Mysliwiec
4ea1535931 Merge pull request #8193 from nestjs/renovate/fastify-multipart-5.x
chore(deps): update dependency fastify-multipart to v5
2021-10-01 09:22:54 +02:00
Kamil Mysliwiec
db7b8b03fa Merge pull request #8192 from nestjs/renovate/passport-0.x
fix(deps): update dependency passport to v0.5.0
2021-10-01 09:22:48 +02:00
Kamil Mysliwiec
87c5ff8e1c Merge pull request #8187 from nestjs/renovate/fastify-3.x
fix(deps): update dependency fastify to v3.22.0
2021-10-01 09:22:36 +02:00
Kamil Mysliwiec
86f3764f79 Merge pull request #8186 from nestjs/renovate/nestjs-swagger-5.x
fix(deps): update dependency @nestjs/swagger to v5.1.0
2021-10-01 09:21:51 +02:00
Kamil Mysliwiec
f5ba47b8d0 Merge pull request #8184 from nestjs/renovate/bull-3.x
chore(deps): update dependency @types/bull to v3.15.5
2021-10-01 09:21:46 +02:00
Kamil Mysliwiec
ab15176d68 Merge pull request #8171 from nestjs/renovate/jest-monorepo
chore(deps): update dependency jest to v27.2.4
2021-10-01 09:20:44 +02:00
Kamil Mysliwiec
88d23e9f82 Merge pull request #8163 from nestjs/renovate/concurrently-6.x
chore(deps): update dependency concurrently to v6.2.2
2021-10-01 09:20:29 +02:00
Kamil Mysliwiec
3b9cdda6aa Merge pull request #8145 from nestjs/renovate/jest-27.x
chore(deps): update dependency @types/jest to v27.0.2
2021-10-01 09:20:23 +02:00
Kamil Myśliwiec
1a89c12c7c chore(): update readme 2021-10-01 09:12:18 +02:00
Renovate Bot
a8bf5e69ca fix(deps): update dependency @nestjs/mongoose to v9 2021-09-30 20:18:36 +00:00
Renovate Bot
afecbfbf30 chore(deps): update dependency fastify-multipart to v5 2021-09-30 18:27:29 +00:00
Renovate Bot
7943f99478 fix(deps): update dependency passport to v0.5.0 2021-09-30 17:08:07 +00:00
Renovate Bot
d2d27bfb37 chore(deps): update dependency jest to v27.2.4 2021-09-30 17:06:16 +00:00
Renovate Bot
2779055391 chore(deps): update dependency concurrently to v6.2.2 2021-09-30 14:07:52 +00:00
Renovate Bot
08a6441e81 chore(deps): update dependency @types/jest to v27.0.2 2021-09-30 14:04:55 +00:00
Renovate Bot
52ad72342f chore(deps): update dependency @types/bull to v3.15.5 2021-09-30 12:28:12 +00:00
Kamil Myśliwiec
116143bf7e chore(@nestjs) publish v8.0.9 release 2021-09-30 14:10:19 +02:00
Kamil Myśliwiec
76430410b3 fix(core): fix lazy loading nested modules #8031 2021-09-30 14:07:02 +02:00
Kamil Myśliwiec
7dd22758fb fix(microservices): fix multiple event handlers (shared subscription) #7913 2021-09-30 13:57:25 +02:00
Renovate Bot
3751f90f14 fix(deps): update dependency fastify to v3.22.0 2021-09-30 11:22:03 +00:00
Renovate Bot
8f0385abbd fix(deps): update dependency @nestjs/swagger to v5.1.0 2021-09-30 11:19:34 +00:00
Kamil Mysliwiec
0df89a252d Merge pull request #7709 from nestjs/renovate/apollo-graphql-packages
fix(deps): update apollo graphql packages
2021-09-30 09:00:08 +02:00
Kamil Mysliwiec
ab7a1378c2 Merge pull request #8147 from nestjs/renovate/sinon-10.x
chore(deps): update dependency @types/sinon to v10.0.4
2021-09-30 08:59:34 +02:00
Kamil Mysliwiec
6f68460aec Merge pull request #8148 from nestjs/renovate/artillery-1.x
chore(deps): update dependency artillery to v1.7.9
2021-09-30 08:59:29 +02:00
Kamil Mysliwiec
513904a684 Merge pull request #8149 from nestjs/renovate/mocha-9.x
chore(deps): update dependency mocha to v9.1.2
2021-09-30 08:59:22 +02:00
Kamil Mysliwiec
628da342fb Merge pull request #8165 from nestjs/renovate/bull-3.x
fix(deps): update dependency bull to v3.29.2
2021-09-30 08:59:12 +02:00
Kamil Mysliwiec
0a9652e568 Merge pull request #8166 from nestjs/renovate/fast-json-stringify-2.x
fix(deps): update dependency fast-json-stringify to v2.7.10
2021-09-30 08:59:08 +02:00
Kamil Mysliwiec
7a11a16fd4 Merge pull request #8170 from nestjs/renovate/commitlint-monorepo
chore(deps): update commitlint monorepo to v13.2.0
2021-09-30 08:58:57 +02:00
Kamil Mysliwiec
0bb19d68b3 Merge pull request #8173 from nestjs/renovate/nest-monorepo
chore(deps): update dependency @nestjs/cli to v8.1.2
2021-09-30 08:58:30 +02:00
Kamil Mysliwiec
d50bbcb131 Merge pull request #8177 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.20
2021-09-30 08:58:24 +02:00
Kamil Mysliwiec
93673dfde0 Merge pull request #8179 from nestjs/renovate/prettier-2.x
chore(deps): update dependency prettier to v2.4.1
2021-09-30 08:58:18 +02:00
Kamil Mysliwiec
a7083ec5fa Merge pull request #8180 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.55.1
2021-09-30 08:58:10 +02:00
Renovate Bot
5f1e9a07d9 fix(deps): update apollo graphql packages 2021-09-29 21:24:58 +00:00
Renovate Bot
93cb5577ed chore(deps): update dependency webpack to v5.55.1 2021-09-29 21:17:21 +00:00
Renovate Bot
5b0647a195 chore(deps): update dependency prettier to v2.4.1 2021-09-29 20:42:46 +00:00
Renovate Bot
dd12820e79 chore(deps): update dependency @types/node to v14.17.20 2021-09-29 16:27:48 +00:00
Renovate Bot
ac19447c65 chore(deps): update commitlint monorepo to v13.2.0 2021-09-29 10:38:50 +00:00
Renovate Bot
20fdfe744f fix(deps): update dependency fast-json-stringify to v2.7.10 2021-09-29 10:36:18 +00:00
Renovate Bot
dc918a621b chore(deps): update dependency mocha to v9.1.2 2021-09-29 10:33:42 +00:00
Renovate Bot
800da43d06 chore(deps): update dependency artillery to v1.7.9 2021-09-29 10:28:41 +00:00
Renovate Bot
01f69928d9 chore(deps): update dependency @types/sinon to v10.0.4 2021-09-29 10:26:13 +00:00
Renovate Bot
87e4fd93f6 chore(deps): update dependency @nestjs/cli to v8.1.2 2021-09-29 09:26:45 +00:00
Kamil Mysliwiec
23b86feed4 Update Readme.md 2021-09-29 10:13:21 +02:00
Renovate Bot
5f3ee807ff fix(deps): update dependency bull to v3.29.2 2021-09-29 08:05:57 +00:00
Kamil Mysliwiec
c709fc5f0c Merge pull request #8146 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.19
2021-09-29 09:38:47 +02:00
Kamil Mysliwiec
0e2fcd56b0 Merge pull request #8157 from nestjs/renovate/ts-loader-9.x
chore(deps): update dependency ts-loader to v9.2.6
2021-09-29 09:38:24 +02:00
Kamil Mysliwiec
5b81cc2d79 Merge pull request #8167 from nestjs/renovate/ws-7.x
fix(deps): update dependency ws to v7.5.5
2021-09-29 09:38:04 +02:00
Kamil Mysliwiec
a3fa4d6494 Merge pull request #8169 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v8.0.8
2021-09-29 09:37:48 +02:00
Renovate Bot
bd0e7b4c2f fix(deps): update nest monorepo to v8.0.8 2021-09-28 19:42:47 +00:00
Renovate Bot
b7dcefe743 fix(deps): update dependency ws to v7.5.5 2021-09-28 17:46:27 +00:00
Renovate Bot
8152eada10 chore(deps): update dependency ts-loader to v9.2.6 2021-09-28 16:09:58 +00:00
Renovate Bot
dba2d620ea chore(deps): update dependency @types/node to v14.17.19 2021-09-28 12:41:35 +00:00
Kamil Mysliwiec
9ca41ac387 Merge pull request #8045 from tuxmachine/feat/msvc-static-headers
feat(microservices): add static headers
2021-09-28 11:42:49 +02:00
Kamil Myśliwiec
5ed9e93795 Merge branch 'master' into feat/msvc-message-builder 2021-09-28 11:35:31 +02:00
Kamil Myśliwiec
6c1119316a chore(): update readme 2021-09-28 11:35:20 +02:00
Kamil Myśliwiec
2555e37465 chore(@nestjs) publish v8.0.8 release 2021-09-28 11:22:22 +02:00
Kamil Mysliwiec
6485231737 Merge pull request #8126 from lengxuegang/master
feat(cache): Add cache option isGlobal
2021-09-28 11:11:38 +02:00
Kamil Myśliwiec
4cf5a56b84 chore(): remove types/mongoose package 2021-09-28 11:11:03 +02:00
Kamil Mysliwiec
14bef06a5e Merge pull request #7998 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v4.32.0
2021-09-28 08:39:08 +02:00
Kamil Mysliwiec
2f241b97a1 Merge pull request #7843 from nestjs/dependabot/npm_and_yarn/sample/13-mongo-typeorm/path-parse-1.0.7
chore(deps): bump path-parse from 1.0.6 to 1.0.7 in /sample/13-mongo-typeorm
2021-09-28 08:38:17 +02:00
Kamil Mysliwiec
d151eff547 Merge pull request #7811 from nestjs/renovate/mongo-5.x
chore(deps): update mongo docker tag to v5
2021-09-28 08:38:09 +02:00
Kamil Mysliwiec
b802fb2ab4 Merge pull request #8024 from utlime/master
fix(common): catch number encoding in ParseIntPipe
2021-09-28 08:36:42 +02:00
Kamil Mysliwiec
0ae3dda8db Merge pull request #7997 from nestjs/renovate/graphql-15.x
fix(deps): update dependency graphql to v15.6.0
2021-09-28 08:35:33 +02:00
Kamil Mysliwiec
96c29bf047 Merge pull request #7970 from nestjs/renovate/mongoose-6.x
fix(deps): update dependency mongoose to v6.0.8
2021-09-28 08:35:27 +02:00
Kamil Mysliwiec
cf13b422fe Merge pull request #8119 from nestjs/renovate/npm-axios-vulnerability
chore(deps): update dependency axios to 0.21.2 [security]
2021-09-28 08:31:25 +02:00
Kamil Mysliwiec
653fe5d85b Merge pull request #8156 from nestjs/renovate/nodemon-2.x
chore(deps): update dependency nodemon to v2.0.13
2021-09-28 08:29:34 +02:00
xuegang.leng
a195cfe503 fix(all): typo error: deffered -> deferred 2021-09-28 14:28:53 +08:00
Renovate Bot
402329812f fix(deps): update dependency graphql to v15.6.0 2021-09-27 21:19:39 +00:00
Renovate Bot
621e003163 chore(deps): update typescript-eslint monorepo to v4.32.0 2021-09-27 20:01:52 +00:00
Renovate Bot
bd32372a2e fix(deps): update dependency mongoose to v6.0.8 2021-09-27 17:09:23 +00:00
Renovate Bot
9b5f13e16e chore(deps): update dependency nodemon to v2.0.13 2021-09-27 15:14:13 +00:00
Rick Dutour Geerling
a7d532409c style(microservices): rename method for clarity
Prevents confusion with client options

Co-authored-by: Kamil Mysliwiec <mail@kamilmysliwiec.com>
2021-09-27 17:09:52 +02:00
Kamil Mysliwiec
1a05437d64 Merge pull request #8150 from nestjs/revert-8073-dependabot/npm_and_yarn/typescript-4.4.3
Revert "chore(deps-dev): bump typescript from 4.3.5 to 4.4.3"
2021-09-27 14:30:41 +02:00
Kamil Mysliwiec
aa28011607 Revert "chore(deps-dev): bump typescript from 4.3.5 to 4.4.3" 2021-09-27 14:30:29 +02:00
Kamil Myśliwiec
da2b73f0c6 Merge branch 'master' into feat/msvc-message-builder 2021-09-27 11:32:02 +02:00
Kamil Mysliwiec
1579c4df91 Merge pull request #8143 from nestjs/sample/update-gql-examples
sample(12+23): update graphql examples
2021-09-27 11:31:29 +02:00
Kamil Myśliwiec
35f62f97d0 chore(): resolve conflicts 2021-09-27 11:30:35 +02:00
Kamil Mysliwiec
31dff982d0 Merge pull request #8073 from nestjs/dependabot/npm_and_yarn/typescript-4.4.3
chore(deps-dev): bump typescript from 4.3.5 to 4.4.3
2021-09-27 11:22:32 +02:00
Kamil Mysliwiec
ccd1ad20bd Merge pull request #8134 from nestjs/dependabot/npm_and_yarn/fast-safe-stringify-2.1.1
chore(deps): bump fast-safe-stringify from 2.0.8 to 2.1.1
2021-09-27 11:22:21 +02:00
Kamil Mysliwiec
566a0130ea Merge pull request #8136 from nestjs/dependabot/npm_and_yarn/fastify-3.21.6
chore(deps): bump fastify from 3.20.2 to 3.21.6
2021-09-27 11:22:13 +02:00
dependabot[bot]
301b4b9896 chore(deps): bump fastify from 3.20.2 to 3.21.6
Bumps [fastify](https://github.com/fastify/fastify) from 3.20.2 to 3.21.6.
- [Release notes](https://github.com/fastify/fastify/releases)
- [Commits](https://github.com/fastify/fastify/compare/v3.20.2...v3.21.6)

---
updated-dependencies:
- dependency-name: fastify
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-27 09:07:59 +00:00
dependabot[bot]
5b64928574 chore(deps-dev): bump typescript from 4.3.5 to 4.4.3
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.3.5 to 4.4.3.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.3.5...v4.4.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-27 09:07:56 +00:00
dependabot[bot]
92e40a9ca6 chore(deps): bump fast-safe-stringify from 2.0.8 to 2.1.1
Bumps [fast-safe-stringify](https://github.com/davidmarkclements/fast-safe-stringify) from 2.0.8 to 2.1.1.
- [Release notes](https://github.com/davidmarkclements/fast-safe-stringify/releases)
- [Changelog](https://github.com/davidmarkclements/fast-safe-stringify/blob/master/CHANGELOG.md)
- [Commits](https://github.com/davidmarkclements/fast-safe-stringify/compare/v2.0.8...v2.1.1)

---
updated-dependencies:
- dependency-name: fast-safe-stringify
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-27 09:06:06 +00:00
Kamil Mysliwiec
e0a08125fe Merge pull request #8021 from nestjs/renovate/babel-monorepo
chore(deps): update babel monorepo
2021-09-27 11:05:18 +02:00
Kamil Mysliwiec
00b47bd288 Merge pull request #8014 from nestjs/renovate/core-js-3.x
chore(deps): update dependency core-js to v3.18.1
2021-09-27 11:05:11 +02:00
Kamil Mysliwiec
3515d5f8cd Merge pull request #8100 from nestjs/dependabot/npm_and_yarn/mongoose-6.0.7
chore(deps-dev): bump mongoose from 6.0.1 to 6.0.7
2021-09-27 11:04:45 +02:00
Kamil Mysliwiec
be60420106 Merge pull request #8102 from nestjs/renovate/grpc-proto-loader-0.x
chore(deps): update dependency @grpc/proto-loader to v0.6.5
2021-09-27 11:04:37 +02:00
Kamil Mysliwiec
fc912dc5ad Merge pull request #8118 from nestjs/renovate/npm-ansi-regex-vulnerability
chore(deps): update dependency ansi-regex to 5.0.1 [security]
2021-09-27 11:04:15 +02:00
Kamil Mysliwiec
2cd6f93317 Merge pull request #8120 from nestjs/renovate/confluentinc-cp-kafka-6.x
chore(deps): update confluentinc/cp-kafka docker tag to v6.2.1
2021-09-27 11:04:06 +02:00
Kamil Mysliwiec
0f8db9517c Merge pull request #8121 from nestjs/renovate/confluentinc-cp-zookeeper-6.x
chore(deps): update confluentinc/cp-zookeeper docker tag to v6.2.1
2021-09-27 11:03:58 +02:00
Kamil Mysliwiec
33700d2775 Merge pull request #8122 from nestjs/renovate/chai-4.x
chore(deps): update dependency @types/chai to v4.2.22
2021-09-27 11:03:53 +02:00
Kamil Mysliwiec
0f14a536a6 Merge pull request #8130 from nestjs/dependabot/npm_and_yarn/types/ws-8.2.0
chore(deps-dev): bump @types/ws from 7.4.7 to 8.2.0
2021-09-27 11:03:46 +02:00
Kamil Mysliwiec
ff57e0758b Merge pull request #8131 from nestjs/dependabot/npm_and_yarn/types/node-16.10.1
chore(deps-dev): bump @types/node from 16.6.1 to 16.10.1
2021-09-27 11:03:40 +02:00
Kamil Mysliwiec
43797ce9f7 Update Readme.md 2021-09-27 10:24:23 +02:00
dependabot[bot]
6984cd4d46 chore(deps-dev): bump @types/node from 16.6.1 to 16.10.1
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 16.6.1 to 16.10.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-27 00:16:35 +00:00
dependabot[bot]
a010835164 chore(deps-dev): bump @types/ws from 7.4.7 to 8.2.0
Bumps [@types/ws](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ws) from 7.4.7 to 8.2.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ws)

---
updated-dependencies:
- dependency-name: "@types/ws"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-27 00:05:14 +00:00
Renovate Bot
08477200de chore(deps): update dependency core-js to v3.18.1 2021-09-26 23:46:38 +00:00
Micael Levi (lab)
aa315672a1 refactor(integration): better naming for versioning E2E test suites 2021-09-26 17:08:04 -04:00
Micael Levi (lab)
9027fd284b test(): add tests for global version with Header Versioning Type 2021-09-26 17:05:16 -04:00
Micael Levi (lab)
2e287691da test(): add tests for global version with Media Type Versioning 2021-09-26 17:04:48 -04:00
Micael Levi (lab)
9d0dcc6080 test(): add tests for global version with URI Versioning
This also fixes the misleading behavior of trailing slashs in fastify
router in which `GET /v3/` was used instead of `GET /v3` even tho both
end up behaving the same way
2021-09-26 15:33:12 -04:00
Micael Levi (lab)
bf50c2e24c feat(): support default version to the versioning system
Closes #8050
2021-09-26 14:59:37 -04:00
xuegang.leng
83eda4f7e6 feat(cache): Add cache option isGlobal 2021-09-26 17:12:01 +08:00
Renovate Bot
76874941dd chore(deps): update babel monorepo 2021-09-24 14:44:40 +00:00
Renovate Bot
b924dfacc9 chore(deps): update dependency @types/chai to v4.2.22 2021-09-24 14:42:51 +00:00
Renovate Bot
bb0b702a53 chore(deps): update dependency @grpc/proto-loader to v0.6.5 2021-09-24 14:41:33 +00:00
Kamil Myśliwiec
d8add273e0 fix(microservices): fix rmq client (wait to consume reply channel) #7972 2021-09-24 16:35:12 +02:00
Renovate Bot
c05f6ea8b1 chore(deps): update confluentinc/cp-zookeeper docker tag to v6.2.1 2021-09-24 13:13:50 +00:00
Renovate Bot
c12ee9aed0 chore(deps): update confluentinc/cp-kafka docker tag to v6.2.1 2021-09-24 13:13:41 +00:00
Renovate Bot
219c7e5d14 chore(deps): update dependency axios to 0.21.2 [security] 2021-09-24 11:52:38 +00:00
Renovate Bot
902ab76007 chore(deps): update dependency ansi-regex to 5.0.1 [security] 2021-09-24 11:49:45 +00:00
Kamil Myśliwiec
0ca414bca7 chore(): update README 2021-09-24 13:01:46 +02:00
Kamil Myśliwiec
e0ce225f76 chore(@nestjs) publish v8.0.7 release 2021-09-24 12:56:39 +02:00
Kamil Myśliwiec
c2eb2a7007 sample(12-23): update graphql examples 2021-09-24 12:53:54 +02:00
dependabot[bot]
c7e9c2b756 chore(deps-dev): bump mongoose from 6.0.1 to 6.0.7
Bumps [mongoose](https://github.com/Automattic/mongoose) from 6.0.1 to 6.0.7.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/6.0.1...6.0.7)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-24 10:51:51 +00:00
Kamil Mysliwiec
0bcf4e9703 Merge pull request #8019 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.53.0
2021-09-24 12:49:01 +02:00
Kamil Mysliwiec
770b5e5723 Merge pull request #8104 from nestjs/renovate/npm-tmpl-vulnerability
chore(deps): update dependency tmpl to 1.0.5 [security]
2021-09-24 12:46:54 +02:00
Kamil Mysliwiec
2ae2852ed2 Merge pull request #8057 from nestjs/renovate/redis-2.x
chore(deps): update dependency @types/redis to v2.8.32
2021-09-24 12:45:40 +02:00
Kamil Mysliwiec
68d0c6256e Merge pull request #8056 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.18
2021-09-24 12:45:35 +02:00
Kamil Mysliwiec
415387ca62 Merge pull request #8030 from nestjs/renovate/axios-0.x
fix(deps): update dependency axios to v0.21.4
2021-09-24 12:44:52 +02:00
Kamil Mysliwiec
09f30d084b Merge pull request #8000 from nestjs/renovate/eslint-plugin-prettier-4.x
chore(deps): update dependency eslint-plugin-prettier to v4
2021-09-24 12:43:54 +02:00
Kamil Mysliwiec
56fae9c8d4 Merge pull request #7999 from nestjs/renovate/mongodb-3.x
fix(deps): update dependency mongodb to v3.7.1
2021-09-24 12:43:48 +02:00
Kamil Mysliwiec
4dec3780a6 Merge pull request #7995 from nestjs/renovate/socket.io-packages
fix(deps): update socket.io packages to v4.2.0
2021-09-24 12:43:41 +02:00
Kamil Mysliwiec
7f84126283 Merge pull request #8096 from zidingz/patch-1
Create SECURITY.md
2021-09-24 12:05:32 +02:00
Kamil Mysliwiec
e0306625d7 Update SECURITY.md 2021-09-24 12:05:24 +02:00
Renovate Bot
3da20ddda0 chore(deps): update dependency @types/node to v14.17.18 2021-09-21 19:41:09 +00:00
Renovate Bot
733b9219c3 chore(deps): update dependency tmpl to 1.0.5 [security] 2021-09-21 19:05:48 +00:00
Ziding Zhang
8427e5304a Create SECURITY.md
To verify that the repository authorises jmcdo29@gmail.com as its security contact.
2021-09-20 13:58:51 +01:00
Renovate Bot
d7392ebf1e chore(deps): update dependency webpack to v5.53.0 2021-09-16 14:21:19 +00:00
Renovate Bot
67e2815e8e fix(deps): update dependency mongodb to v3.7.1 2021-09-14 18:24:50 +00:00
Renovate Bot
77277a8380 chore(deps): update dependency @types/redis to v2.8.32 2021-09-09 09:45:45 +00:00
Tony133
c18bf44725 test(): update dependecies in package.json 2021-09-07 15:21:31 +02:00
Rick Dutour Geerling
cfd9294b93 fix(microservices): fix undefined client options 2021-09-07 13:32:03 +02:00
Rick Dutour Geerling
122c4bd521 feat(microservices): add static UserProperties to Mqtt 2021-09-07 12:55:31 +02:00
Rick Dutour Geerling
2bfc98223d feat(microservices): add static headers to ClientRmq 2021-09-07 12:54:48 +02:00
Rick Dutour Geerling
7fed9a9e64 feat(microservices): add static headers for ClientNats 2021-09-07 10:53:00 +02:00
Tony133
098e64ca8a test(sample-07): updated 2021-09-07 10:48:37 +02:00
Tony133
6adcfa12e5 test(sample-07): added unit tests 2021-09-07 00:02:54 +02:00
Renovate Bot
0879ced66a fix(deps): update dependency axios to v0.21.4 2021-09-06 17:20:08 +00:00
Tony133
fec5a25bdd tests(sample-13): added unit tests 2021-09-05 22:42:35 +02:00
Tony133
181468b64a test(sample-06): updated 2021-09-05 21:42:14 +02:00
Tony133
4cd801031b test(sample-05): update 2021-09-05 21:40:12 +02:00
Tony133
e710d96f10 test(sample-05): fix update test for remove user 2021-09-05 21:26:51 +02:00
Tony133
bd042ea829 test(sample-06): added unit tests 2021-09-05 21:18:09 +02:00
Tony133
a640cc64ce test(): improvement 2021-09-04 21:33:13 +02:00
Tony133
ac3f458c56 test(sample-05): added unit tests 2021-09-04 21:28:22 +02:00
utlime
d9b88811bd fix(common): catch number encoding in ParseIntPipe
remove unnecessary check
2021-09-03 15:34:32 +07:00
utlime
11e620149c fix(common): catch number encoding in ParseIntPipe
process negative values
2021-09-03 15:10:25 +07:00
utlime
879bfaace8 fix(common): catch number encoding in ParseIntPipe 2021-09-03 14:46:32 +07:00
Renovate Bot
a8b8fe983f chore(deps): update dependency eslint-plugin-prettier to v4 2021-09-01 11:19:26 +00:00
Kamil Myśliwiec
f4002e493b feat(microservices): add msvc message builders 2021-09-01 09:59:04 +02:00
Kamil Mysliwiec
5974b6fed1 Merge pull request #8007 from nestjs/renovate/artillery-1.x
chore(deps): update dependency artillery to v1.7.8
2021-09-01 09:52:35 +02:00
Kamil Mysliwiec
da30d10994 Merge pull request #8008 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.14
2021-09-01 09:52:25 +02:00
Renovate Bot
8bef02a1d4 chore(deps): update dependency @types/node to v14.17.14 2021-09-01 03:46:17 +00:00
Renovate Bot
2a47ec8366 chore(deps): update dependency artillery to v1.7.8 2021-08-31 12:40:59 +00:00
Renovate Bot
3175f5f9e9 fix(deps): update socket.io packages to v4.2.0 2021-08-30 09:54:14 +00:00
dependabot[bot]
0ba8eccd4f chore(deps): bump path-parse in /sample/13-mongo-typeorm
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-30 07:15:38 +00:00
Kamil Mysliwiec
74b9810b21 Merge pull request #7976 from nestjs/renovate/jest-monorepo
chore(deps): update dependency jest to v27.1.0
2021-08-30 09:14:33 +02:00
Kamil Mysliwiec
1415eb4d44 Merge pull request #7980 from nestjs/renovate/mocha-9.x
chore(deps): update dependency mocha to v9.1.1
2021-08-30 09:14:28 +02:00
Kamil Mysliwiec
f06f8d6128 Merge pull request #7981 from nestjs/renovate/ws-7.x
fix(deps): update dependency ws to v7.5.4
2021-08-30 09:14:22 +02:00
Kamil Mysliwiec
99b2790c80 Merge pull request #7987 from nestjs/renovate/engine.io-client-5.x
chore(deps): update dependency engine.io-client to v5.2.0
2021-08-30 09:14:18 +02:00
Kamil Mysliwiec
5f257eca96 Merge pull request #7988 from nestjs/renovate/core-js-3.x
chore(deps): update dependency core-js to v3.16.4
2021-08-30 09:14:07 +02:00
Renovate Bot
d3f17c293b chore(deps): update dependency core-js to v3.16.4 2021-08-29 15:32:40 +00:00
Renovate Bot
6cf04e04aa chore(deps): update dependency engine.io-client to v5.2.0 2021-08-29 07:46:04 +00:00
Renovate Bot
d4ee608af0 fix(deps): update dependency ws to v7.5.4 2021-08-28 16:46:54 +00:00
Renovate Bot
416906280b chore(deps): update dependency mocha to v9.1.1 2021-08-28 15:16:13 +00:00
Renovate Bot
b64fb788a5 chore(deps): update dependency jest to v27.1.0 2021-08-27 12:46:10 +00:00
Kamil Mysliwiec
2ad2ca2660 Merge pull request #7963 from nestjs/renovate/fast-json-stringify-2.x
fix(deps): update dependency fast-json-stringify to v2.7.9
2021-08-27 10:15:46 +02:00
Kamil Mysliwiec
ab0fa46a18 Merge pull request #7971 from nestjs/renovate/ts-morph-12.x
fix(deps): update dependency ts-morph to v12
2021-08-27 10:15:32 +02:00
Renovate Bot
0ce86d5277 fix(deps): update dependency ts-morph to v12 2021-08-27 02:22:14 +00:00
Renovate Bot
3070be83d3 fix(deps): update dependency fast-json-stringify to v2.7.9 2021-08-26 16:31:37 +00:00
Kamil Mysliwiec
7ae9bb56a2 Merge pull request #7960 from nestjs/renovate/bull-3.x
fix(deps): update dependency bull to v3.29.1
2021-08-26 12:31:02 +02:00
Renovate Bot
03e139e781 fix(deps): update dependency bull to v3.29.1 2021-08-26 07:38:56 +00:00
Kamil Mysliwiec
092347d225 Merge pull request #7955 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.12
2021-08-26 09:35:52 +02:00
Renovate Bot
5f5166802e chore(deps): update dependency @types/node to v14.17.12 2021-08-26 06:36:47 +00:00
Kamil Mysliwiec
439be39419 Merge pull request #7949 from nestjs/renovate/mongoose-6.x
fix(deps): update dependency mongoose to v6.0.1
2021-08-26 08:13:51 +02:00
Kamil Mysliwiec
8bd21a61b6 Merge pull request #7950 from nestjs/renovate/nats-2.x
chore(deps): update dependency nats to v2.2.0
2021-08-26 08:13:44 +02:00
Renovate Bot
b1cd819e19 chore(deps): update dependency nats to v2.2.0 2021-08-25 23:33:22 +00:00
Renovate Bot
d3d0356cc5 fix(deps): update dependency mongoose to v6.0.1 2021-08-25 23:31:10 +00:00
Kamil Myśliwiec
de514e87c9 Merge branch 'kvandake-master' into feat/msvc-message-builder 2021-08-25 11:17:00 +02:00
Kamil Myśliwiec
d08217a113 chore(): resolve conflicts 2021-08-25 11:13:37 +02:00
Kamil Myśliwiec
f94dd3a79b Merge branch 'master' into feat/msvc-message-builder 2021-08-25 11:11:33 +02:00
Kamil Myśliwiec
ed1f0b8bc9 feat(microservices): initial implementation of message builders 2021-08-25 11:10:07 +02:00
Kamil Mysliwiec
28a633e0c8 Merge pull request #7874 from nestjs/fix/fastify-versioning
fix(platform-fastify): fix versioning (media type and header)
2021-08-25 10:49:29 +02:00
Kamil Mysliwiec
73dd312396 Merge pull request #7939 from nestjs/renovate/tsconfig-paths-3.x
chore(deps): update dependency tsconfig-paths to v3.11.0
2021-08-25 10:47:44 +02:00
Kamil Mysliwiec
0ccb1cff0a Merge pull request #7938 from nestjs/renovate/core-js-3.x
chore(deps): update dependency core-js to v3.16.3
2021-08-25 10:47:39 +02:00
Kamil Mysliwiec
c6adb8426a Merge pull request #7944 from nestjs/renovate/eslint-plugin-import-2.x
chore(deps): update dependency eslint-plugin-import to v2.24.2
2021-08-25 10:47:33 +02:00
Kamil Mysliwiec
46a25ec282 Merge pull request #7945 from nestjs/renovate/mongoose-6.x
fix(deps): update dependency mongoose to v6
2021-08-25 10:47:26 +02:00
Kamil Mysliwiec
fc24e3ed49 Merge pull request #7946 from nestjs/renovate/husky-7.x
chore(deps): update dependency husky to v7.0.2
2021-08-25 10:47:22 +02:00
Kamil Mysliwiec
a016a5929e Merge pull request #7947 from nestjs/renovate/point-of-view-4.x
fix(deps): update dependency point-of-view to v4.15.2
2021-08-25 10:47:14 +02:00
Renovate Bot
7922008e83 fix(deps): update dependency point-of-view to v4.15.2 2021-08-25 08:06:08 +00:00
Renovate Bot
123c60bf1e chore(deps): update dependency husky to v7.0.2 2021-08-25 02:43:00 +00:00
Renovate Bot
e1ad600a26 fix(deps): update dependency mongoose to v6 2021-08-25 01:19:13 +00:00
Renovate Bot
eac011aa86 chore(deps): update dependency eslint-plugin-import to v2.24.2 2021-08-25 01:14:44 +00:00
Renovate Bot
5b2fd40cfe chore(deps): update dependency tsconfig-paths to v3.11.0 2021-08-24 22:29:00 +00:00
Renovate Bot
30ac16c346 chore(deps): update dependency core-js to v3.16.3 2021-08-24 22:04:58 +00:00
Kamil Mysliwiec
91d087362e Merge pull request #7921 from nestjs/renovate/amqp-connection-manager-3.x
chore(deps): update dependency amqp-connection-manager to v3.2.4
2021-08-24 08:55:21 +02:00
Renovate Bot
77942475cf chore(deps): update dependency amqp-connection-manager to v3.2.4 2021-08-24 06:40:25 +00:00
Kamil Mysliwiec
215bab121c Merge pull request #7927 from nestjs/renovate/bull-3.x
chore(deps): update dependency @types/bull to v3.15.4
2021-08-24 08:31:12 +02:00
Kamil Mysliwiec
db54167ce5 Merge pull request #7919 from nestjs/renovate/nestjs-schematics-8.x
chore(deps): update dependency @nestjs/schematics to v8.0.3
2021-08-24 08:31:06 +02:00
Kamil Mysliwiec
e2d3c9befa Merge pull request #7922 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.13.8
2021-08-24 08:30:55 +02:00
Kamil Mysliwiec
ea37d4d0d7 Merge pull request #7923 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v4.29.3
2021-08-24 08:30:48 +02:00
Kamil Mysliwiec
d8590f0b7c Merge pull request #7924 from nestjs/renovate/light-my-request-4.x
fix(deps): update dependency light-my-request to v4.4.4
2021-08-24 08:30:35 +02:00
Renovate Bot
35c929d613 chore(deps): update dependency @types/bull to v3.15.4 2021-08-23 21:17:28 +00:00
Renovate Bot
a9df6769a6 fix(deps): update dependency light-my-request to v4.4.4 2021-08-23 18:03:10 +00:00
Renovate Bot
0ae7502038 chore(deps): update typescript-eslint monorepo to v4.29.3 2021-08-23 18:01:06 +00:00
Renovate Bot
5f4f41607e fix(deps): update dependency mongoose to v5.13.8 2021-08-23 16:37:57 +00:00
Renovate Bot
437ce199f7 chore(deps): update dependency @nestjs/schematics to v8.0.3 2021-08-23 09:56:51 +00:00
Kamil Mysliwiec
7956564f40 Merge pull request #7903 from nestjs/renovate/bull-3.x
fix(deps): update dependency bull to v3.29.0
2021-08-23 09:18:36 +02:00
Kamil Mysliwiec
6513aab6ff Merge pull request #7904 from nestjs/renovate/eslint-plugin-prettier-3.x
chore(deps): update dependency eslint-plugin-prettier to v3.4.1
2021-08-23 09:18:32 +02:00
Kamil Mysliwiec
a8f5752e93 Merge pull request #7905 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.11
2021-08-23 09:18:28 +02:00
Kamil Mysliwiec
b2611998b0 Merge pull request #7906 from nestjs/renovate/amqplib-0.x
chore(deps): update dependency @types/amqplib to v0.8.2
2021-08-23 09:18:22 +02:00
Kamil Mysliwiec
26f54b9c75 Merge pull request #7908 from nestjs/renovate/amqp-connection-manager-3.x
chore(deps): update dependency amqp-connection-manager to v3.2.3
2021-08-23 09:18:15 +02:00
Kamil Mysliwiec
31f7b9fea9 Merge pull request #7911 from micalevisk/fix/issue-7909
fix(common): serializer must ignore `StreamableFile` responses
2021-08-23 09:12:44 +02:00
Micael Levi (lab)
1003c2e926 fix(common): serializer must ignore StreamableFile responses
Closes #7909
2021-08-21 19:01:08 -04:00
Renovate Bot
7f1fff2aef chore(deps): update dependency amqp-connection-manager to v3.2.3 2021-08-21 16:20:17 +00:00
Renovate Bot
57ea9c60ec chore(deps): update dependency @types/amqplib to v0.8.2 2021-08-21 02:53:46 +00:00
Renovate Bot
722eced9cb chore(deps): update dependency @types/node to v14.17.11 2021-08-21 00:39:08 +00:00
Renovate Bot
e03f275cef chore(deps): update dependency eslint-plugin-prettier to v3.4.1 2021-08-20 22:52:27 +00:00
kvandake
9b5a615f55 add NatsMessageBuilder 2021-08-20 21:22:44 +03:00
Kamil Mysliwiec
9d9f77a137 Merge pull request #7902 from nestjs/renovate/mocha-9.x
chore(deps): update dependency mocha to v9.1.0
2021-08-20 13:13:03 +02:00
Renovate Bot
ab4da0c3e3 fix(deps): update dependency bull to v3.29.0 2021-08-20 11:06:38 +00:00
Renovate Bot
e0eda209c2 chore(deps): update dependency mocha to v9.1.0 2021-08-20 09:35:25 +00:00
Kamil Mysliwiec
1274af05f2 Update Readme.md 2021-08-20 09:36:47 +02:00
Kamil Mysliwiec
58abcdd625 Merge pull request #7897 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.51.1
2021-08-20 09:13:39 +02:00
Kamil Mysliwiec
c7ca97ba8b Merge pull request #7898 from nestjs/renovate/eslint-plugin-import-2.x
chore(deps): update dependency eslint-plugin-import to v2.24.1
2021-08-20 09:13:29 +02:00
Renovate Bot
0e08cdd0f2 chore(deps): update dependency eslint-plugin-import to v2.24.1 2021-08-19 22:29:27 +00:00
Renovate Bot
e03199e230 chore(deps): update dependency webpack to v5.51.1 2021-08-19 14:45:49 +00:00
Kamil Mysliwiec
f047dc9c56 Merge pull request #7891 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.10
2021-08-19 10:33:32 +02:00
Kamil Mysliwiec
37db7d8a2c Merge pull request #7889 from nestjs/renovate/ts-node-10.x
chore(deps): update dependency ts-node to v10.2.1
2021-08-19 10:31:04 +02:00
Kamil Mysliwiec
42820ad97d Merge pull request #7888 from nestjs/renovate/artillery-1.x
chore(deps): update dependency artillery to v1.7.7
2021-08-19 10:30:53 +02:00
Kamil Mysliwiec
e7413664bb Merge pull request #7886 from nestjs/renovate/light-my-request-4.x
fix(deps): update dependency light-my-request to v4.4.3
2021-08-19 10:30:35 +02:00
Renovate Bot
08e9122228 chore(deps): update dependency @types/node to v14.17.10 2021-08-18 22:51:31 +00:00
Renovate Bot
7d02baaaab chore(deps): update dependency ts-node to v10.2.1 2021-08-18 18:32:04 +00:00
Renovate Bot
918da9470f chore(deps): update dependency artillery to v1.7.7 2021-08-18 15:11:18 +00:00
Renovate Bot
3bbc93a2ad fix(deps): update dependency light-my-request to v4.4.3 2021-08-18 10:59:44 +00:00
Kamil Mysliwiec
c23eec9685 Merge pull request #7876 from nestjs/renovate/core-js-3.x
chore(deps): update dependency core-js to v3.16.2
2021-08-18 09:55:30 +02:00
Kamil Mysliwiec
a2d9f533ce Merge pull request #7880 from nestjs/renovate/supertest-6.x
chore(deps): update dependency supertest to v6.1.6
2021-08-18 09:55:03 +02:00
kvandake
1935b9cd1d fix server-nats 2021-08-18 09:54:58 +03:00
Renovate Bot
66667d8c64 chore(deps): update dependency supertest to v6.1.6 2021-08-17 23:29:46 +00:00
kvandake
7a277cedd4 fix serialize value 2021-08-17 23:32:41 +03:00
kvandake
9d75d4b393 format change code 2021-08-17 22:57:26 +03:00
kvandake
74af340f9a add headers in messages to nats client
P.S. kafka serializer style
2021-08-17 22:50:03 +03:00
Renovate Bot
68d0859575 chore(deps): update dependency core-js to v3.16.2 2021-08-17 13:58:07 +00:00
Kamil Mysliwiec
a1b3cb4a50 Merge pull request #7871 from nestjs/renovate/ts-jest-27.x
chore(deps): update dependency ts-jest to v27.0.5
2021-08-17 13:38:08 +02:00
Kamil Mysliwiec
190274d9cd Merge pull request #7865 from nestjs/renovate/light-my-request-4.x
fix(deps): update dependency light-my-request to v4.4.2
2021-08-17 13:38:03 +02:00
Kamil Mysliwiec
d47591e811 Merge pull request #7864 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v4.29.2
2021-08-17 13:37:58 +02:00
Kamil Mysliwiec
21b38d3db8 Merge pull request #7860 from nestjs/renovate/nestjs-mongoose-8.x
fix(deps): update dependency @nestjs/mongoose to v8.0.1
2021-08-17 13:37:48 +02:00
Kamil Myśliwiec
a225632199 test(core): add missing argument to apply version filter method 2021-08-17 12:39:09 +02:00
Kamil Myśliwiec
7c394b6110 fix(platform-fastify): fix versioning (media type and header) 2021-08-17 11:34:48 +02:00
Renovate Bot
eed921796f chore(deps): update dependency ts-jest to v27.0.5 2021-08-17 05:33:27 +00:00
Renovate Bot
00631d9472 fix(deps): update dependency light-my-request to v4.4.2 2021-08-16 22:51:44 +00:00
Renovate Bot
73e257edd2 chore(deps): update typescript-eslint monorepo to v4.29.2 2021-08-16 18:20:26 +00:00
Renovate Bot
a3453b4230 fix(deps): update dependency @nestjs/mongoose to v8.0.1 2021-08-16 07:51:12 +00:00
Kamil Mysliwiec
986dacfd4c Merge pull request #7849 from nestjs/renovate/fastify-3.x
fix(deps): update dependency fastify to v3.20.2
2021-08-16 09:50:49 +02:00
Kamil Mysliwiec
f570ad9e8a Merge pull request #7857 from nestjs/renovate/webpack-cli-4.x
chore(deps): update dependency webpack-cli to v4.8.0
2021-08-16 09:44:54 +02:00
Kamil Myśliwiec
2405b66075 feat(common): add precondition required to http status enum #7859 2021-08-16 09:42:46 +02:00
Kamil Myśliwiec
9d0551ff25 style(): run prettier 2021-08-16 09:30:29 +02:00
Renovate Bot
1ccdd69f24 chore(deps): update dependency webpack-cli to v4.8.0 2021-08-15 22:57:07 +00:00
Renovate Bot
941de57770 chore(deps): update mongo docker tag to v5 2021-08-14 16:39:34 +00:00
Renovate Bot
80ab46f6b0 fix(deps): update dependency fastify to v3.20.2 2021-08-13 23:45:34 +00:00
Kamil Mysliwiec
524dc72159 Merge pull request #7841 from nestjs/dependabot/npm_and_yarn/types/node-16.6.1
chore(deps-dev): bump @types/node from 16.4.3 to 16.6.1
2021-08-13 13:45:22 +02:00
Kamil Mysliwiec
2170b2b81a Merge pull request #7842 from nestjs/renovate/jest-27.x
chore(deps): update dependency @types/jest to v27.0.1
2021-08-13 13:43:34 +02:00
Kamil Mysliwiec
6be0d39f77 Merge pull request #7845 from nestjs/renovate/typeorm-0.x
fix(deps): update dependency typeorm to v0.2.37
2021-08-13 13:43:23 +02:00
Renovate Bot
58a01f5e1e fix(deps): update dependency typeorm to v0.2.37 2021-08-13 08:14:48 +00:00
Renovate Bot
8fd4479ee5 chore(deps): update dependency @types/jest to v27.0.1 2021-08-13 01:06:00 +00:00
dependabot[bot]
74f21e51fe chore(deps-dev): bump @types/node from 16.4.3 to 16.6.1
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 16.4.3 to 16.6.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-13 00:05:49 +00:00
Kamil Mysliwiec
07342bf84e Merge pull request #7801 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v4.29.1
2021-08-12 11:07:07 +02:00
Kamil Mysliwiec
320c118708 Merge pull request #7826 from nestjs/renovate/supertest-6.x
chore(deps): update dependency supertest to v6.1.5
2021-08-12 11:06:59 +02:00
Kamil Mysliwiec
d61b88ee28 Merge pull request #7827 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.13.7
2021-08-12 11:06:43 +02:00
Kamil Mysliwiec
c8e6eb28e0 Merge pull request #7830 from nestjs/renovate/tslib-2.x
fix(deps): update dependency tslib to v2.3.1
2021-08-12 11:06:29 +02:00
Renovate Bot
c1424d326c fix(deps): update dependency tslib to v2.3.1 2021-08-12 00:05:57 +00:00
Renovate Bot
0f5f76fe17 fix(deps): update dependency mongoose to v5.13.7 2021-08-11 20:05:00 +00:00
Renovate Bot
701d77f78a chore(deps): update dependency supertest to v6.1.5 2021-08-11 19:03:38 +00:00
Renovate Bot
b2a7ff3d6a chore(deps): update typescript-eslint monorepo to v4.29.1 2021-08-11 10:06:34 +00:00
Kamil Mysliwiec
3bb7020f4d Merge pull request #7815 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.50.0
2021-08-11 11:05:11 +02:00
Kamil Mysliwiec
b4a1cc2803 Merge pull request #7816 from nestjs/renovate/jest-27.x
chore(deps): update dependency @types/jest to v27
2021-08-11 11:05:03 +02:00
Kamil Mysliwiec
4f249cf88d Merge pull request #7817 from nestjs/renovate/npm-path-parse-vulnerability
chore(deps): update dependency path-parse to 1.0.7 [security]
2021-08-11 11:04:59 +02:00
Kamil Mysliwiec
596be624af Merge pull request #7818 from nestjs/renovate/babel-monorepo
chore(deps): update babel monorepo to v7.15.3
2021-08-11 11:04:51 +02:00
Kamil Mysliwiec
c39eff5fd0 Merge pull request #7803 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.13.6
2021-08-11 11:04:41 +02:00
Renovate Bot
ed613668c0 chore(deps): update babel monorepo to v7.15.3 2021-08-11 07:52:40 +00:00
Renovate Bot
a485b3d2d2 chore(deps): update dependency path-parse to 1.0.7 [security] 2021-08-11 07:51:20 +00:00
Renovate Bot
6f550ca25d chore(deps): update dependency @types/jest to v27 2021-08-10 20:39:49 +00:00
Renovate Bot
7cc31bd279 chore(deps): update dependency webpack to v5.50.0 2021-08-10 20:28:51 +00:00
Renovate Bot
555b42ee9d fix(deps): update dependency mongoose to v5.13.6 2021-08-10 10:27:22 +00:00
Kamil Mysliwiec
bcb58a61aa Merge pull request #7804 from nestjs/renovate/grpc-grpc-js-1.x
fix(deps): update dependency @grpc/grpc-js to v1.3.7
2021-08-10 11:01:20 +02:00
Renovate Bot
092a9bdb67 fix(deps): update dependency @grpc/grpc-js to v1.3.7 2021-08-10 08:05:47 +00:00
Kamil Mysliwiec
fdd973ceab Merge pull request #7797 from techvlad/bugfix/server-kafka-client-logCreator
fix(microservices): reorder kafka config assigment
2021-08-10 09:55:56 +02:00
Kamil Mysliwiec
cf28dfa565 Merge pull request #7802 from nestjs/renovate/graphql-query-complexity-0.x
fix(deps): update dependency graphql-query-complexity to v0.9.0
2021-08-10 09:09:14 +02:00
Kamil Mysliwiec
a87bda1b9f Merge pull request #7794 from nestjs/renovate/multer-1.x
fix(deps): update dependency multer to v1.4.3
2021-08-10 09:08:59 +02:00
Kamil Mysliwiec
811d9e7bde Merge pull request #7777 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.49.0
2021-08-10 09:08:53 +02:00
Kamil Mysliwiec
dc9e6bc814 Merge pull request #7766 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v8.0.6
2021-08-10 09:08:48 +02:00
Kamil Mysliwiec
c8f0fa82cf Merge pull request #7800 from knopkem/mongo-typeorm-v3
downgrade mongodb to v3
2021-08-10 09:07:58 +02:00
Kamil Mysliwiec
2bbda5aced Update sample/13-mongo-typeorm/package.json 2021-08-10 09:07:49 +02:00
Renovate Bot
8e6e505024 fix(deps): update dependency graphql-query-complexity to v0.9.0 2021-08-09 20:06:10 +00:00
Michael Knopke
91b54b0985 fix(samples): downgrade dependency mongodb to 3.6.11 to fix incompatibility issue with v4+ 2021-08-09 19:38:40 +02:00
Vlad Krokhin
2084157cf7 fix(microservices): reorder kafka config assigment 2021-08-09 16:52:08 +03:00
Renovate Bot
034594c195 chore(deps): update dependency webpack to v5.49.0 2021-08-09 10:58:31 +00:00
Renovate Bot
bafe0f9f8e fix(deps): update nest monorepo to v8.0.6 2021-08-09 10:57:41 +00:00
Renovate Bot
b17d2e974c fix(deps): update dependency multer to v1.4.3 2021-08-09 10:30:46 +00:00
Kamil Myśliwiec
664f531d2a Merge branch 'master' of https://github.com/nestjs/nest 2021-08-09 09:26:41 +02:00
Kamil Myśliwiec
2d334271ec fix(common): check if debug and verbose methods are defined (logger) #7782 2021-08-09 09:26:35 +02:00
Kamil Mysliwiec
ce6e0348ab Merge pull request #7775 from nestjs/renovate/lint-staged-11.x
chore(deps): update dependency lint-staged to v11.1.2
2021-08-09 08:59:12 +02:00
Kamil Mysliwiec
f8c57b95a8 Merge pull request #7776 from nestjs/renovate/bull-3.x
fix(deps): update dependency bull to v3.28.1
2021-08-09 08:59:02 +02:00
Kamil Mysliwiec
3368cf7e12 Merge pull request #7783 from nestjs/renovate/concurrently-6.x
chore(deps): update dependency concurrently to v6.2.1
2021-08-09 08:58:48 +02:00
Kamil Mysliwiec
fb876baa97 Merge pull request #7785 from nestjs/renovate/core-js-3.x
chore(deps): update dependency core-js to v3.16.1
2021-08-09 08:58:44 +02:00
Kamil Mysliwiec
3d652d3ce3 Merge pull request #7786 from nestjs/renovate/eslint-plugin-import-2.x
chore(deps): update dependency eslint-plugin-import to v2.24.0
2021-08-09 08:58:39 +02:00
Kamil Mysliwiec
7d9209d605 Merge pull request #7792 from nestjs/renovate/ts-node-10.x
chore(deps): update dependency ts-node to v10.2.0
2021-08-09 08:58:27 +02:00
Renovate Bot
c49a84b420 chore(deps): update dependency ts-node to v10.2.0 2021-08-09 00:56:19 +00:00
Renovate Bot
368e7b95b1 chore(deps): update dependency eslint-plugin-import to v2.24.0 2021-08-08 23:07:33 +00:00
Renovate Bot
c97a376e09 chore(deps): update dependency core-js to v3.16.1 2021-08-08 18:26:03 +00:00
Renovate Bot
a181753d51 chore(deps): update dependency concurrently to v6.2.1 2021-08-08 10:47:48 +00:00
Renovate Bot
fb77de075e fix(deps): update dependency bull to v3.28.1 2021-08-06 11:18:26 +00:00
Renovate Bot
a75882d166 chore(deps): update dependency lint-staged to v11.1.2 2021-08-06 07:27:01 +00:00
Kamil Mysliwiec
90c7040524 Merge pull request #7771 from nestjs/renovate/bull-3.x
fix(deps): update dependency bull to v3.28.0
2021-08-06 08:53:47 +02:00
Kamil Mysliwiec
0d629c9b86 Merge pull request #7769 from nestjs/renovate/mysql2-2.x
fix(deps): update dependency mysql2 to v2.3.0
2021-08-06 08:53:42 +02:00
Kamil Mysliwiec
b78f9fa32e Merge pull request #7767 from nestjs/renovate/fastify-static-4.x
fix(deps): update dependency fastify-static to v4.2.3
2021-08-06 08:53:38 +02:00
Kamil Mysliwiec
a22e3e30c8 Merge pull request #7762 from nestjs/renovate/babel-monorepo
chore(deps): update babel monorepo to v7.15.0
2021-08-06 08:53:25 +02:00
Kamil Mysliwiec
80b09e61fb Merge pull request #7760 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.9
2021-08-06 08:53:19 +02:00
Kamil Mysliwiec
cacfa2d552 Merge pull request #7758 from nestjs/renovate/nestjs-bull-0.x
fix(deps): update dependency @nestjs/bull to v0.4.1
2021-08-06 08:53:14 +02:00
Kamil Mysliwiec
8a7b5a54d3 Merge pull request #7750 from nestjs/renovate/nestjs-typeorm-8.x
fix(deps): update dependency @nestjs/typeorm to v8.0.2
2021-08-06 08:53:09 +02:00
Kamil Myśliwiec
f91cd20230 fix(microservices): use debug log level for ping timer status (nats) #7772 2021-08-06 08:52:20 +02:00
Kamil Myśliwiec
89c7c5009a fix(core): trigger before app shutdown hook for middlewares #7768 2021-08-06 08:49:30 +02:00
Renovate Bot
3504f094f2 fix(deps): update dependency bull to v3.28.0 2021-08-05 18:51:33 +00:00
Renovate Bot
97a9bf05de fix(deps): update dependency mysql2 to v2.3.0 2021-08-05 14:06:14 +00:00
Renovate Bot
59b4d5979c chore(deps): update babel monorepo to v7.15.0 2021-08-05 10:44:36 +00:00
Renovate Bot
2b43740d5e fix(deps): update dependency fastify-static to v4.2.3 2021-08-05 10:43:16 +00:00
Renovate Bot
46781cb3aa chore(deps): update dependency @types/node to v14.17.9 2021-08-05 08:46:05 +00:00
Kamil Myśliwiec
e11d3d6bf3 chore(): update package.json and readme files 2021-08-05 10:03:29 +02:00
Kamil Myśliwiec
b5d8db6d14 chore(@nestjs) publish v8.0.6 release 2021-08-05 10:02:57 +02:00
Kamil Myśliwiec
8a56183422 Merge branch 'master' of https://github.com/nestjs/nest 2021-08-05 09:58:49 +02:00
Kamil Myśliwiec
3657d5fb34 fix(core): deep clone router module routes 2021-08-05 09:58:40 +02:00
Renovate Bot
05daee3a41 fix(deps): update dependency @nestjs/bull to v0.4.1 2021-08-04 08:08:07 +00:00
Renovate Bot
a5fb2b7c62 fix(deps): update dependency @nestjs/typeorm to v8.0.2 2021-08-04 06:54:32 +00:00
Kamil Mysliwiec
432cf5bf01 Merge pull request #7751 from nestjs/renovate/fastify-3.x
fix(deps): update dependency fastify to v3.20.1
2021-08-04 08:48:45 +02:00
Kamil Mysliwiec
8326077bd5 Merge pull request #7753 from nestjs/renovate/ts-loader-9.x
chore(deps): update dependency ts-loader to v9.2.5
2021-08-04 08:48:40 +02:00
Kamil Mysliwiec
a92b473798 Merge pull request #7754 from nestjs/renovate/mongodb-4.x
fix(deps): update dependency mongodb to v4.1.0
2021-08-04 08:48:34 +02:00
Kamil Mysliwiec
7bf103f75f Merge pull request #7717 from ssilve1989/fix/rxjs-memory-leak
fix(microservices): cleanup subscription in client-side streaming gRPC calls
2021-08-04 08:42:13 +02:00
Renovate Bot
d9e4c0f6f2 fix(deps): update dependency mongodb to v4.1.0 2021-08-03 22:02:22 +00:00
Renovate Bot
66dfe04159 chore(deps): update dependency ts-loader to v9.2.5 2021-08-03 21:01:51 +00:00
ssilve1989
6d6b139250 fix(microservices): cleanup upstream subscription in client-side gRPC stream calls 2021-08-03 08:43:42 -06:00
Renovate Bot
3fb9f853bf fix(deps): update dependency fastify to v3.20.1 2021-08-03 10:44:11 +00:00
Kamil Mysliwiec
f0728016a6 Merge pull request #7747 from nestjs/renovate/nestjs-passport-8.x
fix(deps): update dependency @nestjs/passport to v8.0.1
2021-08-03 12:38:44 +02:00
Renovate Bot
4704b672df fix(deps): update dependency @nestjs/passport to v8.0.1 2021-08-03 08:09:30 +00:00
Kamil Mysliwiec
b6f3059faf Merge pull request #7738 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.48.0
2021-08-03 10:06:22 +02:00
Kamil Mysliwiec
8f640dbfc4 Merge pull request #7742 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v4.29.0
2021-08-03 10:06:16 +02:00
Kamil Mysliwiec
b9cf146fdc Merge pull request #7740 from nestjs/renovate/fastify-3.x
fix(deps): update dependency fastify to v3.20.0
2021-08-03 10:06:06 +02:00
Kamil Mysliwiec
61d8b7ecc9 Merge pull request #7699 from nestjs/renovate/rxjs-7.x
fix(deps): update dependency rxjs to v7.3.0
2021-08-03 10:05:54 +02:00
Kamil Mysliwiec
b347a2a2e0 Merge pull request #7716 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.13.5
2021-08-03 10:05:48 +02:00
Kamil Mysliwiec
745c818cff Merge pull request #7736 from nestjs/renovate/nest-monorepo
chore(deps): update nest monorepo
2021-08-03 10:05:39 +02:00
Renovate Bot
a60acfac5a chore(deps): update typescript-eslint monorepo to v4.29.0 2021-08-02 18:07:44 +00:00
Renovate Bot
6ddd021290 fix(deps): update dependency fastify to v3.20.0 2021-08-02 14:15:49 +00:00
Renovate Bot
c1cfa1d90f chore(deps): update dependency webpack to v5.48.0 2021-08-02 13:02:04 +00:00
Renovate Bot
fc80d97f5f chore(deps): update nest monorepo 2021-08-02 09:29:54 +00:00
Kamil Mysliwiec
e0bfe8dbda Update Readme.md 2021-08-02 11:08:37 +02:00
Renovate Bot
e29ff99a4f fix(deps): update dependency rxjs to v7.3.0 2021-08-02 08:48:46 +00:00
Kamil Myśliwiec
4b12f02f8c Merge branch 'master' of https://github.com/nestjs/nest 2021-08-02 10:31:12 +02:00
Kamil Myśliwiec
0b64023fbd fix(core): exclude forward refs from distance calculation #7715 2021-08-02 10:31:05 +02:00
Renovate Bot
6697b71042 fix(deps): update dependency mongoose to v5.13.5 2021-08-02 07:40:16 +00:00
Kamil Mysliwiec
851402bc60 Merge pull request #7708 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.47.1
2021-08-02 09:34:52 +02:00
Kamil Mysliwiec
f258a00443 Merge pull request #7712 from nestjs/renovate/core-js-3.x
chore(deps): update dependency core-js to v3.16.0
2021-08-02 09:34:27 +02:00
Kamil Mysliwiec
bf2af3c74a Merge pull request #7718 from nestjs/renovate/eslint-7.x
chore(deps): update dependency eslint to v7.32.0
2021-08-02 09:34:18 +02:00
Kamil Mysliwiec
3cf5797529 Merge pull request #7719 from nestjs/renovate/typeorm-0.x
fix(deps): update dependency typeorm to v0.2.36
2021-08-02 09:34:10 +02:00
Kamil Mysliwiec
3351c65a05 Merge pull request #7722 from nestjs/renovate/babel-monorepo
chore(deps): update babel monorepo to v7.14.9
2021-08-02 09:34:06 +02:00
Kamil Mysliwiec
6656e04939 Merge pull request #7727 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.7
2021-08-02 09:34:01 +02:00
Kamil Mysliwiec
e5d7410666 Merge pull request #7679 from nestjs/renovate/ts-morph-11.x
fix(deps): update dependency ts-morph to v11.0.3
2021-08-02 09:33:07 +02:00
Kamil Mysliwiec
eb7782d450 Merge pull request #7670 from nestjs/renovate/nest-monorepo
chore(deps): pin dependencies
2021-08-02 09:32:58 +02:00
Renovate Bot
29ebb178d7 chore(deps): update dependency @types/node to v14.17.7 2021-08-01 13:46:13 +00:00
Renovate Bot
72e8d9ae2e chore(deps): update babel monorepo to v7.14.9 2021-08-01 08:20:21 +00:00
Renovate Bot
8de690c45a fix(deps): update dependency typeorm to v0.2.36 2021-07-31 02:24:25 +00:00
Renovate Bot
4bf0159bde chore(deps): update dependency eslint to v7.32.0 2021-07-31 00:03:15 +00:00
Renovate Bot
26bb6eb81e chore(deps): update dependency core-js to v3.16.0 2021-07-30 05:05:25 +00:00
Renovate Bot
2c25480d9a chore(deps): update dependency webpack to v5.47.1 2021-07-29 16:15:05 +00:00
Renovate Bot
0e94d636cf fix(deps): update dependency ts-morph to v11.0.3 2021-07-29 12:47:23 +00:00
Renovate Bot
a5098eeeb5 chore(deps): pin dependencies 2021-07-29 12:42:47 +00:00
Kamil Mysliwiec
c22f8a7795 Merge pull request #7703 from nestjs/renovate/typeorm-0.x
fix(deps): update dependency typeorm to v0.2.35
2021-07-29 13:13:37 +02:00
Kamil Mysliwiec
8c609c22b2 Merge pull request #7694 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.13.4
2021-07-29 13:13:23 +02:00
Kamil Mysliwiec
9044a03a08 Merge pull request #7693 from nestjs/renovate/fast-json-stringify-2.x
fix(deps): update dependency fast-json-stringify to v2.7.8
2021-07-29 13:13:14 +02:00
Kamil Mysliwiec
df212fd4db Merge pull request #7690 from nestjs/renovate/nestjs-schedule-1.x
fix(deps): update dependency @nestjs/schedule to v1.0.1
2021-07-29 13:13:00 +02:00
Kamil Mysliwiec
36e455f3b2 Merge pull request #7689 from nestjs/renovate/apollo-graphql-packages
fix(deps): update apollo graphql packages
2021-07-29 13:12:53 +02:00
Kamil Mysliwiec
86092c2289 Merge pull request #7680 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.47.0
2021-07-29 13:12:32 +02:00
Kamil Mysliwiec
5b5c4b8476 Merge pull request #7675 from nestjs/renovate/pin-dependencies
fix(deps): pin dependencies
2021-07-29 13:12:20 +02:00
Kamil Mysliwiec
696cc79598 Merge pull request #7705 from nestjs/renovate/nestjs-swagger-5.x
fix(deps): update dependency @nestjs/swagger to v5.0.9
2021-07-29 13:12:01 +02:00
Renovate Bot
54a6829f6f fix(deps): update dependency @nestjs/swagger to v5.0.9 2021-07-29 08:24:24 +00:00
Renovate Bot
e1dc8ed33c fix(deps): update dependency typeorm to v0.2.35 2021-07-29 04:19:34 +00:00
Renovate Bot
b0e9c74500 fix(deps): update dependency mongoose to v5.13.4 2021-07-28 22:26:52 +00:00
Renovate Bot
afdbfe3c87 fix(deps): update dependency fast-json-stringify to v2.7.8 2021-07-28 22:23:16 +00:00
Renovate Bot
859cec20e7 fix(deps): update apollo graphql packages 2021-07-28 12:04:14 +00:00
Renovate Bot
8600abc93d chore(deps): update dependency webpack to v5.47.0 2021-07-28 11:59:32 +00:00
Renovate Bot
1f81f7c3ca fix(deps): pin dependencies 2021-07-28 11:58:28 +00:00
Renovate Bot
fb5c751ea9 fix(deps): update dependency @nestjs/schedule to v1.0.1 2021-07-28 11:22:12 +00:00
Kamil Mysliwiec
d18195db66 Merge pull request #7671 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): pin dependencies
2021-07-28 12:43:22 +02:00
Kamil Mysliwiec
47b454a978 Merge pull request #7672 from nestjs/renovate/jest-monorepo
chore(deps): pin dependency jest to 27.0.6
2021-07-28 12:43:13 +02:00
Kamil Mysliwiec
e43cd89cfa Merge pull request #7673 from nestjs/renovate/apollo-graphql-packages
fix(deps): pin dependencies
2021-07-28 12:43:04 +02:00
Kamil Mysliwiec
04ecad8f55 Merge pull request #7676 from nestjs/renovate/graphql-tools-monorepo
fix(deps): pin dependency graphql-tools to v7.0.5
2021-07-28 12:42:38 +02:00
Kamil Mysliwiec
3fb1024cfc Merge pull request #7678 from nestjs/renovate/sinon-11.x
chore(deps): update dependency sinon to v11.1.2
2021-07-28 12:42:32 +02:00
Kamil Mysliwiec
680f92bdeb Merge pull request #7683 from nestjs/renovate/bull-3.x
chore(deps): update dependency @types/bull to v3.15.3
2021-07-28 12:42:15 +02:00
Renovate Bot
36db079cad chore(deps): update dependency sinon to v11.1.2 2021-07-28 09:01:55 +00:00
Renovate Bot
3a91758010 chore(deps): update dependency @types/bull to v3.15.3 2021-07-28 08:59:44 +00:00
Renovate Bot
80f1c33ae9 fix(deps): pin dependency graphql-tools to 7.0.5 2021-07-28 08:58:03 +00:00
Renovate Bot
40ec0dd653 fix(deps): pin dependencies 2021-07-28 08:35:01 +00:00
Renovate Bot
023369a0b5 chore(deps): pin dependency jest to 27.0.6 2021-07-28 08:30:34 +00:00
Renovate Bot
07c4120092 chore(deps): pin dependencies 2021-07-28 08:26:09 +00:00
Kamil Myśliwiec
739edd963f sample(32-federation): update graphql federation sample tests 2021-07-28 08:52:05 +02:00
Kamil Myśliwiec
d38375828d Merge branch 'master' of https://github.com/nestjs/nest 2021-07-28 08:50:29 +02:00
Kamil Myśliwiec
3ab7258448 sample(): update graphql federation sample tests 2021-07-28 08:50:18 +02:00
Kamil Mysliwiec
7e64117904 Merge pull request #7653 from nestjs/dependabot/npm_and_yarn/types/node-16.4.3
chore(deps-dev): bump @types/node from 15.14.0 to 16.4.3
2021-07-27 12:55:48 +02:00
Kamil Mysliwiec
ac71d062eb Merge pull request #7668 from nestjs/renovate/bull-3.x
fix(deps): update dependency bull to v3.27.0
2021-07-27 12:55:34 +02:00
Kamil Myśliwiec
e30b63c0ac Merge branch 'Flusinerd-feat/graphql-federation-sample' 2021-07-27 12:55:17 +02:00
Kamil Myśliwiec
5a89f3a2d9 sample(31-32): minor updates 2021-07-27 12:55:09 +02:00
Kamil Myśliwiec
cee55aa742 Merge branch 'feat/graphql-federation-sample' of https://github.com/Flusinerd/nest into Flusinerd-feat/graphql-federation-sample 2021-07-27 12:48:05 +02:00
Kamil Myśliwiec
8b2dd9a084 chore(@nestjs) publish v8.0.5 release 2021-07-27 12:46:56 +02:00
Kamil Myśliwiec
ec6f0444bc Merge branch 'Zclhlmgqzc-fix-fastify-adapter-middleware' 2021-07-27 12:45:09 +02:00
Kamil Myśliwiec
ce122d6c24 fix(): minor updates to avoid breaking changes 2021-07-27 12:44:41 +02:00
Kamil Myśliwiec
8c3fe84d96 Merge branch 'fix-fastify-adapter-middleware' of https://github.com/Zclhlmgqzc/nest into Zclhlmgqzc-fix-fastify-adapter-middleware 2021-07-27 12:24:11 +02:00
Renovate Bot
cc6d11f852 fix(deps): update dependency bull to v3.27.0 2021-07-27 09:54:37 +00:00
dependabot[bot]
4418122356 chore(deps-dev): bump @types/node from 15.14.0 to 16.4.3
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 15.14.0 to 16.4.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-27 08:39:25 +00:00
Kamil Mysliwiec
3d16e3bcc7 Merge pull request #7646 from nestjs/renovate/node-14.x
chore(deps): update dependency @types/node to v14.17.6
2021-07-27 10:36:02 +02:00
Kamil Mysliwiec
1821a185d0 Merge pull request #7248 from konqi/master
feature(microservices): allow deserializers to be async and await result
2021-07-27 10:35:34 +02:00
Kamil Mysliwiec
d0c1a45aac Merge pull request #7399 from nestjs/fix/7381-transient-providers-resolution
fix(core): fallback to parent inquirer when transient dep chain #7381
2021-07-27 10:35:20 +02:00
Kamil Mysliwiec
fa2b2bd2d2 Merge pull request #7589 from dzunftmeister-evorhei/master
fix(platform-express): only set Content-Type if not done for StramableFiles
2021-07-27 10:35:15 +02:00
Kamil Mysliwiec
95230ec32c Merge pull request #7613 from evolkmann/feat/console-logger-reset-context
feat(common): add `resetContext()` to `ConsoleLogger`
2021-07-27 10:35:00 +02:00
Kamil Mysliwiec
e697f062ae Merge pull request #7659 from jhmen/nats-create-inbox
feat(microservices): use createInbox method
2021-07-27 10:34:07 +02:00
Renovate Bot
8c3b9fb8c1 chore(deps): update dependency @types/node to v14.17.6 2021-07-27 07:10:55 +00:00
Kamil Mysliwiec
0d61521357 Merge pull request #7644 from nestjs/renovate/ts-loader-9.x
chore(deps): update dependency ts-loader to v9.2.4
2021-07-27 08:29:11 +02:00
Kamil Mysliwiec
3b95188866 Merge pull request #7643 from nestjs/renovate/major-commitlint-monorepo
chore(deps): update commitlint monorepo to v13 (major)
2021-07-27 08:24:44 +02:00
Kamil Mysliwiec
b8229461a7 Merge pull request #7645 from nestjs/renovate/lint-staged-11.x
chore(deps): update dependency lint-staged to v11.1.1
2021-07-27 08:24:12 +02:00
Kamil Mysliwiec
c2a363c5bb Merge pull request #7648 from nestjs/renovate/mocha-9.x
chore(deps): update dependency mocha to v9.0.3
2021-07-27 08:23:07 +02:00
Kamil Mysliwiec
c48797d6f2 Merge pull request #7663 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v4.28.5
2021-07-27 08:22:31 +02:00
Renovate Bot
5a3ef3db3b chore(deps): update typescript-eslint monorepo to v4.28.5 2021-07-26 18:11:58 +00:00
jhmen
534419f604 feat(microservices): use createInbox method 2021-07-26 11:21:48 +02:00
Renovate Bot
a37b7fde98 chore(deps): update dependency mocha to v9.0.3 2021-07-25 16:47:03 +00:00
Renovate Bot
c6ff840cfd chore(deps): update dependency lint-staged to v11.1.1 2021-07-24 12:17:03 +00:00
Renovate Bot
ce74185ba5 chore(deps): update dependency ts-loader to v9.2.4 2021-07-24 10:43:23 +00:00
Renovate Bot
6afe77bd5c chore(deps): update commitlint monorepo to v13 2021-07-24 08:19:47 +00:00
Kamil Mysliwiec
6dbcfb1471 Merge pull request #7619 from nestjs/renovate/ts-jest-27.x
chore(deps): update dependency ts-jest to v27.0.4
2021-07-23 11:47:25 +02:00
Kamil Mysliwiec
4e2d391413 Merge pull request #7629 from nestjs/renovate/nestjs-swagger-5.x
fix(deps): update dependency @nestjs/swagger to v5.0.8
2021-07-23 11:47:11 +02:00
Kamil Mysliwiec
ad445d9c42 Merge pull request #7630 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.46.0
2021-07-23 11:46:45 +02:00
Kamil Mysliwiec
d0c601a0bb Merge pull request #7632 from nestjs/renovate/lint-staged-11.x
chore(deps): update dependency lint-staged to v11.1.0
2021-07-23 11:46:38 +02:00
Kamil Mysliwiec
ae3e959865 Merge pull request #7633 from nestjs/renovate/mocha-9.x
chore(deps): update dependency @types/mocha to v9
2021-07-23 11:46:24 +02:00
Renovate Bot
925f92a1c6 chore(deps): update dependency @types/mocha to v9 2021-07-22 14:42:24 +00:00
Renovate Bot
d5f6b3170e chore(deps): update dependency lint-staged to v11.1.0 2021-07-22 14:40:14 +00:00
Renovate Bot
55d9edc21f fix(deps): update dependency @nestjs/swagger to v5.0.8 2021-07-22 14:37:56 +00:00
Renovate Bot
0f58b760fe chore(deps): update dependency webpack to v5.46.0 2021-07-22 10:27:15 +00:00
Renovate Bot
97f99ec51f chore(deps): update dependency ts-jest to v27.0.4 2021-07-22 08:35:15 +00:00
Kamil Myśliwiec
27ae8d2dd3 Merge branch 'master' of https://github.com/nestjs/nest 2021-07-22 10:14:00 +02:00
Kamil Myśliwiec
fecc9b3bbf test(core): add unit test to ensure stack is printed in new line 2021-07-22 10:13:53 +02:00
Kamil Mysliwiec
51f5a0e504 Merge pull request #7621 from nestjs/renovate/fastify-3.x
fix(deps): update dependency fastify to v3.19.2
2021-07-22 08:12:10 +02:00
Kamil Mysliwiec
67ed9ffe34 Merge pull request #7620 from nestjs/renovate/fastify-formbody-5.x
fix(deps): update dependency fastify-formbody to v5.1.0
2021-07-22 08:11:45 +02:00
Kamil Mysliwiec
56091c5623 Merge pull request #7618 from nestjs/renovate/supertest-6.x
chore(deps): update dependency supertest to v6.1.4
2021-07-22 08:11:39 +02:00
Kamil Mysliwiec
ec0b89235f Merge pull request #7615 from nestjs/renovate/mongodb-4.x
fix(deps): update dependency mongodb to v4.0.1
2021-07-22 08:11:34 +02:00
Kamil Mysliwiec
767f602d80 Merge pull request #7614 from nestjs/renovate/babel-monorepo
chore(deps): update babel monorepo to v7.14.8
2021-07-22 08:11:28 +02:00
Kamil Mysliwiec
0b6ba94cf5 Merge pull request #7604 from nestjs/renovate/grpc-grpc-js-1.x
fix(deps): update dependency @grpc/grpc-js to v1.3.6
2021-07-22 08:11:23 +02:00
Kamil Mysliwiec
50fe1e7821 Merge pull request #7603 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v4.28.4
2021-07-22 08:11:16 +02:00
Kamil Mysliwiec
00fd801d64 Merge pull request #7591 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.13.3
2021-07-22 08:11:09 +02:00
Kamil Mysliwiec
6ae1e7017b Merge pull request #7588 from nestjs/renovate/bull-3.x
fix(deps): update dependency bull to v3.26.0
2021-07-22 08:11:04 +02:00
Kamil Mysliwiec
ff7a474d6a Merge pull request #7587 from nestjs/renovate/nestjs-swagger-5.x
fix(deps): update dependency @nestjs/swagger to v5.0.4
2021-07-22 08:10:59 +02:00
Kamil Mysliwiec
93260220e6 Merge pull request #7584 from nestjs/renovate/nestjs-schematics-8.x
chore(deps): update dependency @nestjs/schematics to v8.0.2
2021-07-22 08:10:48 +02:00
Renovate Bot
2fdad5eff7 fix(deps): update dependency fastify to v3.19.2 2021-07-21 21:04:59 +00:00
Renovate Bot
2e238409b4 fix(deps): update dependency fastify-formbody to v5.1.0 2021-07-21 18:03:16 +00:00
Renovate Bot
122450bf94 chore(deps): update dependency supertest to v6.1.4 2021-07-21 05:33:11 +00:00
Renovate Bot
663641eacb fix(deps): update dependency mongodb to v4.0.1 2021-07-20 22:14:49 +00:00
Renovate Bot
e8b9d66e1a chore(deps): update babel monorepo to v7.14.8 2021-07-20 18:59:52 +00:00
Enzo Volkmann
60ca357fc6 test(common): add tests for ConsoleLogger#resetContext() 2021-07-20 16:33:30 +02:00
Enzo Volkmann
3f0de4eefd feat(common): add resetContext() to ConsoleLogger 2021-07-20 16:16:20 +02:00
Renovate Bot
d87fb4ddf1 chore(deps): update typescript-eslint monorepo to v4.28.4 2021-07-20 12:04:52 +00:00
Renovate Bot
928fd86b24 chore(deps): update dependency @nestjs/schematics to v8.0.2 2021-07-20 11:42:41 +00:00
Kamil Myśliwiec
bddecac3a7 fix(common): fix cache module type error 2021-07-20 13:16:56 +02:00
Renovate Bot
abad05002a fix(deps): update dependency bull to v3.26.0 2021-07-20 09:57:34 +00:00
Renovate Bot
bb98368648 fix(deps): update dependency mongoose to v5.13.3 2021-07-20 09:43:49 +00:00
Renovate Bot
8adec4f20f fix(deps): update dependency @nestjs/swagger to v5.0.4 2021-07-20 08:43:46 +00:00
Renovate Bot
706195f23c fix(deps): update dependency @grpc/grpc-js to v1.3.6 2021-07-20 08:42:55 +00:00
Kamil Mysliwiec
644fec3fc0 Merge pull request #7610 from nestjs/renovate/ws-7.x
chore(deps): update dependency @types/ws to v7.4.7
2021-07-20 09:55:24 +02:00
Kamil Mysliwiec
77636ef203 Merge pull request #7605 from nestjs/renovate/mysql-5.x
chore(deps): update mysql docker tag to v5.7.35
2021-07-20 09:55:16 +02:00
Kamil Mysliwiec
0b34312790 Merge pull request #7593 from nestjs/renovate/eslint-7.x
chore(deps): update dependency eslint to v7.31.0
2021-07-20 09:54:46 +02:00
Kamil Mysliwiec
333cb76561 Merge pull request #7590 from nestjs/renovate/webpack-5.x
chore(deps): update dependency webpack to v5.45.1
2021-07-20 09:54:35 +02:00
Kamil Mysliwiec
ca58d03fb1 Merge pull request #7577 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v8.0.4
2021-07-20 09:54:04 +02:00
Renovate Bot
154c0fc9b2 chore(deps): update dependency @types/ws to v7.4.7 2021-07-20 00:37:49 +00:00
Renovate Bot
f0ef3455cc chore(deps): update mysql docker tag to v5.7.35 2021-07-19 21:58:33 +00:00
dominik zunftmeister
ed6745427d allow falsy values too, to be compatible with fastify implementation 2021-07-19 22:31:16 +02:00
Zclhlmgqzc
383d87e5cd fix(platform-express): middleware include RequestMethod 2021-07-18 17:56:12 +08:00
Renovate Bot
c2a795c155 chore(deps): update dependency eslint to v7.31.0 2021-07-17 22:39:28 +00:00
Renovate Bot
451f2f8c72 chore(deps): update dependency webpack to v5.45.1 2021-07-16 21:09:42 +00:00
dominik zunftmeister
9a36f933e1 fix(platform-express): only set Content-Type if not already done for StramableFiles 2021-07-16 13:40:58 +02:00
Renovate Bot
63c2a14008 fix(deps): update nest monorepo to v8.0.4 2021-07-16 11:29:10 +00:00
Kamil Mysliwiec
cabd6703ad Merge pull request #7585 from nestjs/renovate/bull-3.x
fix(deps): update dependency bull to v3.25.1
2021-07-16 12:45:59 +02:00
Kamil Myśliwiec
f3c17e7588 test(): add compare element and internal core module unit tests 2021-07-16 10:31:47 +02:00
Renovate Bot
485da680e7 fix(deps): update dependency bull to v3.25.1 2021-07-16 08:14:31 +00:00
Kamil Myśliwiec
08d19a6f27 Merge branch 'renovate/nestjs-graphql-8.x' 2021-07-16 10:10:03 +02:00
Kamil Myśliwiec
6e5e55789c chore(): resolve conflicts 2021-07-16 10:09:46 +02:00
Kamil Myśliwiec
3631c1abe4 chore(@nestjs) publish v8.0.4 release 2021-07-16 09:36:28 +02:00
Kamil Myśliwiec
f5998e17c7 Merge branch 'master' of https://github.com/nestjs/nest 2021-07-16 09:35:08 +02:00
Kamil Myśliwiec
d76040bacc fix(core): the default distance should be 1 #7582 2021-07-16 09:35:04 +02:00
Kamil Mysliwiec
96f9e5fe8d Merge pull request #7578 from nestjs/renovate/bull-3.x
fix(deps): update dependency bull to v3.25.0
2021-07-16 09:30:08 +02:00
Renovate Bot
41c998bee0 fix(deps): update dependency bull to v3.25.0 2021-07-15 13:54:31 +00:00
Zclhlmgqzc
22c204df23 fix(platform-fastify): FastifyAdapter Middleware no run 2021-07-14 15:26:23 +08:00
Renovate Bot
7f38657624 fix(deps): update dependency @nestjs/graphql to v8 2021-07-12 15:15:27 +00:00
Jan Krueger
cc596184f0 sample(sample/32): fix e2e tests 2021-07-09 20:08:51 +02:00
Jan Krueger
1d8a64d54a sample(sample/31): fix e2e tests 2021-07-09 20:08:46 +02:00
Jan Krueger
6f4ac0ceb2 sample: remove e2e test for graphql federation samples 2021-07-09 19:29:24 +02:00
Jan Krueger
d4739e817a ci: fix gulp move for multi-application samples 2021-07-09 18:59:03 +02:00
Jan Krueger
a0557c752b refactor: fix wrong dir naming for graphql federation samples 2021-07-09 16:56:20 +02:00
Jan Krueger
a39b2c2c3c ci(gulp): support multi-application samples 2021-07-09 16:01:59 +02:00
Jan Krueger
e1307c58d3 docs(samples): add graphql-federation schema-first sample
add graphql-federation schema-first sample applications

Closes #4686
2021-07-09 00:41:00 +02:00
Jan Krueger
6582e5c233 docs(samples): add graphql-federation code-first sample
Add sample-applications for graphql-federation code-first approach

#4686
2021-07-09 00:24:35 +02:00
Kamil Myśliwiec
830ee31525 fix(core): fallback to parent inquirer when transient dep chain 2021-07-05 12:59:15 +02:00
Johann Wagner
88cf1a178a allow deserializers to be async and await result 2021-07-01 19:50:02 +02:00
457 changed files with 127761 additions and 82392 deletions

View File

@@ -1,41 +0,0 @@
---
name: "\U0001F41B Bug Report"
about: "If something isn't working as expected \U0001F914."
title: ''
labels: 'type: potential issue :broken_heart:,needs triage'
assignees: ''
---
## Bug Report
## Current behavior
<!-- Describe how the issue manifests. -->
## Input Code
<!-- REPL or Repo link if applicable: -->
```ts
const your = (code) => here;
```
## Expected behavior
<!-- A clear and concise description of what you expected to happen (or code). -->
## Possible Solution
<!--- Only if you have suggestions on a fix for the bug -->
## Environment
<pre><code>
Nest version: X.Y.Z
<!-- Check whether this is still an issue in the most recent Nest version -->
For Tooling issues:
- Node version: XX <!-- run `node --version` -->
- Platform: <!-- Mac, Linux, Windows -->
Others:
<!-- Anything else relevant? Operating system version, IDE, package manager, ... -->
</code></pre>

138
.github/ISSUE_TEMPLATE/Bug_report.yml vendored Normal file
View File

@@ -0,0 +1,138 @@
name: "\U0001F41B Bug Report"
description: "If something isn't working as expected \U0001F914"
labels: ["needs triage"]
body:
- type: markdown
attributes:
value: |
## :warning: We use GitHub Issues to track bug reports, feature requests and regressions
If you are not sure that your issue is a bug, you could:
- use our [Discord community](https://discord.gg/NestJS)
- use [StackOverflow using the tag `nestjs`](https://stackoverflow.com/questions/tagged/nestjs)
- If it's just a quick question you can ping [our Twitter](https://twitter.com/nestframework)
**NOTE:** You don't need to answer questions that you know that aren't relevant.
---
- type: checkboxes
attributes:
label: "Is there an existing issue for this?"
description: "Please search [here](https://github.com/nestjs/nest/issues?q=is%3Aissue) to see if an issue already exists for the bug you encountered"
options:
- label: "I have searched the existing issues"
required: true
- type: textarea
validations:
required: true
attributes:
label: "Current behavior"
description: "How the issue manifests?"
- type: input
validations:
required: true
attributes:
label: "Minimum reproduction code"
description: "An URL to some git repository that reproduces this issue. [Wtf is a minimum reproduction?](https://jmcdo29.github.io/wtf-is-a-minimum-reproduction)"
placeholder: "https://github.com/..."
- type: textarea
attributes:
label: "Steps to reproduce"
description: |
How the issue manifests?
You could leave this blank if you alread write this in your reproduction code
placeholder: |
1. `npm i`
2. `npm start:dev`
3. See error...
- type: textarea
validations:
required: true
attributes:
label: "Expected behavior"
description: "A clear and concise description of what you expected to happend (or code)"
- type: markdown
attributes:
value: |
---
- type: checkboxes
validations:
required: true
attributes:
label: "Package"
description: |
Which package (or packages) do you think your issue is related to?
**Tip**: The first line of the stack trace can help you to figure out this
The package isn't listed below? Try to find its repository [here](https://github.com/orgs/nestjs/repositories) and open the issue there instead
options:
- label: "I don't know. Or some 3rd-party package"
- label: "<code>@nestjs/common</code>"
- label: "<code>@nestjs/core</code>"
- label: "<code>@nestjs/microservices</code>"
- label: "<code>@nestjs/platform-express</code>"
- label: "<code>@nestjs/platform-fastify</code>"
- label: "<code>@nestjs/platform-socket.io</code>"
- label: "<code>@nestjs/platform-ws</code>"
- label: "<code>@nestjs/testing</code>"
- label: "<code>@nestjs/websockets</code>"
- label: "Other (see below)"
- type: input
attributes:
label: "Other package"
description: "If your issue is related to some package that is not listed above nor under @nestjs org, write its name here"
- type: input
attributes:
label: "NestJS version"
description: |
Which version of `@nestjs/core` are you using?
**Tip**: Make sure that all of yours `@nestjs/*` dependencies are in sync!
placeholder: "8.1.3"
- type: textarea
validations:
required: true
attributes:
label: "Packages versions"
description: "You could leave your whole `package.json` dependencies list here, or just indicates which version of `@nestjs/*` are you using"
placeholder: |
- `@nestjs/common`: 8.1.3
- `@nestjs/platform-express`: 8.1.3
- type: input
attributes:
label: "Node.js version"
description: "Which version of Node.js are you using?"
placeholder: "14.17.6"
- type: checkboxes
validations:
required: true
attributes:
label: "In which operating systems have you tested?"
options:
- label: macOS
- label: Windows
- label: Linux
- type: markdown
attributes:
value: |
---
- type: textarea
attributes:
label: "Other"
description: |
Anything else relevant? eg: Logs, OS version, IDE, package manager, etc.
**Tip:** You can attach images, recordings or log files by clicking this area to highlight it and then dragging files in

View File

@@ -1,22 +0,0 @@
---
name: "\U0001F680 Feature Request"
about: "I have a suggestion \U0001F63B!"
title: ''
labels: 'type: enhancement :wolf:,needs triage'
assignees: ''
---
## Feature Request
## Is your feature request related to a problem? Please describe.
<!-- A clear and concise description of what the problem is. Ex. I have an issue when [...] -->
## Describe the solution you'd like
<!-- A clear and concise description of what you want to happen. Add any considered drawbacks. -->
## Teachability, Documentation, Adoption, Migration Strategy
<!-- If you can, explain how users will be able to use this and possibly write out a version the docs. Maybe a screenshot or design? -->
## What is the motivation / use case for changing the behavior?
<!-- Describe the motivation or the concrete use case. -->

View File

@@ -0,0 +1,54 @@
name: "\U0001F680 Feature Request"
description: "I have a suggestion \U0001F63B!"
labels: ["type: enhancement :wolf:", "needs triage"]
body:
- type: markdown
attributes:
value: |
## :warning: We use GitHub Issues to track bug reports, feature requests and regressions
If you are not sure that your issue is a bug, you could:
- use our [Discord community](https://discord.gg/NestJS)
- use [StackOverflow using the tag `nestjs`](https://stackoverflow.com/questions/tagged/nestjs)
- If it's just a quick question you can ping [our Twitter](https://twitter.com/nestframework)
---
- type: checkboxes
attributes:
label: "Is there an existing issue that is already proposing this?"
description: "Please search [here](https://github.com/nestjs/nest/issues?q=is%3Aissue) to see if an issue already exists for the feature you are requesting"
options:
- label: "I have searched the existing issues"
required: true
- type: textarea
validations:
required: true
attributes:
label: "Is your feature request related to a problem? Please describe it"
description: "A clear and concise description of what the problem is"
placeholder: |
I have an issue when ...
- type: textarea
validations:
required: true
attributes:
label: "Describe the solution you'd like"
description: "A clear and concise description of what you want to happen. Add any considered drawbacks"
- type: textarea
validations:
required: true
attributes:
label: "Teachability, documentation, adoption, migration strategy"
description: "If you can, explain how users will be able to use this and possibly write out a version the docs. Maybe a screenshot or design?"
- type: textarea
validations:
required: true
attributes:
label: "What is the motivation / use case for changing the behavior?"
description: "Describe the motivation or the concrete use case"

View File

@@ -1,40 +0,0 @@
---
name: "\U0001F4A5 Regression"
about: Report an unexpected while upgrading your Nest application!
title: ''
labels: 'type: bug :sob:,needs triage'
assignees: ''
---
## Regression
<!-- First check out: https://docs.nestjs.com/migration-guide -->
## Potential Commit/PR that introduced the regression**
<!-- If you have time to investigate, what PR/date introduced this issue. -->
## Describe the regression
<!-- A clear and concise description of what the regression is. -->
## Input Code
<!--- If you have link to our REPL or a standalone repo please link that! -->
```ts
const your = (code) => here;
```
## Expected behavior/code
<!-- A clear and concise description of what you expected to happen (or code). -->
## Environment
<pre><code>
Nest version: A.B.C -> X.Y.Z
For Tooling issues:
- Node version: XX <!-- run `node --version` -->
- Platform: <!-- Mac, Linux, Windows -->
Others:
<!-- Anything else relevant? Operating system version, IDE, package manager, ... -->
</code></pre>

83
.github/ISSUE_TEMPLATE/Regression.yml vendored Normal file
View File

@@ -0,0 +1,83 @@
name: "\U0001F4A5 Regression"
description: "Report an unexpected while upgrading your Nest application!"
labels: ["type: bug :sob:", "needs triage"]
body:
- type: markdown
attributes:
value: |
## :warning: We use GitHub Issues to track bug reports, feature requests and regressions
If you are not sure that your issue is a bug, you could:
- use our [Discord community](https://discord.gg/NestJS)
- use [StackOverflow using the tag `nestjs`](https://stackoverflow.com/questions/tagged/nestjs)
- If it's just a quick question you can ping [our Twitter](https://twitter.com/nestframework)
**NOTE:** You don't need to answer questions that you know that aren't relevant.
---
- type: checkboxes
attributes:
label: "Did you read the migration guide?"
description: "Check out the [migration guide here](https://docs.nestjs.com/migration-guide)!"
options:
- label: "I have read the whole migration guide"
required: false
- type: checkboxes
attributes:
label: "Is there an existing issue that is already proposing this?"
description: "Please search [here](https://github.com/nestjs/nest/issues?q=is%3Aissue) to see if an issue already exists for the feature you are requesting"
options:
- label: "I have searched the existing issues"
required: true
- type: input
attributes:
label: "Potential Commit/PR that introduced the regression"
description: "If you have time to investigate, what PR/date/version introduced this issue"
placeholder: "PR #123 or commit 5b3c4a4"
- type: input
validations:
required: true
attributes:
label: "NestJS version"
placeholder: "8.1.0 -> 8.1.3"
- type: textarea
validations:
required: true
attributes:
label: "Describe the regression"
description: "A clear and concise description of what the regression is"
- type: input
attributes:
label: "Minimum reproduction code"
description: "An URL to some git repository that reproduces this issue. [Wtf is a minimum reproduction?](https://jmcdo29.github.io/wtf-is-a-minimum-reproduction)"
placeholder: "https://github.com/..."
- type: textarea
attributes:
label: "Input code"
description: "Write some code snippets if you think it is worth it"
value: |
```ts
```
- type: textarea
validations:
required: true
attributes:
label: "Expected behavior"
description: "A clear and concise description of what you expected to happend (or code)"
- type: textarea
attributes:
label: "Other"
description: |
Anything else relevant? eg: Logs, OS version, IDE, package manager, etc.
**Tip:** You can attach images, recordings or log files by clicking this area to highlight it and then dragging files in

View File

@@ -0,0 +1,48 @@
title: "perf: "
name: "\U0001F525 Suggestion for Improving Performance"
description: "I have a suggestion that might improve the performance of Nest \U00002728"
labels: ["type: enhancement :wolf:", "needs triage"]
body:
- type: checkboxes
attributes:
label: "Is there an existing issue that is already proposing this?"
description: "Please search [here](https://github.com/nestjs/nest/issues?q=is%3Aissue) to see if an issue already exists for this"
options:
- label: "I have searched the existing issues"
required: true
- type: input
validations:
required: true
attributes:
label: "NestJS version"
description: "Which version do you intend to improve?"
placeholder: "8.1.3"
- type: textarea
attributes:
label: "Is your performance suggestion related to a problem? Please describe it"
description: "A clear and concise description of what the problem is"
- type: textarea
validations:
required: true
attributes:
label: "Describe the performance enhancement you are proposing and how we can try it out"
placeholder: |
Cache `array.length` on the following lines ...
- type: textarea
validations:
required: true
attributes:
label: "Benchmarks result or another proof (eg: POC)"
description: |
If you've already prototyped a solution, share your results here
If not, what makes you believe there will be a performance improvement?
placeholder: |
```
```
MacBook Pro Mid 2014, 2.5 GHz Quad-Core Intel Core i7, 16 GB 1600 MHz DDR3, SSD

View File

@@ -1,14 +0,0 @@
---
name: "\U0001F917 Support Question"
about: "If you have a question \U0001F4AC, please check out our Discord or StackOverflow!"
title: ''
labels: 'type: question 🙌,needs triage'
assignees: ''
---
<!-- We primarily use GitHub as an issue tracker; for usage and support questions, please check out these resources below. Thanks! 😁. -->
* Discord Community Chat: https://discord.gg/G7Qnnhy
* StackOverflow: https://stackoverflow.com/questions/tagged/nestjs using the tag `nestjs`
* Twitter: If it's just a quick question you can ping our Twitter: https://twitter.com/nestframework

7
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,7 @@
## To encourage contributors to use issue templates, we don't allow blank issues
blank_issues_enabled: false
contact_links:
- name: "\u2753 Discord Community of NestJS"
url: "https://discord.gg/NestJS"
about: "Please ask support questions or discuss suggestions/enhancements here."

View File

@@ -69,7 +69,7 @@ A minimal reproduce scenario using a repository or Gist allows us to quickly con
<!-- We will be insisting on a minimal reproduce scenario in order to save maintainers time and ultimately be able to fix more bugs. Interestingly, from our experience users often find coding problems themselves while preparing a minimal plunk. We understand that sometimes it might be hard to extract essentials bits of code from a larger code-base but we really need to isolate the problem before we can fix it. -->
Unfortunately, we are not able to investigate / fix bugs without a minimal reproduction, so if we don't hear back from you we are going to close an issue that don't have enough info to be reproduced.
Unfortunately, we are not able to investigate / fix bugs without a minimal reproduction, so if we don't hear back from you we are going to close an issue that doesn't have enough info to be reproduced.
You can file new issues by filling out our [new issue form](https://github.com/nestjs/nest/issues/new).
@@ -173,7 +173,7 @@ $ npm i # (or yarn install)
$ sh scripts/prepare.sh
```
That will compile fresh packages and afterward, move them to all `sample` directories as well as integration tests.
That will compile fresh packages and afterward, move them all to `sample` directories.
### <a name="common-scripts"></a>Commonly used NPM scripts
@@ -228,7 +228,7 @@ format that includes a **type**, a **scope** and a **subject**:
The **header** is mandatory and the **scope** of the header is optional.
Any line of the commit message cannot be longer 100 characters! This allows the message to be easier
Any line of the commit message cannot be longer than 100 characters! This allows the message to be easier
to read on GitHub as well as in various git tools.
Footer should contain a [closing reference to an issue](https://help.github.com/articles/closing-issues-via-commit-messages/) if any.

View File

@@ -67,8 +67,11 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<table style="text-align:center;"><tr><td>
<a href="https://careers.labster.com/departments/platform" target="_blank"><img src="https://nestjs.com/img/labster-logo.png" width="170" valign="middle" /></a></td><td>
<a href="https://weld.so/" target="_blank"><img src="https://nestjs.com/img/weld-logo.svg" width="150" valign="middle" /></a></td><td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="170" valign="middle" /></a></td></tr></table>
<a href="https://weld.app/" target="_blank"><img src="https://nestjs.com/img/weld-logo.svg" width="150" valign="middle" /></a></td>
<td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="170" valign="middle" /></a></td>
<td>
<a href="https://intrinsic.ventures/" target="_blank"><img src="https://nestjs.com/img/intrinisic-logo.png" width="210" valign="middle" /></a></td></</tr></table>
#### Silver Sponsors
@@ -76,8 +79,9 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://neoteric.eu/" target="_blank"><img src="https://nestjs.com/img/neoteric-cut.png" width="120" valign="middle" /></a> </td><td>
<a href="http://gojob.com" target="_blank"><img src="http://nestjs.com/img/gojob-logo.png" valign="middle" width="100" /></a> </td><td>
<a href="http://www.leogistics.com" target="_blank"><img src="https://nestjs.com/img/leogistics-logo.jpeg" width="150" valign="middle" /></td><td>
<a href="http://www.meetdandy.com" target="_blank"><img src="https://nestjs.com/img/dandy-wide-logo.png" width="150" valign="middle" /></td><td>
<a href="https://www.castlecraft.in" target="_blank"><img src="https://nestjs.com/img/castlecraft-logo.png" width="150" valign="middle" /></td></tr></table>
<a href="https://careers.meetdandy.com/?gh_src=063ba61e3us" target="_blank"><img src="https://nestjs.com/img/dandy-roles-logo.svg" width="150" valign="middle" /></td><td>
<a href="https://www.castlecraft.in" target="_blank"><img src="https://nestjs.com/img/castlecraft-logo.png" width="150" valign="middle" /></td>
<td><a href="https://www.tinystacks.com" target="_blank"><img src="https://nestjs.com/img/tinystacks-logo.png#1" width="140" valign="middle" /></td></tr></table>
#### Sponsors
@@ -108,6 +112,7 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<td align="center" valign="middle"><a href="https://www.bystored.com/" target="_blank"><img src="https://nestjs.com/img/stored-logo.svg" width="110" valign="middle" /></a></td>
<td align="center" valign="middle"><a href="https://studyclerk.com/pay-for-research-paper" target="_blank"><img src="https://nestjs.com/img/studyclerk-logo.png" width="125" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://xyndata.com" target="_blank"><img src="https://nestjs.com/img/xyndata-logo.png" width="125" valign="middle" /></a></td></tr><tr>
<td align="center" valign="middle"><a href="https://www.anonymistic.com/" target="_blank"><img src="https://nestjs.com/img/anonymistic-logo.png" width="125" valign="middle" /></a></td>
<td align="center" valign="middle"><a href="https://www.naologic.com/" target="_blank"><img src="https://nestjs.com/img/naologic-logo.svg" width="125" valign="middle" /></a></td>
</tr></table>
## Backers

5
SECURITY.md Normal file
View File

@@ -0,0 +1,5 @@
# Security Policy
## Reporting a Vulnerability
Please report security issues to `support@nestjs.com`.

View File

@@ -3,7 +3,8 @@ import * as redisStore from 'cache-manager-redis-store';
import { MultiStoreController } from './multi-store.controller';
@Module({
imports: [CacheModule.register([
imports: [
CacheModule.register([
{
store: 'memory',
max: 100,
@@ -14,10 +15,10 @@ import { MultiStoreController } from './multi-store.controller';
host: 'localhost',
port: 6379,
db: 0,
ttl: 600
}
],
)],
ttl: 600,
},
]),
],
controllers: [MultiStoreController],
})
export class MultiStoreModule {}

View File

@@ -43,7 +43,7 @@ describe('Express Cors', () => {
await app.init();
});
it(`Should add cors headers based on the first config`, async () => {
it(`should add cors headers based on the first config`, async () => {
return request(app.getHttpServer())
.get('/')
.expect('access-control-allow-origin', 'example.com')
@@ -53,7 +53,7 @@ describe('Express Cors', () => {
.expect('content-length', '0');
});
it(`Should add cors headers based on the second config`, async () => {
it(`should add cors headers based on the second config`, async () => {
return request(app.getHttpServer())
.options('/')
.expect('access-control-allow-origin', 'sample.com')
@@ -91,7 +91,7 @@ describe('Express Cors', () => {
await app.init();
});
it(`Should add cors headers based on the first config`, async () => {
it(`should add cors headers based on the first config`, async () => {
return request(app.getHttpServer())
.get('/')
.expect('access-control-allow-origin', 'example.com')
@@ -101,7 +101,7 @@ describe('Express Cors', () => {
.expect('content-length', '0');
});
it(`Should add cors headers based on the second config`, async () => {
it(`should add cors headers based on the second config`, async () => {
return request(app.getHttpServer())
.options('/')
.expect('access-control-allow-origin', 'sample.com')

View File

@@ -43,7 +43,7 @@ describe('Fastify Cors', () => {
await app.init();
});
it(`Should add cors headers based on the first config`, async () => {
it(`should add cors headers based on the first config`, async () => {
return request(app.getHttpServer())
.get('/')
.expect('access-control-allow-origin', 'example.com')
@@ -53,7 +53,7 @@ describe('Fastify Cors', () => {
.expect('content-length', '0');
});
it(`Should add cors headers based on the second config`, async () => {
it(`should add cors headers based on the second config`, async () => {
return request(app.getHttpServer())
.options('/')
.expect('access-control-allow-origin', 'sample.com')
@@ -91,7 +91,7 @@ describe('Fastify Cors', () => {
await app.init();
});
it(`Should add cors headers based on the first config`, async () => {
it(`should add cors headers based on the first config`, async () => {
return request(app.getHttpServer())
.get('/')
.expect('access-control-allow-origin', 'example.com')
@@ -101,7 +101,7 @@ describe('Fastify Cors', () => {
.expect('content-length', '0');
});
it(`Should add cors headers based on the second config`, async () => {
it(`should add cors headers based on the second config`, async () => {
return request(app.getHttpServer())
.options('/')
.expect('access-control-allow-origin', 'sample.com')
@@ -147,6 +147,7 @@ describe('Fastify Cors', () => {
after(async () => {
await app.close();
});
describe('Application Options', () => {
before(async () => {
const module = await Test.createTestingModule({

View File

@@ -23,7 +23,7 @@ services:
- "9001:9001"
restart: always
mysql:
image: mysql:5.7.34
image: mysql:8.0.27
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test
@@ -48,7 +48,7 @@ services:
zookeeper:
container_name: test-zookeeper
hostname: zookeeper
image: confluentinc/cp-zookeeper:6.2.0
image: confluentinc/cp-zookeeper:6.2.1
ports:
- "2181:2181"
environment:
@@ -57,7 +57,7 @@ services:
kafka:
container_name: test-kafka
hostname: kafka
image: confluentinc/cp-kafka:6.2.0
image: confluentinc/cp-kafka:7.0.0
depends_on:
- zookeeper
ports:

View File

@@ -30,28 +30,16 @@ describe('GraphQL Pipes', () => {
errors: [
{
extensions: {
code: 'INTERNAL_SERVER_ERROR',
exception: {
message: 'Bad Request Exception',
name: 'BadRequestException',
response: {
message: [
'description must be longer than or equal to 30 characters',
],
error: 'Bad Request',
statusCode: 400,
},
status: 400,
code: 'BAD_USER_INPUT',
response: {
error: 'Bad Request',
message: [
'description must be longer than or equal to 30 characters',
],
statusCode: 400,
},
},
locations: [
{
column: 3,
line: 2,
},
],
message: 'Bad Request Exception',
path: ['addRecipe'],
},
],
});

View File

@@ -1,6 +1,6 @@
import { NotFoundException, UseGuards, UseInterceptors } from '@nestjs/common';
import { Args, Mutation, Query, Resolver, Subscription } from '@nestjs/graphql';
import { PubSub } from 'apollo-server-express';
import { PubSub } from 'graphql-subscriptions';
import { AuthGuard } from '../common/guards/auth.guard';
import { DataInterceptor } from '../common/interceptors/data.interceptor';
import { NewRecipeInput } from './dto/new-recipe.input';

View File

@@ -25,6 +25,11 @@ class TestController {
return RETURN_VALUE;
}
@Get('test/test')
testTest() {
return RETURN_VALUE;
}
@Get('test2')
test2() {
return RETURN_VALUE;
@@ -85,6 +90,12 @@ describe('Exclude middleware (fastify)', () => {
return request(app.getHttpServer()).get('/test').expect(200, RETURN_VALUE);
});
it(`should not exclude "/test/test" endpoint`, () => {
return request(app.getHttpServer())
.get('/test/test')
.expect(200, MIDDLEWARE_VALUE);
});
it(`should not exclude "/test2" endpoint`, () => {
return request(app.getHttpServer())
.get('/test2')

View File

@@ -5,17 +5,21 @@ import {
Injectable,
MiddlewareConsumer,
Module,
RequestMethod,
} from '@nestjs/common';
import { Test } from '@nestjs/testing';
import * as request from 'supertest';
import { ApplicationModule } from '../src/app.module';
import { Response } from 'express';
const INCLUDED_VALUE = 'test_included';
const RETURN_VALUE = 'test';
const WILDCARD_VALUE = 'test_wildcard';
@Injectable()
class Middleware {
use(req, res, next) {
res.send(RETURN_VALUE);
res.send(WILDCARD_VALUE);
}
}
@@ -23,7 +27,7 @@ class Middleware {
class TestController {
@Get('test')
test() {
return 'test';
return RETURN_VALUE;
}
}
@@ -33,7 +37,11 @@ class TestController {
})
class TestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(Middleware).forRoutes('*');
consumer
.apply((req, res: Response, next) => res.status(201).end(INCLUDED_VALUE))
.forRoutes({ path: 'tests/included', method: RequestMethod.POST })
.apply(Middleware)
.forRoutes('*');
}
}
@@ -51,7 +59,27 @@ describe('Middleware (class)', () => {
});
it(`forRoutes(*)`, () => {
return request(app.getHttpServer()).get('/hello').expect(200, RETURN_VALUE);
return request(app.getHttpServer())
.get('/hello')
.expect(200, WILDCARD_VALUE);
});
it(`/test forRoutes(*)`, () => {
return request(app.getHttpServer())
.get('/test')
.expect(200, WILDCARD_VALUE);
});
it(`GET forRoutes(POST tests/included)`, () => {
return request(app.getHttpServer())
.get('/tests/included')
.expect(200, WILDCARD_VALUE);
});
it(`POST forRoutes(POST tests/included)`, () => {
return request(app.getHttpServer())
.post('/tests/included')
.expect(201, INCLUDED_VALUE);
});
afterEach(async () => {

View File

@@ -1,4 +1,11 @@
import { Controller, Get, MiddlewareConsumer, Module } from '@nestjs/common';
import {
Controller,
Get,
MiddlewareConsumer,
Module,
Query,
RequestMethod,
} from '@nestjs/common';
import {
FastifyAdapter,
NestFastifyApplication,
@@ -7,35 +14,70 @@ import { Test } from '@nestjs/testing';
import { expect } from 'chai';
import { ApplicationModule } from '../src/app.module';
const INCLUDED_VALUE = 'test_included';
const QUERY_VALUE = 'test_query';
const REQ_URL_VALUE = 'test_req_url';
const RETURN_VALUE = 'test';
const SCOPED_VALUE = 'test_scoped';
const WILDCARD_VALUE = 'test_wildcard';
@Controller()
class TestController {
@Get('express_style_wildcard/wildcard_nested')
express_style_wildcard() {
return RETURN_VALUE;
}
@Get('test')
test() {
return RETURN_VALUE;
}
@Get('query')
query() {
return RETURN_VALUE;
}
@Get('tests/wildcard_nested')
wildcard_nested() {
return RETURN_VALUE;
}
@Get('tests/included')
included() {
return RETURN_VALUE;
}
}
@Controller(QUERY_VALUE)
class TestQueryController {
@Get()
[QUERY_VALUE](@Query('test') test: string) {
return test;
}
}
@Module({
imports: [ApplicationModule],
controllers: [TestController],
controllers: [TestController, TestQueryController],
})
class TestModule {
configure(consumer: MiddlewareConsumer) {
consumer
.apply((req, res, next) => res.end(INCLUDED_VALUE))
.forRoutes({ path: 'tests/included', method: RequestMethod.POST })
.apply((req, res, next) => res.end(`${REQ_URL_VALUE}${req.url}`))
.forRoutes('req/url/')
.apply((req, res, next) => res.end(WILDCARD_VALUE))
.forRoutes('tests/(.*)')
.forRoutes('express_style_wildcard/*', 'tests/(.*)')
.apply((req, res, next) => res.end(QUERY_VALUE))
.forRoutes('query')
.apply((req, res, next) => next())
.forRoutes(TestQueryController)
.apply((req, res, next) => res.end(SCOPED_VALUE))
.forRoutes(TestController)
.apply((req, res, next) => res.end(RETURN_VALUE))
.exclude({ path: QUERY_VALUE, method: -1 })
.forRoutes('(.*)');
}
}
@@ -53,7 +95,7 @@ describe('Middleware (FastifyAdapter)', () => {
await app.init();
});
it(`forRoutes(*)`, () => {
it(`forRoutes((.*))`, () => {
return app
.inject({
method: 'GET',
@@ -71,15 +113,78 @@ describe('Middleware (FastifyAdapter)', () => {
.then(({ payload }) => expect(payload).to.be.eql(SCOPED_VALUE));
});
it(`forRoutes(tests/*)`, () => {
it(`query?test=${QUERY_VALUE} forRoutes(query)`, () => {
return app
.inject({
method: 'GET',
url: '/tests/wildcard',
url: '/query',
query: {
test: QUERY_VALUE,
},
})
.then(({ payload }) => expect(payload).to.be.eql(QUERY_VALUE));
});
it(`${QUERY_VALUE}?test=${QUERY_VALUE} forRoutes(${QUERY_VALUE})`, () => {
return app
.inject({
method: 'GET',
url: QUERY_VALUE,
query: {
test: QUERY_VALUE,
},
})
.then(({ payload }) => expect(payload).to.be.eql(QUERY_VALUE));
});
it(`forRoutes(tests/(.*))`, () => {
return app
.inject({
method: 'GET',
url: '/tests/wildcard_nested',
})
.then(({ payload }) => expect(payload).to.be.eql(WILDCARD_VALUE));
});
it(`forRoutes(express_style_wildcard/*)`, () => {
return app
.inject({
method: 'GET',
url: '/express_style_wildcard/wildcard_nested',
})
.then(({ payload }) => expect(payload).to.be.eql(WILDCARD_VALUE));
});
it(`forRoutes(req/url/)`, () => {
const reqUrl = '/test';
return app
.inject({
method: 'GET',
url: `/req/url${reqUrl}`,
})
.then(({ payload }) =>
expect(payload).to.be.eql(`${REQ_URL_VALUE}${reqUrl}`),
);
});
it(`GET forRoutes(POST tests/included)`, () => {
return app
.inject({
method: 'GET',
url: '/tests/included',
})
.then(({ payload }) => expect(payload).to.be.eql(WILDCARD_VALUE));
});
it(`POST forRoutes(POST tests/included)`, () => {
return app
.inject({
method: 'POST',
url: '/tests/included',
})
.then(({ payload }) => expect(payload).to.be.eql(INCLUDED_VALUE));
});
afterEach(async () => {
await app.close();
});

View File

@@ -16,7 +16,8 @@ class TestInjectable
OnModuleInit,
OnModuleDestroy,
OnApplicationShutdown,
BeforeApplicationShutdown {
BeforeApplicationShutdown
{
onApplicationBootstrap = Sinon.spy();
beforeApplicationShutdown = Sinon.spy();
onApplicationShutdown = Sinon.spy();

View File

@@ -10,7 +10,8 @@ const SIGNAL_TO_LISTEN = process.argv[3];
@Injectable()
class TestInjectable
implements OnApplicationShutdown, BeforeApplicationShutdown {
implements OnApplicationShutdown, BeforeApplicationShutdown
{
beforeApplicationShutdown(signal: string) {
console.log('beforeApplicationShutdown ' + signal);
}

View File

@@ -14,9 +14,8 @@ describe('Core Injectables', () => {
});
it('should provide ApplicationConfig as core injectable', () => {
const applicationConfig = testingModule.get<ApplicationConfig>(
ApplicationConfig,
);
const applicationConfig =
testingModule.get<ApplicationConfig>(ApplicationConfig);
applicationConfig.setGlobalPrefix('/api');

View File

@@ -0,0 +1,46 @@
import { INestApplication } from '@nestjs/common';
import { Transport } from '@nestjs/microservices';
import { Test } from '@nestjs/testing';
import * as request from 'supertest';
import { MqttController } from '../src/mqtt/mqtt.controller';
describe('MQTT transport', () => {
let server;
let app: INestApplication;
beforeEach(async () => {
const module = await Test.createTestingModule({
controllers: [MqttController],
}).compile();
app = module.createNestApplication();
server = app.getHttpAdapter().getInstance();
app.connectMicroservice({
transport: Transport.MQTT,
options: {
url: 'mqtt://0.0.0.0:1883',
subscribeOptions: {
qos: 1,
},
},
});
await app.startAllMicroservices();
await app.init();
});
it(`/POST (setting packet options with "RecordBuilder")`, () => {
const payload = { items: [1, 2, 3] };
return request(server)
.post('/record-builder-duplex')
.send(payload)
.expect(200, {
data: payload,
qos: 1,
});
});
afterEach(async () => {
await app.close();
});
});

View File

@@ -96,6 +96,19 @@ describe('NATS transport', () => {
});
});
it(`/POST (sending headers with "RecordBuilder")`, () => {
const payload = { items: [1, 2, 3] };
return request(server)
.post('/record-builder-duplex')
.send(payload)
.expect(200, {
data: payload,
headers: {
['x-version']: '1.0.0',
},
});
});
afterEach(async () => {
await app.close();
});

View File

@@ -89,6 +89,20 @@ describe('RabbitMQ transport', () => {
});
});
it(`/POST (sending options with "RecordBuilder")`, () => {
const payload = { items: [1, 2, 3] };
return request(server)
.post('/record-builder-duplex')
.send(payload)
.expect(200, {
data: payload,
headers: {
['x-version']: '1.0.0',
},
priority: 3,
});
});
afterEach(async () => {
await app.close();
});

View File

@@ -59,14 +59,15 @@ class ClientOptionService implements ClientsModuleOptionsFactory {
name: 'USE_CLASS_CLIENT',
useClass: ClientOptionService,
inject: [ConfigService],
}, {
},
{
imports: [ConfigModule],
inject: [ConfigService],
name: 'CUSTOM_PROXY_CLIENT',
useFactory: (config: ConfigService) => ({
customClass: ErrorHandlingProxy
})
}
customClass: ErrorHandlingProxy,
}),
},
]),
],
controllers: [AppController],

View File

@@ -14,23 +14,21 @@ export class DisconnectedClientController {
@Post()
call(@Body() options): Observable<number> {
const client = ClientProxyFactory.create(options);
return client
.send<number, number[]>({ cmd: 'none' }, [1, 2, 3])
.pipe(
/*tap(
return client.send<number, number[]>({ cmd: 'none' }, [1, 2, 3]).pipe(
/*tap(
console.log.bind(console, 'data'),
console.error.bind(console, 'error'),
),*/
catchError(error => {
const { code } = error || { code: 'CONN_ERR' };
return throwError(() =>
code === 'ECONNREFUSED' ||
code === 'CONN_ERR' ||
code === 'CONNECTION_REFUSED'
? new RequestTimeoutException('ECONNREFUSED')
: new InternalServerErrorException(),
);
}),
);
catchError(error => {
const { code } = error || { code: 'CONN_ERR' };
return throwError(() =>
code === 'ECONNREFUSED' ||
code === 'CONN_ERR' ||
code === 'CONNECTION_REFUSED'
? new RequestTimeoutException('ECONNREFUSED')
: new InternalServerErrorException(),
);
}),
);
}
}

View File

@@ -23,7 +23,8 @@ const explicitPartitioner = () => {
@Controller()
export class KafkaConcurrentController
implements OnModuleInit, OnModuleDestroy {
implements OnModuleInit, OnModuleDestroy
{
protected readonly logger = new Logger(KafkaConcurrentController.name);
@Client({

View File

@@ -2,8 +2,12 @@ import { Body, Controller, HttpCode, Post, Query } from '@nestjs/common';
import {
Client,
ClientProxy,
Ctx,
EventPattern,
MessagePattern,
MqttContext,
MqttRecordBuilder,
Payload,
Transport,
} from '@nestjs/microservices';
import { from, lastValueFrom, Observable, of } from 'rxjs';
@@ -32,7 +36,7 @@ export class MqttController {
@HttpCode(200)
async stream(@Body() data: number[]) {
const result = lastValueFrom(
await this.client
this.client
.send<number>({ cmd: 'streaming' }, data)
.pipe(scan((a, b) => a + b, 0)),
);
@@ -86,6 +90,25 @@ export class MqttController {
return this.client.send<number>('wildcard-message2/test/test', data);
}
@Post('record-builder-duplex')
@HttpCode(200)
useRecordBuilderDuplex(@Body() data: Record<string, any>) {
const record = new MqttRecordBuilder(data).setQoS(2).build();
return this.client.send('record-builder-duplex', record);
}
@MessagePattern('record-builder-duplex')
handleRecordBuilderDuplex(
@Payload() data: Record<string, any>,
@Ctx() context: MqttContext,
) {
const { qos } = context.getPacket();
return {
data,
qos,
};
}
@MessagePattern('wildcard-message/#')
wildcardMessageHandler(data: number[]): number {
if ((data as any).response) {

View File

@@ -6,10 +6,12 @@ import {
EventPattern,
MessagePattern,
NatsContext,
NatsRecordBuilder,
Payload,
RpcException,
Transport,
} from '@nestjs/microservices';
import * as nats from 'nats';
import { from, lastValueFrom, Observable, of, throwError } from 'rxjs';
import { catchError, scan } from 'rxjs/operators';
import { NatsService } from './nats.service';
@@ -62,6 +64,28 @@ export class NatsController {
.reduce(async (a, b) => (await a) && b);
}
@Post('record-builder-duplex')
@HttpCode(200)
useRecordBuilderDuplex(@Body() data: Record<string, any>) {
const headers = nats.headers();
headers.set('x-version', '1.0.0');
const record = new NatsRecordBuilder(data).setHeaders(headers).build();
return this.client.send('record-builder-duplex', record);
}
@MessagePattern('record-builder-duplex')
handleRecordBuilderDuplex(
@Payload() data: Record<string, any>,
@Ctx() context: NatsContext,
) {
return {
data,
headers: {
['x-version']: context.getHeaders().get('x-version'),
},
};
}
@MessagePattern('math.*')
sum(@Payload() data: number[], @Ctx() context: NatsContext): number {
return (data || []).reduce((a, b) => a + b);

View File

@@ -2,8 +2,12 @@ import { Body, Controller, HttpCode, Post, Query } from '@nestjs/common';
import {
ClientProxy,
ClientProxyFactory,
Ctx,
EventPattern,
MessagePattern,
Payload,
RmqContext,
RmqRecordBuilder,
Transport,
} from '@nestjs/microservices';
import { from, lastValueFrom, Observable, of } from 'rxjs';
@@ -57,6 +61,34 @@ export class RMQController {
.reduce(async (a, b) => (await a) && b);
}
@Post('record-builder-duplex')
@HttpCode(200)
useRecordBuilderDuplex(@Body() data: Record<string, any>) {
const record = new RmqRecordBuilder(data)
.setOptions({
headers: {
['x-version']: '1.0.0',
},
priority: 3,
})
.build();
return this.client.send('record-builder-duplex', record);
}
@MessagePattern('record-builder-duplex')
handleRecordBuilderDuplex(
@Payload() data: Record<string, any>,
@Ctx() context: RmqContext,
) {
const originalMessage = context.getMessage();
return {
data,
headers: originalMessage.properties.headers,
priority: originalMessage.properties.priority,
};
}
@MessagePattern({ cmd: 'sum' })
sum(data: number[]): number {
return (data || []).reduce((a, b) => a + b);

View File

@@ -2,7 +2,11 @@ import { INestApplication } from '@nestjs/common';
import { RequestMethod } from '@nestjs/common/enums/request-method.enum';
import { Test } from '@nestjs/testing';
import * as request from 'supertest';
import { AppModule } from '../src/app.module';
import {
AppModule,
MIDDLEWARE_PARAM_VALUE,
MIDDLEWARE_VALUE,
} from '../src/app.module';
describe('Global prefix', () => {
let server;
@@ -28,21 +32,29 @@ describe('Global prefix', () => {
});
it(`should exclude the path as string`, async () => {
app.setGlobalPrefix('/api/v1', { exclude: ['/test'] });
app.setGlobalPrefix('/api/v1', { exclude: ['/test', '/middleware'] });
server = app.getHttpServer();
await app.init();
await request(server).get('/test').expect(200);
await request(server).post('/test').expect(201);
await request(server).get('/api/v1/test').expect(404);
await request(server).post('/api/v1/test').expect(404);
await request(server).get('/middleware').expect(200, MIDDLEWARE_VALUE);
await request(server).post('/middleware').expect(201, MIDDLEWARE_VALUE);
await request(server).get('/api/v1/middleware').expect(404);
await request(server).post('/api/v1/middleware').expect(404);
});
it(`should exclude the path as RouteInfo`, async () => {
app.setGlobalPrefix('/api/v1', {
exclude: [{ path: '/health', method: RequestMethod.GET }],
exclude: [
{ path: '/health', method: RequestMethod.GET },
{ path: '/middleware', method: RequestMethod.POST },
],
});
server = app.getHttpServer();
@@ -50,7 +62,15 @@ describe('Global prefix', () => {
await request(server).get('/health').expect(200);
await request(server).get('/middleware').expect(404);
await request(server).post('/middleware').expect(201, MIDDLEWARE_VALUE);
await request(server).get('/api/v1/health').expect(404);
await request(server)
.get('/api/v1/middleware')
.expect(200, MIDDLEWARE_VALUE);
await request(server).post('/api/v1/middleware').expect(404);
});
it(`should only exclude the GET RequestMethod`, async () => {
@@ -82,12 +102,22 @@ describe('Global prefix', () => {
});
it(`should exclude the path with route param`, async () => {
app.setGlobalPrefix('/api/v1', { exclude: ['/hello/:name'] });
app.setGlobalPrefix('/api/v1', {
exclude: ['/hello/:name', '/middleware/:name'],
});
server = app.getHttpServer();
await app.init();
await request(server).get('/hello/foo').expect(200);
await request(server)
.get('/middleware/foo')
.expect(200, MIDDLEWARE_PARAM_VALUE);
await request(server)
.get('/api/v1/middleware/foo')
.expect(404);
});
afterEach(async () => {

View File

@@ -1,7 +1,22 @@
import { Module } from '@nestjs/common';
import { MiddlewareConsumer, Module, RequestMethod } from '@nestjs/common';
import { AppController } from './app.controller';
export const MIDDLEWARE_VALUE = 'middleware';
export const MIDDLEWARE_PARAM_VALUE = 'middleware_param';
@Module({
controllers: [AppController],
})
export class AppModule {}
export class AppModule {
configure(consumer: MiddlewareConsumer) {
consumer
.apply((req, res, next) => res.end(MIDDLEWARE_VALUE))
.forRoutes({ path: MIDDLEWARE_VALUE, method: RequestMethod.GET })
.apply((req, res, next) => res.status(201).end(MIDDLEWARE_VALUE))
.forRoutes({ path: MIDDLEWARE_VALUE, method: RequestMethod.POST })
.apply((req, res, next) => res.end(MIDDLEWARE_PARAM_VALUE))
.forRoutes({ path: MIDDLEWARE_VALUE + '/*', method: RequestMethod.GET })
.apply((req, res, next) => res.status(201).end(MIDDLEWARE_PARAM_VALUE))
.forRoutes({ path: MIDDLEWARE_VALUE + '/*', method: RequestMethod.POST });
}
}

View File

@@ -1,4 +1,7 @@
import { ExpressAdapter, NestExpressApplication } from '@nestjs/platform-express';
import {
ExpressAdapter,
NestExpressApplication,
} from '@nestjs/platform-express';
import { Test } from '@nestjs/testing';
import { expect } from 'chai';
import { readFileSync } from 'fs';
@@ -24,7 +27,7 @@ describe('Express FileSend', () => {
return request(app.getHttpServer())
.get('/file/stream/')
.expect(200)
.expect((res) => {
.expect(res => {
expect(res.body.toString()).to.be.eq(readmeString);
});
});
@@ -32,7 +35,7 @@ describe('Express FileSend', () => {
return request(app.getHttpServer())
.get('/file/buffer')
.expect(200)
.expect((res) => {
.expect(res => {
expect(res.body.toString()).to.be.eq(readmeString);
});
});
@@ -46,8 +49,18 @@ describe('Express FileSend', () => {
return request(app.getHttpServer())
.get('/file/rxjs/stream/')
.expect(200)
.expect((res) => {
.expect(res => {
expect(res.body.toString()).to.be.eq(readmeString);
});
});
});
it('should return a file with correct content type and disposition', async () => {
return request(app.getHttpServer())
.get('/file/with/headers')
.expect(200)
.expect('Content-Type', 'text/markdown')
.expect('Content-Disposition', 'attachment; filename="Readme.md"')
.expect(res => {
expect(res.text).to.be.eq(readmeString);
});
});
});

View File

@@ -1,4 +1,7 @@
import { FastifyAdapter, NestFastifyApplication } from '@nestjs/platform-fastify';
import {
FastifyAdapter,
NestFastifyApplication,
} from '@nestjs/platform-fastify';
import { Test } from '@nestjs/testing';
import { expect } from 'chai';
import { readFileSync } from 'fs';
@@ -20,20 +23,24 @@ describe('Fastify FileSend', () => {
});
it('should return a file from a stream', async () => {
return app.inject({
method: 'GET',
url: '/file/stream'
}).then(({ payload }) => {
expect(payload.toString()).to.be.eq(readmeString);
});
return app
.inject({
method: 'GET',
url: '/file/stream',
})
.then(({ payload }) => {
expect(payload.toString()).to.be.eq(readmeString);
});
});
it('should return a file from a buffer', async () => {
return app.inject({
method: 'GET',
url: '/file/buffer',
}).then(({ payload }) => {
expect(payload.toString()).to.be.eq(readmeString);
});
return app
.inject({
method: 'GET',
url: '/file/buffer',
})
.then(({ payload }) => {
expect(payload.toString()).to.be.eq(readmeString);
});
});
/**
* It seems that Fastify has a similar issue as Kamil initially pointed out
@@ -41,19 +48,23 @@ describe('Fastify FileSend', () => {
* that the `NonFile` test is a failed case for fastify, hence the skip.
*/
it.skip('should not stream a non-file', async () => {
return app.inject({
url: '/non-file/pipe-method',
method: 'get'
}).then(({ payload }) => {
expect(payload).to.be.eq({ value: 'Hello world' });
});
return app
.inject({
url: '/non-file/pipe-method',
method: 'get',
})
.then(({ payload }) => {
expect(payload).to.be.eq({ value: 'Hello world' });
});
});
it('should return a file from an RxJS stream', async () => {
return app.inject({
method: 'GET',
url: '/file/rxjs/stream'
}).then(({ payload }) => {
expect(payload.toString()).to.be.eq(readmeString);
});
return app
.inject({
method: 'GET',
url: '/file/rxjs/stream',
})
.then(({ payload }) => {
expect(payload.toString()).to.be.eq(readmeString);
});
});
});

View File

@@ -26,4 +26,9 @@ export class AppController {
getRxJSFile(): Observable<StreamableFile> {
return this.appService.getRxJSFile();
}
}
@Get('file/with/headers')
getFileWithHeaders(): StreamableFile {
return this.appService.getFileWithHeaders();
}
}

View File

@@ -6,4 +6,4 @@ import { AppService } from './app.service';
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
export class AppModule {}

View File

@@ -23,4 +23,14 @@ export class AppService {
getRxJSFile(): Observable<StreamableFile> {
return of(this.getReadStream());
}
getFileWithHeaders(): StreamableFile {
return new StreamableFile(
createReadStream(join(process.cwd(), 'Readme.md')),
{
type: 'text/markdown',
disposition: 'attachment; filename="Readme.md"',
},
);
}
}

View File

@@ -4,4 +4,4 @@ export class NonFile {
pipe() {
return this.value;
}
}
}

View File

@@ -0,0 +1,673 @@
import { INestApplication, VersioningType } from '@nestjs/common';
import {
FastifyAdapter,
NestFastifyApplication,
} from '@nestjs/platform-fastify';
import { Test } from '@nestjs/testing';
import * as request from 'supertest';
import { AppModule } from '../src/app.module';
describe('Header Versioning (fastify)', () => {
let app: INestApplication;
// ======================================================================== //
describe('without global default version', () => {
before(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleRef.createNestApplication<NestFastifyApplication>(
new FastifyAdapter(),
);
app.enableVersioning({
type: VersioningType.HEADER,
header: 'X-API-Version',
});
await app.init();
await app.getHttpAdapter().getInstance().ready();
});
describe('GET /', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Hello World V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Hello World V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
describe('GET /:param', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Parameter V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Parameter V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
describe('GET /multiple', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/multiple').expect(404);
});
});
describe('GET /neutral', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Neutral');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Neutral');
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
'X-API-Version': '',
})
.expect(200)
.expect('Neutral');
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/neutral')
.expect(200)
.expect('Neutral');
});
});
describe('GET /override', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Override Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Override Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/override').expect(404);
});
});
describe('GET /override-partial', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Override Partial Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Override Partial Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/override-partial')
.expect(404);
});
});
describe('GET /foo/bar', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Hello FooBar!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Hello FooBar!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '3',
})
.expect(200)
.expect('Hello FooBar!');
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '',
})
.expect(200)
.expect('Hello FooBar!');
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.expect(200)
.expect('Hello FooBar!');
});
});
after(async () => {
await app.close();
});
});
// ======================================================================== //
describe('with the global default version: "1"', () => {
before(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleRef.createNestApplication<NestFastifyApplication>(
new FastifyAdapter(),
);
app.enableVersioning({
type: VersioningType.HEADER,
header: 'X-API-Version',
defaultVersion: '1',
});
await app.init();
await app.getHttpAdapter().getInstance().ready();
});
describe('GET /', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Hello World V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Hello World V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
describe('GET /:param', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Parameter V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Parameter V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
describe('GET /multiple', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/multiple').expect(404);
});
});
describe('GET /neutral', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Neutral');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Neutral');
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
'X-API-Version': '',
})
.expect(200)
.expect('Neutral');
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/neutral')
.expect(200)
.expect('Neutral');
});
});
describe('GET /override', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Override Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Override Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/override').expect(404);
});
});
describe('GET /override-partial', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Override Partial Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Override Partial Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/override-partial')
.expect(404);
});
});
describe('GET /foo/bar', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Hello FooBar!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '2',
})
.expect(404);
});
it('V3', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/foo/bar').expect(404);
});
});
after(async () => {
await app.close();
});
});
});

View File

@@ -3,282 +3,661 @@ import { Test } from '@nestjs/testing';
import * as request from 'supertest';
import { AppModule } from '../src/app.module';
describe('Versioning', () => {
describe('Header Versioning', () => {
let app: INestApplication;
before(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
// ======================================================================== //
describe('without global default version', () => {
before(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleRef.createNestApplication();
app.enableVersioning({
type: VersioningType.HEADER,
header: 'X-API-Version',
});
await app.init();
});
describe('GET /', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Hello World V1!');
app = moduleRef.createNestApplication();
app.enableVersioning({
type: VersioningType.HEADER,
header: 'X-API-Version',
});
await app.init();
});
it('V2', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Hello World V2!');
describe('GET /', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Hello World V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Hello World V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
it('V3', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '3',
})
.expect(404);
describe('GET /:param', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Parameter V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Parameter V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '',
})
.expect(404);
describe('GET /multiple', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/multiple').expect(404);
});
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
describe('GET /neutral', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Neutral');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Neutral');
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
'X-API-Version': '',
})
.expect(200)
.expect('Neutral');
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/neutral')
.expect(200)
.expect('Neutral');
});
});
describe('GET /override', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Override Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Override Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/override').expect(404);
});
});
describe('GET /override-partial', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Override Partial Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Override Partial Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/override-partial')
.expect(404);
});
});
describe('GET /foo/bar', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Hello FooBar!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Hello FooBar!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '3',
})
.expect(200)
.expect('Hello FooBar!');
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '',
})
.expect(200)
.expect('Hello FooBar!');
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.expect(200)
.expect('Hello FooBar!');
});
});
after(async () => {
await app.close();
});
});
describe('GET /:param', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Parameter V1!');
// ======================================================================== //
describe('with the global default version: "1"', () => {
before(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleRef.createNestApplication();
app.enableVersioning({
type: VersioningType.HEADER,
header: 'X-API-Version',
defaultVersion: '1',
});
await app.init();
});
it('V2', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Parameter V2!');
describe('GET /', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Hello World V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Hello World V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
it('V3', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '3',
})
.expect(404);
describe('GET /:param', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Parameter V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Parameter V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
'X-API-Version': '',
})
.expect(404);
describe('GET /multiple', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/multiple').expect(404);
});
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
describe('GET /neutral', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Neutral');
});
describe('GET /multiple', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
it('V2', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Neutral');
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
'X-API-Version': '',
})
.expect(200)
.expect('Neutral');
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/neutral')
.expect(200)
.expect('Neutral');
});
});
it('V2', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
describe('GET /override', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Override Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Override Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/override').expect(404);
});
});
it('V3', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '3',
})
.expect(404);
describe('GET /override-partial', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Override Partial Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Override Partial Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/override-partial')
.expect(404);
});
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
'X-API-Version': '',
})
.expect(404);
describe('GET /foo/bar', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Hello FooBar!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '2',
})
.expect(404);
});
it('V3', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/foo/bar').expect(404);
});
});
it('No Header', () => {
return request(app.getHttpServer()).get('/multiple').expect(404);
after(async () => {
await app.close();
});
});
describe('GET /neutral', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Neutral');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Neutral');
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
'X-API-Version': '',
})
.expect(200)
.expect('Neutral');
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/neutral')
.expect(200)
.expect('Neutral');
});
});
describe('GET /override', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Override Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Override Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/override').expect(404);
});
});
describe('GET /override-partial', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '1',
})
.expect(200)
.expect('Override Partial Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '2',
})
.expect(200)
.expect('Override Partial Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
'X-API-Version': '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/override-partial').expect(404);
});
});
after(async () => {
await app.close();
});
});

View File

@@ -0,0 +1,673 @@
import { INestApplication, VersioningType } from '@nestjs/common';
import {
FastifyAdapter,
NestFastifyApplication,
} from '@nestjs/platform-fastify';
import { Test } from '@nestjs/testing';
import * as request from 'supertest';
import { AppModule } from '../src/app.module';
describe('Media Type Versioning (fastify)', () => {
let app: INestApplication;
// ======================================================================== //
describe('without global default version', () => {
before(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleRef.createNestApplication<NestFastifyApplication>(
new FastifyAdapter(),
);
app.enableVersioning({
type: VersioningType.MEDIA_TYPE,
key: 'v=',
});
await app.init();
await app.getHttpAdapter().getInstance().ready();
});
describe('GET /', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Hello World V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Hello World V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
describe('GET /:param', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Parameter V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Parameter V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
describe('GET /multiple', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/multiple').expect(404);
});
});
describe('GET /neutral', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Neutral');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Neutral');
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
Accept: 'application/json',
})
.expect(200)
.expect('Neutral');
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/neutral')
.expect(200)
.expect('Neutral');
});
});
describe('GET /override', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Override Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Override Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/override').expect(404);
});
});
describe('GET /override-partial', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Override Partial Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Override Partial Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/override-partial')
.expect(404);
});
});
describe('GET /foo/bar', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Hello FooBar!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Hello FooBar!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json;v=3',
})
.expect(200)
.expect('Hello FooBar!');
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json',
})
.expect(200)
.expect('Hello FooBar!');
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.expect(200)
.expect('Hello FooBar!');
});
});
after(async () => {
await app.close();
});
});
// ======================================================================== //
describe('with the global default version: "1"', () => {
before(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleRef.createNestApplication<NestFastifyApplication>(
new FastifyAdapter(),
);
app.enableVersioning({
type: VersioningType.MEDIA_TYPE,
key: 'v=',
defaultVersion: '1',
});
await app.init();
await app.getHttpAdapter().getInstance().ready();
});
describe('GET /', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Hello World V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Hello World V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
describe('GET /:param', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Parameter V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Parameter V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
describe('GET /multiple', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/multiple').expect(404);
});
});
describe('GET /neutral', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Neutral');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Neutral');
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
Accept: 'application/json',
})
.expect(200)
.expect('Neutral');
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/neutral')
.expect(200)
.expect('Neutral');
});
});
describe('GET /override', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Override Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Override Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/override').expect(404);
});
});
describe('GET /override-partial', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Override Partial Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Override Partial Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/override-partial')
.expect(404);
});
});
describe('GET /foo/bar', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Hello FooBar!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json;v=2',
})
.expect(404);
});
it('V3', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/foo/bar').expect(404);
});
});
after(async () => {
await app.close();
});
});
});

View File

@@ -3,282 +3,661 @@ import { Test } from '@nestjs/testing';
import * as request from 'supertest';
import { AppModule } from '../src/app.module';
describe('Versioning', () => {
describe('Media Type Versioning', () => {
let app: INestApplication;
before(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
// ======================================================================== //
describe('without global default version', () => {
before(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleRef.createNestApplication();
app.enableVersioning({
type: VersioningType.MEDIA_TYPE,
key: 'v=',
});
await app.init();
});
describe('GET /', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Hello World V1!');
app = moduleRef.createNestApplication();
app.enableVersioning({
type: VersioningType.MEDIA_TYPE,
key: 'v=',
});
await app.init();
});
it('V2', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Hello World V2!');
describe('GET /', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Hello World V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Hello World V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
it('V3', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
describe('GET /:param', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Parameter V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Parameter V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json',
})
.expect(404);
describe('GET /multiple', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/multiple').expect(404);
});
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
describe('GET /neutral', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Neutral');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Neutral');
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
Accept: 'application/json',
})
.expect(200)
.expect('Neutral');
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/neutral')
.expect(200)
.expect('Neutral');
});
});
describe('GET /override', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Override Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Override Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/override').expect(404);
});
});
describe('GET /override-partial', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Override Partial Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Override Partial Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/override-partial')
.expect(404);
});
});
describe('GET /foo/bar', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Hello FooBar!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Hello FooBar!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json;v=3',
})
.expect(200)
.expect('Hello FooBar!');
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json',
})
.expect(200)
.expect('Hello FooBar!');
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.expect(200)
.expect('Hello FooBar!');
});
});
after(async () => {
await app.close();
});
});
describe('GET /:param', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Parameter V1!');
// ======================================================================== //
describe('with the global default version: "1"', () => {
before(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleRef.createNestApplication();
app.enableVersioning({
type: VersioningType.MEDIA_TYPE,
key: 'v=',
defaultVersion: '1',
});
await app.init();
});
it('V2', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Parameter V2!');
describe('GET /', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Hello World V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Hello World V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
it('V3', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
describe('GET /:param', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Parameter V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Parameter V2!');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: '',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/param/hello')
.set({
Accept: '',
})
.expect(404);
describe('GET /multiple', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/multiple').expect(404);
});
});
it('No Header', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
describe('GET /neutral', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Neutral');
});
describe('GET /multiple', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
it('V2', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Neutral');
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
Accept: 'application/json',
})
.expect(200)
.expect('Neutral');
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/neutral')
.expect(200)
.expect('Neutral');
});
});
it('V2', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Multiple Versions 1 or 2');
describe('GET /override', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Override Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Override Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/override').expect(404);
});
});
it('V3', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
describe('GET /override-partial', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Override Partial Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Override Partial Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/override-partial')
.expect(404);
});
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/multiple')
.set({
Accept: 'application/json',
})
.expect(404);
describe('GET /foo/bar', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Hello FooBar!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json;v=2',
})
.expect(404);
});
it('V3', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/foo/bar').expect(404);
});
});
it('No Header', () => {
return request(app.getHttpServer()).get('/multiple').expect(404);
after(async () => {
await app.close();
});
});
describe('GET /neutral', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Neutral');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Neutral');
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/neutral')
.set({
Accept: 'application/json',
})
.expect(200)
.expect('Neutral');
});
it('No Header', () => {
return request(app.getHttpServer())
.get('/neutral')
.expect(200)
.expect('Neutral');
});
});
describe('GET /override', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Override Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Override Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/override').expect(404);
});
});
describe('GET /override-partial', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json;v=1',
})
.expect(200)
.expect('Override Partial Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json;v=2',
})
.expect(200)
.expect('Override Partial Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json;v=3',
})
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override-partial')
.set({
Accept: 'application/json',
})
.expect(404);
});
it('No Header', () => {
return request(app.getHttpServer()).get('/override-partial').expect(404);
});
});
after(async () => {
await app.close();
});
});

View File

@@ -0,0 +1,365 @@
import { INestApplication, VersioningType } from '@nestjs/common';
import {
FastifyAdapter,
NestFastifyApplication,
} from '@nestjs/platform-fastify';
import { Test } from '@nestjs/testing';
import * as request from 'supertest';
import { AppModule } from '../src/app.module';
describe('URI Versioning (fastify)', () => {
let app: INestApplication;
// ======================================================================== //
describe('without global default version', () => {
before(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleRef.createNestApplication<NestFastifyApplication>(
new FastifyAdapter(),
);
app.enableVersioning({
type: VersioningType.URI,
});
await app.init();
await app.getHttpAdapter().getInstance().ready();
});
describe('GET /', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1')
.expect(200)
.expect('Hello World V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2')
.expect(200)
.expect('Hello World V2!');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
describe('GET /:param', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/param/hello')
.expect(200)
.expect('Parameter V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/param/hello')
.expect(200)
.expect('Parameter V2!');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/param/hello').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/param/hello').expect(404);
});
});
describe('GET /multiple', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/multiple')
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/multiple')
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/multiple').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/multiple').expect(404);
});
});
describe('GET /neutral', () => {
it('No Version', () => {
return request(app.getHttpServer())
.get('/neutral')
.expect(200)
.expect('Neutral');
});
});
describe('GET /override', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/override')
.expect(200)
.expect('Override Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/override')
.expect(200)
.expect('Override Version 2');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/override').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/override').expect(404);
});
});
describe('GET /override-partial', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/override-partial')
.expect(200)
.expect('Override Partial Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/override-partial')
.expect(200)
.expect('Override Partial Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/v3/override-partial')
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override-partial')
.expect(404);
});
});
describe('GET /foo/bar', () => {
it('V1', () => {
return request(app.getHttpServer()).get('/v1/foo/bar').expect(404);
});
it('V2', () => {
return request(app.getHttpServer()).get('/v2/foo/bar').expect(404);
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/foo/bar').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.expect(200)
.expect('Hello FooBar!');
});
});
after(async () => {
await app.close();
});
});
// ======================================================================== //
describe('with the global default version: "1"', () => {
before(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleRef.createNestApplication<NestFastifyApplication>(
new FastifyAdapter(),
);
app.enableVersioning({
type: VersioningType.URI,
defaultVersion: '1',
});
await app.init();
await app.getHttpAdapter().getInstance().ready();
});
describe('GET /', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1')
.expect(200)
.expect('Hello World V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2')
.expect(200)
.expect('Hello World V2!');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
describe('GET /:param', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/param/hello')
.expect(200)
.expect('Parameter V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/param/hello')
.expect(200)
.expect('Parameter V2!');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/param/hello').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/param/hello').expect(404);
});
});
describe('GET /multiple', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/multiple')
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/multiple')
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/multiple').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/multiple').expect(404);
});
});
describe('GET /neutral', () => {
it('No Version', () => {
return request(app.getHttpServer())
.get('/neutral')
.expect(200)
.expect('Neutral');
});
});
describe('GET /override', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/override')
.expect(200)
.expect('Override Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/override')
.expect(200)
.expect('Override Version 2');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/override').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/override').expect(404);
});
});
describe('GET /override-partial', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/override-partial')
.expect(200)
.expect('Override Partial Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/override-partial')
.expect(200)
.expect('Override Partial Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/v3/override-partial')
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override-partial')
.expect(404);
});
});
describe('GET /foo/bar', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/foo/bar')
.expect(200)
.expect('Hello FooBar!');
});
it('V2', () => {
return request(app.getHttpServer()).get('/v2/foo/bar').expect(404);
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/foo/bar').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/foo/bar').expect(404);
});
});
after(async () => {
await app.close();
});
});
});

View File

@@ -3,153 +3,353 @@ import { Test } from '@nestjs/testing';
import * as request from 'supertest';
import { AppModule } from '../src/app.module';
describe('Versioning', () => {
describe('URI Versioning', () => {
let app: INestApplication;
before(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
// ======================================================================== //
describe('without global default version', () => {
before(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleRef.createNestApplication();
app.enableVersioning({
type: VersioningType.URI,
});
await app.init();
});
describe('GET /', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/')
.expect(200)
.expect('Hello World V1!');
app = moduleRef.createNestApplication();
app.enableVersioning({
type: VersioningType.URI,
});
await app.init();
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/')
.expect(200)
.expect('Hello World V2!');
describe('GET /', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/')
.expect(200)
.expect('Hello World V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/')
.expect(200)
.expect('Hello World V2!');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/').expect(404);
describe('GET /:param', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/param/hello')
.expect(200)
.expect('Parameter V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/param/hello')
.expect(200)
.expect('Parameter V2!');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/param/hello').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/param/hello').expect(404);
});
});
it('No Version', () => {
return request(app.getHttpServer()).get('/').expect(404);
describe('GET /multiple', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/multiple')
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/multiple')
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/multiple').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/multiple').expect(404);
});
});
describe('GET /neutral', () => {
it('No Version', () => {
return request(app.getHttpServer())
.get('/neutral')
.expect(200)
.expect('Neutral');
});
});
describe('GET /override', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/override')
.expect(200)
.expect('Override Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/override')
.expect(200)
.expect('Override Version 2');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/override').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/override').expect(404);
});
});
describe('GET /override-partial', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/override-partial')
.expect(200)
.expect('Override Partial Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/override-partial')
.expect(200)
.expect('Override Partial Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/v3/override-partial')
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override-partial')
.expect(404);
});
});
describe('GET /foo/bar', () => {
it('V1', () => {
return request(app.getHttpServer()).get('/v1/foo/bar').expect(404);
});
it('V2', () => {
return request(app.getHttpServer()).get('/v2/foo/bar').expect(404);
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/foo/bar').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/foo/bar')
.expect(200)
.expect('Hello FooBar!');
});
});
after(async () => {
await app.close();
});
});
describe('GET /:param', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/param/hello')
.expect(200)
.expect('Parameter V1!');
// ======================================================================== //
describe('with the global default version: "1"', () => {
before(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleRef.createNestApplication();
app.enableVersioning({
type: VersioningType.URI,
defaultVersion: '1',
});
await app.init();
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/param/hello')
.expect(200)
.expect('Parameter V2!');
describe('GET /', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1')
.expect(200)
.expect('Hello World V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2')
.expect(200)
.expect('Hello World V2!');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/').expect(404);
});
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/param/hello').expect(404);
describe('GET /:param', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/param/hello')
.expect(200)
.expect('Parameter V1!');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/param/hello')
.expect(200)
.expect('Parameter V2!');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/param/hello').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/param/hello').expect(404);
});
});
it('No Version', () => {
return request(app.getHttpServer()).get('/param/hello').expect(404);
});
});
describe('GET /multiple', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/multiple')
.expect(200)
.expect('Multiple Versions 1 or 2');
});
describe('GET /multiple', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/multiple')
.expect(200)
.expect('Multiple Versions 1 or 2');
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/multiple')
.expect(200)
.expect('Multiple Versions 1 or 2');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/multiple').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/multiple').expect(404);
});
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/multiple')
.expect(200)
.expect('Multiple Versions 1 or 2');
describe('GET /neutral', () => {
it('No Version', () => {
return request(app.getHttpServer())
.get('/neutral')
.expect(200)
.expect('Neutral');
});
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/multiple').expect(404);
describe('GET /override', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/override')
.expect(200)
.expect('Override Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/override')
.expect(200)
.expect('Override Version 2');
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/override').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/override').expect(404);
});
});
it('No Version', () => {
return request(app.getHttpServer()).get('/multiple').expect(404);
});
});
describe('GET /override-partial', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/override-partial')
.expect(200)
.expect('Override Partial Version 1');
});
describe('GET /neutral', () => {
it('No Version', () => {
return request(app.getHttpServer())
.get('/neutral')
.expect(200)
.expect('Neutral');
});
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/override-partial')
.expect(200)
.expect('Override Partial Version 2');
});
describe('GET /override', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/override')
.expect(200)
.expect('Override Version 1');
it('V3', () => {
return request(app.getHttpServer())
.get('/v3/override-partial')
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer())
.get('/override-partial')
.expect(404);
});
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/override')
.expect(200)
.expect('Override Version 2');
describe('GET /foo/bar', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/foo/bar')
.expect(200)
.expect('Hello FooBar!');
});
it('V2', () => {
return request(app.getHttpServer()).get('/v2/foo/bar').expect(404);
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/foo/bar').expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/foo/bar').expect(404);
});
});
it('V3', () => {
return request(app.getHttpServer()).get('/v3/override').expect(404);
after(async () => {
await app.close();
});
it('No Version', () => {
return request(app.getHttpServer()).get('/override').expect(404);
});
});
describe('GET /override-partial', () => {
it('V1', () => {
return request(app.getHttpServer())
.get('/v1/override-partial')
.expect(200)
.expect('Override Partial Version 1');
});
it('V2', () => {
return request(app.getHttpServer())
.get('/v2/override-partial')
.expect(200)
.expect('Override Partial Version 2');
});
it('V3', () => {
return request(app.getHttpServer())
.get('/v3/override-partial')
.expect(404);
});
it('No Version', () => {
return request(app.getHttpServer()).get('/override-partial').expect(404);
});
});
after(async () => {
await app.close();
});
});

View File

@@ -2,6 +2,7 @@ import { Module } from '@nestjs/common';
import { AppV1Controller } from './app-v1.controller';
import { AppV2Controller } from './app-v2.controller';
import { MultipleVersionController } from './multiple.controller';
import { NoVersioningController } from './no-versioning.controller';
import { VersionNeutralController } from './neutral.controller';
import { OverrideController } from './override.controller';
import { OverridePartialController } from './override-partial.controller';
@@ -12,6 +13,7 @@ import { OverridePartialController } from './override-partial.controller';
AppV1Controller,
AppV2Controller,
MultipleVersionController,
NoVersioningController,
VersionNeutralController,
OverrideController,
OverridePartialController,

View File

@@ -0,0 +1,9 @@
import { Controller, Get } from '@nestjs/common';
@Controller('foo')
export class NoVersioningController {
@Get('/bar')
helloFoo() {
return 'Hello FooBar!';
}
}

View File

@@ -1,7 +1,7 @@
import { Controller, Get, Version } from '@nestjs/common';
@Controller({
version: '1'
version: '1',
})
export class OverridePartialController {
@Get('/override-partial')

View File

@@ -3,5 +3,5 @@
"packages": [
"packages/*"
],
"version": "8.0.3"
"version": "8.2.0"
}

4875
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "@nestjs/core",
"version": "8.0.0-alpha.1",
"version": "8.0.6",
"description": "Modern, fast, powerful node.js web framework",
"homepage": "https://nestjs.com",
"repository": {
@@ -34,7 +34,7 @@
"lint:packages": "eslint 'packages/**/**.ts' --ignore-pattern 'packages/**/*.spec.ts'",
"lint:spec": "eslint 'packages/**/**.spec.ts' -c '.eslintrc.spec.js'",
"prerelease": "gulp copy-misc && gulp build --dist node_modules/@nestjs",
"publish": "npm run prerelease && npm run build:prod && ./node_modules/.bin/lerna publish --force-publish --access public --exact -m \"chore(@nestjs) publish %s release\"",
"publish": "npm run prerelease && npm run build:prod && ./node_modules/.bin/lerna publish --conventional-commits --force-publish --access public --exact -m \"chore(@nestjs) publish %s release\"",
"publish:beta": "npm run prerelease && npm run build:prod && ./node_modules/.bin/lerna publish --npm-tag=beta --access public -m \"chore(@nestjs) publish %s release\"",
"publish:next": "npm run prerelease && npm run build:prod && ./node_modules/.bin/lerna publish --npm-tag=next --access public --skip-git -m \"chore(@nestjs) publish %s release\"",
"publish:rc": "npm run prerelease && npm run build:prod && ./node_modules/.bin/lerna publish --npm-tag=rc --access public -m \"chore(@nestjs) publish %s release\"",
@@ -53,81 +53,81 @@
},
"dependencies": {
"@nuxtjs/opencollective": "0.3.2",
"axios": "0.21.1",
"axios": "0.24.0",
"class-transformer": "0.4.0",
"class-validator": "0.13.1",
"cli-color": "2.0.0",
"cli-color": "2.0.1",
"cors": "2.8.5",
"express": "4.17.1",
"fast-json-stringify": "2.7.7",
"fast-safe-stringify": "2.0.8",
"fast-json-stringify": "2.7.11",
"fast-safe-stringify": "2.1.1",
"graphql-subscriptions": "1.2.1",
"iterare": "1.2.1",
"object-hash": "2.2.0",
"path-to-regexp": "3.2.0",
"reflect-metadata": "0.1.13",
"rxjs": "7.2.0",
"socket.io": "4.1.3",
"tslib": "2.3.0",
"rxjs": "7.4.0",
"socket.io": "4.3.1",
"tslib": "2.3.1",
"uuid": "8.3.2"
},
"devDependencies": {
"@codechecks/client": "0.1.11",
"@commitlint/cli": "12.1.4",
"@commitlint/config-angular": "12.1.4",
"@grpc/grpc-js": "1.3.5",
"@grpc/proto-loader": "0.6.4",
"@nestjs/graphql": "7.11.0",
"@nestjs/mongoose": "8.0.0",
"@nestjs/typeorm": "8.0.1",
"@types/amqplib": "0.8.1",
"@codechecks/client": "0.1.12",
"@commitlint/cli": "14.1.0",
"@commitlint/config-angular": "14.1.0",
"@grpc/grpc-js": "1.4.3",
"@grpc/proto-loader": "0.6.6",
"@nestjs/graphql": "9.1.1",
"@nestjs/mongoose": "9.0.1",
"@nestjs/typeorm": "8.0.2",
"@types/amqplib": "0.8.2",
"@types/bytes": "3.1.1",
"@types/cache-manager": "3.4.2",
"@types/chai": "4.2.21",
"@types/chai": "4.2.22",
"@types/chai-as-promised": "7.1.4",
"@types/cors": "2.8.12",
"@types/express": "4.17.13",
"@types/gulp": "4.0.9",
"@types/http-errors": "1.8.1",
"@types/mocha": "8.2.3",
"@types/mongoose": "5.11.97",
"@types/node": "15.14.0",
"@types/redis": "2.8.31",
"@types/mocha": "9.0.0",
"@types/node": "16.11.6",
"@types/redis": "2.8.32",
"@types/reflect-metadata": "0.1.0",
"@types/sinon": "10.0.2",
"@types/sinon": "10.0.6",
"@types/socket.io": "3.0.2",
"@types/ws": "7.4.6",
"@typescript-eslint/eslint-plugin": "4.28.3",
"@typescript-eslint/parser": "4.28.3",
"amqp-connection-manager": "3.2.2",
"@types/ws": "8.2.0",
"@typescript-eslint/eslint-plugin": "4.33.0",
"@typescript-eslint/parser": "4.33.0",
"amqp-connection-manager": "3.7.0",
"amqplib": "0.8.0",
"apollo-server-express": "2.25.2",
"artillery": "1.7.6",
"awesome-typescript-loader": "5.2.1",
"apollo-server-core": "3.5.0",
"apollo-server-express": "3.5.0",
"artillery": "1.7.9",
"body-parser": "1.19.0",
"bytes": "3.1.0",
"cache-manager": "3.4.4",
"cache-manager-redis-store": "2.0.0",
"chai": "4.3.4",
"chai-as-promised": "7.1.1",
"clang-format": "1.5.0",
"clang-format": "1.6.0",
"commitlint-circle": "1.0.0",
"concurrently": "6.2.0",
"concurrently": "6.3.0",
"conventional-changelog": "3.1.24",
"core-js": "3.15.2",
"core-js": "3.19.1",
"coveralls": "3.1.1",
"delete-empty": "3.0.0",
"engine.io-client": "5.1.2",
"eslint": "7.30.0",
"engine.io-client": "6.0.2",
"eslint": "7.32.0",
"eslint-config-prettier": "8.3.0",
"eslint-plugin-import": "2.23.4",
"eslint-plugin-import": "2.25.2",
"eventsource": "1.1.0",
"fancy-log": "1.3.3",
"fastify": "3.19.1",
"fastify": "3.23.1",
"fastify-cors": "6.0.2",
"fastify-formbody": "5.0.0",
"fastify-multipart": "4.0.7",
"fastify-static": "4.2.2",
"graphql": "15.5.1",
"fastify-formbody": "5.1.0",
"fastify-multipart": "5.1.0",
"fastify-static": "4.5.0",
"graphql": "15.7.2",
"graphql-tools": "7.0.5",
"gulp": "4.0.2",
"gulp-clang-format": "1.0.27",
@@ -136,39 +136,39 @@
"gulp-typescript": "5.0.1",
"gulp-watch": "5.0.1",
"http-errors": "1.8.0",
"husky": "7.0.1",
"imports-loader": "3.0.0",
"husky": "7.0.4",
"imports-loader": "3.1.1",
"json-loader": "0.5.7",
"kafkajs": "1.15.0",
"lerna": "2.11.0",
"light-my-request": "4.4.1",
"lint-staged": "11.0.1",
"light-my-request": "4.6.0",
"lint-staged": "11.2.6",
"markdown-table": "2.0.0",
"merge-graphql-schemas": "1.7.8",
"middie": "5.3.0",
"mocha": "9.0.2",
"mongoose": "5.13.2",
"mocha": "9.1.3",
"mongoose": "6.0.12",
"mqtt": "4.2.8",
"multer": "1.4.2",
"mysql": "2.18.1",
"nats": "2.1.0",
"nodemon": "2.0.12",
"multer": "1.4.3",
"mysql2": "2.3.2",
"nats": "2.3.0",
"nodemon": "2.0.14",
"nyc": "15.1.0",
"point-of-view": "4.15.1",
"prettier": "2.3.2",
"point-of-view": "4.15.2",
"prettier": "2.4.1",
"redis": "3.1.2",
"rxjs-compat": "6.6.7",
"sinon": "11.1.1",
"sinon": "12.0.1",
"sinon-chai": "3.7.0",
"socket.io-client": "4.1.3",
"subscriptions-transport-ws": "0.9.19",
"supertest": "6.1.3",
"ts-morph": "11.0.3",
"ts-node": "10.1.0",
"typeorm": "0.2.34",
"socket.io-client": "4.3.2",
"subscriptions-transport-ws": "0.11.0",
"supertest": "6.1.6",
"ts-morph": "12.2.0",
"ts-node": "10.4.0",
"typeorm": "0.2.38",
"typescript": "4.3.5",
"wrk": "1.2.1",
"ws": "7.5.3"
"ws": "7.5.5"
},
"engines": {
"node": ">= 10.13.0"

View File

@@ -0,0 +1,18 @@
# Change Log
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
<a name="8.2.0"></a>
# [8.2.0](https://github.com/nestjs/nest/compare/v8.1.2...v8.2.0) (2021-11-08)
### Bug Fixes
* **deps:** update dependency axios to v0.24.0 ([fc77e4f](https://github.com/nestjs/nest/commit/fc77e4f))
### Features
* **common:** add the ability to set some extra metadata about returned files ([5100573](https://github.com/nestjs/nest/commit/5100573))
* **common:** allow to swap out class-validator and class-transformer ([2a1cc62](https://github.com/nestjs/nest/commit/2a1cc62))

View File

@@ -67,8 +67,11 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<table style="text-align:center;"><tr><td>
<a href="https://careers.labster.com/departments/platform" target="_blank"><img src="https://nestjs.com/img/labster-logo.png" width="170" valign="middle" /></a></td><td>
<a href="https://weld.so/" target="_blank"><img src="https://nestjs.com/img/weld-logo.svg" width="150" valign="middle" /></a></td><td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="170" valign="middle" /></a></td></tr></table>
<a href="https://weld.app/" target="_blank"><img src="https://nestjs.com/img/weld-logo.svg" width="150" valign="middle" /></a></td>
<td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="170" valign="middle" /></a></td>
<td>
<a href="https://intrinsic.ventures/" target="_blank"><img src="https://nestjs.com/img/intrinisic-logo.png" width="210" valign="middle" /></a></td></</tr></table>
#### Silver Sponsors
@@ -76,8 +79,9 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://neoteric.eu/" target="_blank"><img src="https://nestjs.com/img/neoteric-cut.png" width="120" valign="middle" /></a> </td><td>
<a href="http://gojob.com" target="_blank"><img src="http://nestjs.com/img/gojob-logo.png" valign="middle" width="100" /></a> </td><td>
<a href="http://www.leogistics.com" target="_blank"><img src="https://nestjs.com/img/leogistics-logo.jpeg" width="150" valign="middle" /></td><td>
<a href="http://www.meetdandy.com" target="_blank"><img src="https://nestjs.com/img/dandy-wide-logo.png" width="150" valign="middle" /></td><td>
<a href="https://www.castlecraft.in" target="_blank"><img src="https://nestjs.com/img/castlecraft-logo.png" width="150" valign="middle" /></td></tr></table>
<a href="https://careers.meetdandy.com/?gh_src=063ba61e3us" target="_blank"><img src="https://nestjs.com/img/dandy-roles-logo.svg" width="150" valign="middle" /></td><td>
<a href="https://www.castlecraft.in" target="_blank"><img src="https://nestjs.com/img/castlecraft-logo.png" width="150" valign="middle" /></td>
<td><a href="https://www.tinystacks.com" target="_blank"><img src="https://nestjs.com/img/tinystacks-logo.png#1" width="140" valign="middle" /></td></tr></table>
#### Sponsors
@@ -108,6 +112,7 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<td align="center" valign="middle"><a href="https://www.bystored.com/" target="_blank"><img src="https://nestjs.com/img/stored-logo.svg" width="110" valign="middle" /></a></td>
<td align="center" valign="middle"><a href="https://studyclerk.com/pay-for-research-paper" target="_blank"><img src="https://nestjs.com/img/studyclerk-logo.png" width="125" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://xyndata.com" target="_blank"><img src="https://nestjs.com/img/xyndata-logo.png" width="125" valign="middle" /></a></td></tr><tr>
<td align="center" valign="middle"><a href="https://www.anonymistic.com/" target="_blank"><img src="https://nestjs.com/img/anonymistic-logo.png" width="125" valign="middle" /></a></td>
<td align="center" valign="middle"><a href="https://www.naologic.com/" target="_blank"><img src="https://nestjs.com/img/naologic-logo.svg" width="125" valign="middle" /></a></td>
</tr></table>
## Backers

View File

@@ -30,6 +30,7 @@ export class CacheModule {
static register(options: CacheModuleOptions = {}): DynamicModule {
return {
module: CacheModule,
global: options.isGlobal,
providers: [{ provide: CACHE_MODULE_OPTIONS, useValue: options }],
};
}
@@ -45,6 +46,7 @@ export class CacheModule {
static registerAsync(options: CacheModuleAsyncOptions): DynamicModule {
return {
module: CacheModule,
global: options.isGlobal,
imports: options.imports,
providers: [
...this.createAsyncProviders(options),

View File

@@ -38,7 +38,8 @@ export class CacheInterceptor implements NestInterceptor {
next: CallHandler,
): Promise<Observable<any>> {
const key = this.trackBy(context);
const ttlValueOrFactory = this.reflector.get(CACHE_TTL_METADATA, context.getHandler()) ?? null;
const ttlValueOrFactory =
this.reflector.get(CACHE_TTL_METADATA, context.getHandler()) ?? null;
if (!key) {
return next.handle();

View File

@@ -31,7 +31,7 @@ export interface CacheStore {
*
* @param key cache key
*/
del(key: string): void | Promise<void>;
del?(key: string): void | Promise<void>;
}
export interface CacheStoreSetOptions<T> {
@@ -52,7 +52,7 @@ export interface CacheStoreFactory {
* Return a configured cache store.
*
* @param args Cache manager options received from `CacheModule.register()`
* or `CacheModule.registerAcync()`
* or `CacheModule.registerAsync()`
*/
create(args: LiteralObject): CacheStore;
}
@@ -68,7 +68,7 @@ export interface CacheManagerOptions {
* [Different stores](https://docs.nestjs.com/techniques/caching#different-stores)
* for more info.
*/
store?: string | CacheStoreFactory;
store?: string | CacheStoreFactory | CacheStore;
/**
* Time to live - amount of time in seconds that a response is cached before it
* is deleted. Subsequent request will call through the route handler and refresh

View File

@@ -2,6 +2,10 @@ import { ModuleMetadata, Provider, Type } from '../../interfaces';
import { CacheManagerOptions } from './cache-manager.interface';
export interface CacheModuleOptions extends CacheManagerOptions {
/**
* If "true', register `CacheModule` as a global module.
*/
isGlobal?: boolean;
[key: string]: any;
}
@@ -48,4 +52,8 @@ export interface CacheModuleAsyncOptions
*/
inject?: any[];
extraProviders?: Provider[];
/**
* If "true', register `CacheModule` as a global module.
*/
isGlobal?: boolean;
}

View File

@@ -16,7 +16,7 @@ export type ParamDecoratorEnhancer = ParameterDecorator;
export function createParamDecorator<
FactoryData = any,
FactoryInput = any,
FactoryOutput = any
FactoryOutput = any,
>(
factory: CustomParamFactory<FactoryData, FactoryInput, FactoryOutput>,
enhancers: ParamDecoratorEnhancer[] = [],
@@ -25,36 +25,37 @@ export function createParamDecorator<
) => ParameterDecorator {
const paramtype = uuid();
return (
data?,
...pipes: (Type<PipeTransform> | PipeTransform | FactoryData)[]
): ParameterDecorator => (target, key, index) => {
const args =
Reflect.getMetadata(ROUTE_ARGS_METADATA, target.constructor, key) || {};
data?,
...pipes: (Type<PipeTransform> | PipeTransform | FactoryData)[]
): ParameterDecorator =>
(target, key, index) => {
const args =
Reflect.getMetadata(ROUTE_ARGS_METADATA, target.constructor, key) || {};
const isPipe = (pipe: any) =>
pipe &&
((isFunction(pipe) &&
pipe.prototype &&
isFunction(pipe.prototype.transform)) ||
isFunction(pipe.transform));
const isPipe = (pipe: any) =>
pipe &&
((isFunction(pipe) &&
pipe.prototype &&
isFunction(pipe.prototype.transform)) ||
isFunction(pipe.transform));
const hasParamData = isNil(data) || !isPipe(data);
const paramData = hasParamData ? (data as any) : undefined;
const paramPipes = hasParamData ? pipes : [data, ...pipes];
const hasParamData = isNil(data) || !isPipe(data);
const paramData = hasParamData ? (data as any) : undefined;
const paramPipes = hasParamData ? pipes : [data, ...pipes];
Reflect.defineMetadata(
ROUTE_ARGS_METADATA,
assignCustomParameterMetadata(
args,
paramtype,
index,
factory,
paramData,
...(paramPipes as PipeTransform[]),
),
target.constructor,
key,
);
enhancers.forEach(fn => fn(target, key, index));
};
Reflect.defineMetadata(
ROUTE_ARGS_METADATA,
assignCustomParameterMetadata(
args,
paramtype,
index,
factory,
paramData,
...(paramPipes as PipeTransform[]),
),
target.constructor,
key,
);
enhancers.forEach(fn => fn(target, key, index));
};
}

View File

@@ -29,14 +29,14 @@ export const RequestMapping = (
};
};
const createMappingDecorator = (method: RequestMethod) => (
path?: string | string[],
): MethodDecorator => {
return RequestMapping({
[PATH_METADATA]: path,
[METHOD_METADATA]: method,
});
};
const createMappingDecorator =
(method: RequestMethod) =>
(path?: string | string[]): MethodDecorator => {
return RequestMapping({
[PATH_METADATA]: path,
[METHOD_METADATA]: method,
});
};
/**
* Route handler (method) Decorator. Routes HTTP POST requests to the specified path.

View File

@@ -45,40 +45,44 @@ export function assignMetadata<TParamtype = any, TArgs = any>(
}
function createRouteParamDecorator(paramtype: RouteParamtypes) {
return (data?: ParamData): ParameterDecorator => (target, key, index) => {
return (data?: ParamData): ParameterDecorator =>
(target, key, index) => {
const args =
Reflect.getMetadata(ROUTE_ARGS_METADATA, target.constructor, key) || {};
Reflect.defineMetadata(
ROUTE_ARGS_METADATA,
assignMetadata<RouteParamtypes, Record<number, RouteParamMetadata>>(
args,
paramtype,
index,
data,
),
target.constructor,
key,
);
};
}
const createPipesRouteParamDecorator =
(paramtype: RouteParamtypes) =>
(
data?: any,
...pipes: (Type<PipeTransform> | PipeTransform)[]
): ParameterDecorator =>
(target, key, index) => {
const args =
Reflect.getMetadata(ROUTE_ARGS_METADATA, target.constructor, key) || {};
const hasParamData = isNil(data) || isString(data);
const paramData = hasParamData ? data : undefined;
const paramPipes = hasParamData ? pipes : [data, ...pipes];
Reflect.defineMetadata(
ROUTE_ARGS_METADATA,
assignMetadata<RouteParamtypes, Record<number, RouteParamMetadata>>(
args,
paramtype,
index,
data,
),
assignMetadata(args, paramtype, index, paramData, ...paramPipes),
target.constructor,
key,
);
};
}
const createPipesRouteParamDecorator = (paramtype: RouteParamtypes) => (
data?: any,
...pipes: (Type<PipeTransform> | PipeTransform)[]
): ParameterDecorator => (target, key, index) => {
const args =
Reflect.getMetadata(ROUTE_ARGS_METADATA, target.constructor, key) || {};
const hasParamData = isNil(data) || isString(data);
const paramData = hasParamData ? data : undefined;
const paramPipes = hasParamData ? pipes : [data, ...pipes];
Reflect.defineMetadata(
ROUTE_ARGS_METADATA,
assignMetadata(args, paramtype, index, paramData, ...paramPipes),
target.constructor,
key,
);
};
/**
* Route handler parameter decorator. Extracts the `Request`
@@ -106,25 +110,22 @@ export const Request: () => ParameterDecorator = createRouteParamDecorator(
*/
export const Response: (
options?: ResponseDecoratorOptions,
) => ParameterDecorator = (options?: ResponseDecoratorOptions) => (
target,
key,
index,
) => {
if (options?.passthrough) {
Reflect.defineMetadata(
RESPONSE_PASSTHROUGH_METADATA,
options?.passthrough,
target.constructor,
) => ParameterDecorator =
(options?: ResponseDecoratorOptions) => (target, key, index) => {
if (options?.passthrough) {
Reflect.defineMetadata(
RESPONSE_PASSTHROUGH_METADATA,
options?.passthrough,
target.constructor,
key,
);
}
return createRouteParamDecorator(RouteParamtypes.RESPONSE)()(
target,
key,
index,
);
}
return createRouteParamDecorator(RouteParamtypes.RESPONSE)()(
target,
key,
index,
);
};
};
/**
* Route handler parameter decorator. Extracts reference to the `Next` function
@@ -320,9 +321,8 @@ export function UploadedFiles(
*
* @publicApi
*/
export const Headers: (
property?: string,
) => ParameterDecorator = createRouteParamDecorator(RouteParamtypes.HEADERS);
export const Headers: (property?: string) => ParameterDecorator =
createRouteParamDecorator(RouteParamtypes.HEADERS);
/**
* Route handler parameter decorator. Extracts the `query`

View File

@@ -39,6 +39,7 @@ export enum HttpStatus {
MISDIRECTED = 421,
UNPROCESSABLE_ENTITY = 422,
FAILED_DEPENDENCY = 424,
PRECONDITION_REQUIRED = 428,
TOO_MANY_REQUESTS = 429,
INTERNAL_SERVER_ERROR = 500,
NOT_IMPLEMENTED = 501,

View File

@@ -16,7 +16,7 @@ export class ImATeapotException extends HttpException {
* Instantiate an `ImATeapotException` Exception.
*
* @example
* `throw new BadGatewayException()`
* `throw new ImATeapotException()`
*
* @usageNotes
* The HTTP response status code will be 418.

View File

@@ -1,11 +1,15 @@
import { Readable } from 'stream';
import { StreamableFileOptions } from './streamable-options.interface';
export class StreamableFile {
private readonly stream: Readable;
constructor(buffer: Buffer);
constructor(readable: Readable);
constructor(bufferOrReadStream: Buffer | Readable) {
constructor(buffer: Buffer, options?: StreamableFileOptions);
constructor(readable: Readable, options?: StreamableFileOptions);
constructor(
bufferOrReadStream: Buffer | Readable,
readonly options: StreamableFileOptions = {},
) {
if (Buffer.isBuffer(bufferOrReadStream)) {
this.stream = new Readable();
this.stream.push(bufferOrReadStream);
@@ -21,4 +25,10 @@ export class StreamableFile {
getStream(): Readable {
return this.stream;
}
getHeaders() {
const { type = 'application/octet-stream', disposition = null } =
this.options;
return { type, disposition };
}
}

View File

@@ -0,0 +1,4 @@
export interface StreamableFileOptions {
type?: string;
disposition?: string;
}

View File

@@ -1,6 +1,6 @@
/*
* Nest @common
* Copyright(c) 2017 - 2020 Kamil Mysliwiec
* Copyright(c) 2017 - 2021 Kamil Mysliwiec
* https://nestjs.com
* MIT Licensed
*/

View File

@@ -0,0 +1,14 @@
import { Type } from '../type.interface';
import { ClassTransformOptions } from './class-transform-options.interface';
export interface TransformerPackage {
plainToClass<T>(
cls: Type<T>,
plain: unknown,
options?: ClassTransformOptions,
): T | T[];
classToPlain(
object: unknown,
options?: ClassTransformOptions,
): Record<string, any> | Record<string, any>[];
}

View File

@@ -0,0 +1,9 @@
import { ValidationError } from './validation-error.interface';
import { ValidatorOptions } from './validator-options.interface';
export interface ValidatorPackage {
validate(
object: unknown,
validatorOptions?: ValidatorOptions,
): ValidationError[] | Promise<ValidationError[]>;
}

View File

@@ -4,6 +4,7 @@ import {
CorsOptionsDelegate,
} from '../../interfaces/external/cors-options.interface';
import { NestApplicationOptions } from '../../interfaces/nest-application-options.interface';
import { VersioningOptions, VersionValue } from '../version-options.interface';
export type ErrorHandler<TRequest = any, TResponse = any> = (
error: any,
@@ -73,4 +74,13 @@ export interface HttpServer<TRequest = any, TResponse = any> {
close(): any;
getType(): string;
init?(): Promise<void>;
applyVersionFilter?(
handler: Function,
version: VersionValue,
versioningOptions: VersioningOptions,
): <TRequest extends Record<string, any> = any, TResponse = any>(
req: TRequest,
res: TResponse,
next: () => void,
) => any;
}

View File

@@ -55,10 +55,16 @@ export interface MediaTypeVersioningOptions {
key: string;
}
interface VersioningCommonOptions {
/**
* The default version to be used as a fallback when you did not provide some
* version to `@Controller()` nor `@Version()`.
*/
defaultVersion?: VersionOptions['version'];
}
/**
* @publicApi
*/
export type VersioningOptions =
| HeaderVersioningOptions
| UriVersioningOptions
| MediaTypeVersioningOptions;
export type VersioningOptions = VersioningCommonOptions &
(HeaderVersioningOptions | UriVersioningOptions | MediaTypeVersioningOptions);

View File

@@ -8,7 +8,7 @@ export interface WsMessageHandler<T = string> {
export interface WebSocketAdapter<
TServer = any,
TClient = any,
TOptions = any
TOptions = any,
> {
create(port: number, options?: TOptions): TServer;
bindClientConnect(server: TServer, callback: Function): any;

View File

@@ -1,6 +1,6 @@
{
"name": "@nestjs/common",
"version": "8.0.3",
"version": "8.2.0",
"description": "Nest - modern, fast, powerful node.js web framework (@common)",
"author": "Kamil Mysliwiec",
"homepage": "https://nestjs.com",
@@ -17,9 +17,9 @@
},
"license": "MIT",
"dependencies": {
"axios": "0.21.1",
"axios": "0.24.0",
"iterare": "1.2.1",
"tslib": "2.3.0",
"tslib": "2.3.1",
"uuid": "8.3.2"
},
"peerDependencies": {

View File

@@ -1,5 +1,8 @@
import { Injectable } from '../decorators/core/injectable.decorator';
import { ArgumentMetadata, PipeTransform } from '../interfaces/features/pipe-transform.interface';
import {
ArgumentMetadata,
PipeTransform,
} from '../interfaces/features/pipe-transform.interface';
import { isNil } from '../utils/shared.utils';
/**
@@ -11,13 +14,14 @@ import { isNil } from '../utils/shared.utils';
*/
@Injectable()
export class DefaultValuePipe<T = any, R = any>
implements PipeTransform<T, T | R> {
implements PipeTransform<T, T | R>
{
constructor(private readonly defaultValue: R) {}
transform(value?: T, _metadata?: ArgumentMetadata): T | R {
if (
isNil(value) ||
(typeof value === 'number' && isNaN((value as unknown) as number))
(typeof value === 'number' && isNaN(value as unknown as number))
) {
return this.defaultValue;
}

View File

@@ -2,7 +2,10 @@ import { Injectable } from '../decorators/core/injectable.decorator';
import { Optional } from '../decorators/core/optional.decorator';
import { HttpStatus } from '../enums/http-status.enum';
import { Type } from '../interfaces';
import { ArgumentMetadata, PipeTransform } from '../interfaces/features/pipe-transform.interface';
import {
ArgumentMetadata,
PipeTransform,
} from '../interfaces/features/pipe-transform.interface';
import { HttpErrorByCode } from '../utils/http-error-by-code.util';
import { isNil, isString } from '../utils/shared.utils';
import { ValidationPipe, ValidationPipeOptions } from './validation.pipe';
@@ -40,10 +43,8 @@ export class ParseArrayPipe implements PipeTransform {
...options,
});
const {
exceptionFactory,
errorHttpStatusCode = HttpStatus.BAD_REQUEST,
} = options;
const { exceptionFactory, errorHttpStatusCode = HttpStatus.BAD_REQUEST } =
options;
this.exceptionFactory =
exceptionFactory ||
(error => new HttpErrorByCode[errorHttpStatusCode](error));
@@ -82,10 +83,15 @@ export class ParseArrayPipe implements PipeTransform {
type: 'query',
};
const toClassInstance = (item: any) => {
const isExpectedTypePrimitive = this.isExpectedTypePrimitive();
const toClassInstance = (item: any, index?: number) => {
try {
item = JSON.parse(item);
} catch {}
if (isExpectedTypePrimitive) {
return this.validatePrimitive(item, index);
}
return this.validationPipe.transform(item, validationMetadata);
};
if (this.options.stopAtFirstError === false) {
@@ -99,8 +105,8 @@ export class ParseArrayPipe implements PipeTransform {
targetArray[i] = await toClassInstance(targetArray[i]);
} catch (err) {
let message: string[] | unknown;
if (err.getResponse) {
const response = err.getResponse();
if ((err as any).getResponse) {
const response = (err as any).getResponse();
if (Array.isArray(response.message)) {
message = response.message.map(
(item: string) => `[${i}] ${item}`,
@@ -124,4 +130,36 @@ export class ParseArrayPipe implements PipeTransform {
}
return value;
}
protected isExpectedTypePrimitive(): boolean {
return [Boolean, Number, String].includes(this.options.items as any);
}
protected validatePrimitive(originalValue: any, index?: number) {
if (this.options.items === Number) {
const value =
originalValue !== null && originalValue !== '' ? +originalValue : NaN;
if (isNaN(value)) {
throw this.exceptionFactory(
`${
typeof index !== 'undefined' ? `[${index}] ` : ''
}item must be a number`,
);
}
return value;
} else if (this.options.items === String) {
if (typeof originalValue !== 'string') {
return `${originalValue}`;
}
} else if (this.options.items === Boolean) {
if (typeof originalValue !== 'boolean') {
throw this.exceptionFactory(
`${
typeof index !== 'undefined' ? `[${index}] ` : ''
}item must be a boolean value`,
);
}
}
return originalValue;
}
}

View File

@@ -1,7 +1,10 @@
import { Injectable } from '../decorators/core/injectable.decorator';
import { Optional } from '../decorators/core/optional.decorator';
import { HttpStatus } from '../enums/http-status.enum';
import { ArgumentMetadata, PipeTransform } from '../interfaces/features/pipe-transform.interface';
import {
ArgumentMetadata,
PipeTransform,
} from '../interfaces/features/pipe-transform.interface';
import {
ErrorHttpStatusCode,
HttpErrorByCode,
@@ -21,15 +24,14 @@ export interface ParseBoolPipeOptions {
*/
@Injectable()
export class ParseBoolPipe
implements PipeTransform<string | boolean, Promise<boolean>> {
implements PipeTransform<string | boolean, Promise<boolean>>
{
protected exceptionFactory: (error: string) => any;
constructor(@Optional() options?: ParseBoolPipeOptions) {
options = options || {};
const {
exceptionFactory,
errorHttpStatusCode = HttpStatus.BAD_REQUEST,
} = options;
const { exceptionFactory, errorHttpStatusCode = HttpStatus.BAD_REQUEST } =
options;
this.exceptionFactory =
exceptionFactory ||
(error => new HttpErrorByCode[errorHttpStatusCode](error));

View File

@@ -31,10 +31,8 @@ export class ParseEnumPipe<T = any> implements PipeTransform<T> {
);
}
options = options || {};
const {
exceptionFactory,
errorHttpStatusCode = HttpStatus.BAD_REQUEST,
} = options;
const { exceptionFactory, errorHttpStatusCode = HttpStatus.BAD_REQUEST } =
options;
this.exceptionFactory =
exceptionFactory ||

View File

@@ -23,10 +23,8 @@ export class ParseFloatPipe implements PipeTransform<string> {
constructor(@Optional() options?: ParseFloatPipeOptions) {
options = options || {};
const {
exceptionFactory,
errorHttpStatusCode = HttpStatus.BAD_REQUEST,
} = options;
const { exceptionFactory, errorHttpStatusCode = HttpStatus.BAD_REQUEST } =
options;
this.exceptionFactory =
exceptionFactory ||

View File

@@ -1,7 +1,10 @@
import { Injectable } from '../decorators/core/injectable.decorator';
import { Optional } from '../decorators/core/optional.decorator';
import { HttpStatus } from '../enums/http-status.enum';
import { ArgumentMetadata, PipeTransform } from '../interfaces/features/pipe-transform.interface';
import {
ArgumentMetadata,
PipeTransform,
} from '../interfaces/features/pipe-transform.interface';
import {
ErrorHttpStatusCode,
HttpErrorByCode,
@@ -25,10 +28,8 @@ export class ParseIntPipe implements PipeTransform<string> {
constructor(@Optional() options?: ParseIntPipeOptions) {
options = options || {};
const {
exceptionFactory,
errorHttpStatusCode = HttpStatus.BAD_REQUEST,
} = options;
const { exceptionFactory, errorHttpStatusCode = HttpStatus.BAD_REQUEST } =
options;
this.exceptionFactory =
exceptionFactory ||
@@ -45,7 +46,7 @@ export class ParseIntPipe implements PipeTransform<string> {
async transform(value: string, metadata: ArgumentMetadata): Promise<number> {
const isNumeric =
['string', 'number'].includes(typeof value) &&
!isNaN(parseFloat(value)) &&
/^-?\d+$/.test(value) &&
isFinite(value as any);
if (!isNumeric) {
throw this.exceptionFactory(

View File

@@ -1,7 +1,10 @@
import { Injectable } from '../decorators/core/injectable.decorator';
import { Optional } from '../decorators/core/optional.decorator';
import { HttpStatus } from '../enums/http-status.enum';
import { ArgumentMetadata, PipeTransform } from '../interfaces/features/pipe-transform.interface';
import {
ArgumentMetadata,
PipeTransform,
} from '../interfaces/features/pipe-transform.interface';
import {
ErrorHttpStatusCode,
HttpErrorByCode,

View File

@@ -3,9 +3,14 @@ import { Optional } from '../decorators';
import { Injectable } from '../decorators/core';
import { HttpStatus } from '../enums/http-status.enum';
import { ClassTransformOptions } from '../interfaces/external/class-transform-options.interface';
import { TransformerPackage } from '../interfaces/external/transformer-package.interface';
import { ValidationError } from '../interfaces/external/validation-error.interface';
import { ValidatorOptions } from '../interfaces/external/validator-options.interface';
import { ArgumentMetadata, PipeTransform } from '../interfaces/features/pipe-transform.interface';
import { ValidatorPackage } from '../interfaces/external/validator-package.interface';
import {
ArgumentMetadata,
PipeTransform,
} from '../interfaces/features/pipe-transform.interface';
import { Type } from '../interfaces/type.interface';
import {
ErrorHttpStatusCode,
@@ -22,10 +27,12 @@ export interface ValidationPipeOptions extends ValidatorOptions {
exceptionFactory?: (errors: ValidationError[]) => any;
validateCustomDecorators?: boolean;
expectedType?: Type<any>;
validatorPackage?: ValidatorPackage;
transformerPackage?: TransformerPackage;
}
let classValidator: any = {};
let classTransformer: any = {};
let classValidator: ValidatorPackage = {} as any;
let classTransformer: TransformerPackage = {} as any;
@Injectable()
export class ValidationPipe implements PipeTransform<any> {
@@ -60,19 +67,29 @@ export class ValidationPipe implements PipeTransform<any> {
this.exceptionFactory =
options.exceptionFactory || this.createExceptionFactory();
classValidator = this.loadValidator();
classTransformer = this.loadTransformer();
classValidator = this.loadValidator(options.validatorPackage);
classTransformer = this.loadTransformer(options.transformerPackage);
}
protected loadValidator() {
return loadPackage('class-validator', 'ValidationPipe', () =>
require('class-validator'),
protected loadValidator(
validatorPackage?: ValidatorPackage,
): ValidatorPackage {
return (
validatorPackage ??
loadPackage('class-validator', 'ValidationPipe', () =>
require('class-validator'),
)
);
}
protected loadTransformer() {
return loadPackage('class-transformer', 'ValidationPipe', () =>
require('class-transformer'),
protected loadTransformer(
transformerPackage?: TransformerPackage,
): TransformerPackage {
return (
transformerPackage ??
loadPackage('class-transformer', 'ValidationPipe', () =>
require('class-transformer'),
)
);
}
@@ -111,7 +128,7 @@ export class ValidationPipe implements PipeTransform<any> {
entity = { constructor: metatype };
}
const errors = await classValidator.validate(entity, this.validatorOptions);
const errors = await this.validate(entity, this.validatorOptions);
if (errors.length > 0) {
throw await this.exceptionFactory(errors);
}
@@ -185,6 +202,13 @@ export class ValidationPipe implements PipeTransform<any> {
return ['number', 'boolean', 'string'].includes(typeof value);
}
protected validate(
object: object,
validatorOptions?: ValidatorOptions,
): Promise<ValidationError[]> | ValidationError[] {
return classValidator.validate(object, validatorOptions);
}
protected flattenValidationErrors(
validationErrors: ValidationError[],
): string[] {

View File

@@ -1,13 +1,15 @@
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { Inject, Injectable, Optional } from '../decorators/core';
import { StreamableFile } from '../file-stream';
import { CallHandler, ExecutionContext, NestInterceptor } from '../interfaces';
import { ClassTransformOptions } from '../interfaces/external/class-transform-options.interface';
import { TransformerPackage } from '../interfaces/external/transformer-package.interface';
import { loadPackage } from '../utils/load-package.util';
import { isObject } from '../utils/shared.utils';
import { CLASS_SERIALIZER_OPTIONS } from './class-serializer.constants';
let classTransformer: any = {};
let classTransformer: TransformerPackage = {} as any;
export interface PlainLiteralObject {
[key: string]: any;
@@ -18,18 +20,27 @@ export interface PlainLiteralObject {
// between core and common packages
const REFLECTOR = 'Reflector';
export interface ClassSerializerInterceptorOptions
extends ClassTransformOptions {
transformerPackage?: TransformerPackage;
}
@Injectable()
export class ClassSerializerInterceptor implements NestInterceptor {
constructor(
@Inject(REFLECTOR) protected readonly reflector: any,
@Optional() protected readonly defaultOptions: ClassTransformOptions = {},
@Optional()
protected readonly defaultOptions: ClassSerializerInterceptorOptions = {},
) {
classTransformer = loadPackage(
'class-transformer',
'ClassSerializerInterceptor',
() => require('class-transformer'),
);
require('class-transformer');
classTransformer =
defaultOptions?.transformerPackage ??
loadPackage('class-transformer', 'ClassSerializerInterceptor', () =>
require('class-transformer'),
);
if (!defaultOptions?.transformerPackage) {
require('class-transformer');
}
}
intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
@@ -47,18 +58,19 @@ export class ClassSerializerInterceptor implements NestInterceptor {
);
}
/**
* Serializes responses that are non-null objects nor streamable files.
*/
serialize(
response: PlainLiteralObject | Array<PlainLiteralObject>,
options: ClassTransformOptions,
): PlainLiteralObject | PlainLiteralObject[] {
const isArray = Array.isArray(response);
if (!isObject(response) && !isArray) {
): PlainLiteralObject | Array<PlainLiteralObject> {
if (!isObject(response) || response instanceof StreamableFile) {
return response;
}
return isArray
? (response as PlainLiteralObject[]).map(item =>
this.transformToPlain(item, options),
)
return Array.isArray(response)
? response.map(item => this.transformToPlain(item, options))
: this.transformToPlain(response, options);
}

View File

@@ -27,6 +27,7 @@ const DEFAULT_LOG_LEVELS: LogLevel[] = [
@Injectable()
export class ConsoleLogger implements LoggerService {
private static lastTimestampAt?: number;
private originalContext?: string;
constructor();
constructor(context: string);
@@ -40,6 +41,9 @@ export class ConsoleLogger implements LoggerService {
if (!options.logLevels) {
options.logLevels = DEFAULT_LOG_LEVELS;
}
if (context) {
this.originalContext = context;
}
}
/**
@@ -146,6 +150,13 @@ export class ConsoleLogger implements LoggerService {
this.context = context;
}
/**
* Resets the logger context to the value that was passed in the constructor.
*/
resetContext() {
this.context = this.originalContext;
}
isLevelEnabled(level: LogLevel): boolean {
const logLevels = this.options?.logLevels;
return isLogLevelEnabled(level, logLevels);

View File

@@ -150,7 +150,7 @@ export class Logger implements LoggerService {
optionalParams = this.context
? optionalParams.concat(this.context)
: optionalParams;
this.localInstance?.debug(message, ...optionalParams);
this.localInstance?.debug?.(message, ...optionalParams);
}
/**
@@ -163,7 +163,7 @@ export class Logger implements LoggerService {
optionalParams = this.context
? optionalParams.concat(this.context)
: optionalParams;
this.localInstance?.verbose(message, ...optionalParams);
this.localInstance?.verbose?.(message, ...optionalParams);
}
/**
@@ -208,7 +208,7 @@ export class Logger implements LoggerService {
static debug(message: any, ...optionalParams: [...any, string?]): void;
@Logger.WrapBuffer
static debug(message: any, ...optionalParams: any[]) {
this.staticInstanceRef?.debug(message, ...optionalParams);
this.staticInstanceRef?.debug?.(message, ...optionalParams);
}
/**
@@ -218,7 +218,7 @@ export class Logger implements LoggerService {
static verbose(message: any, ...optionalParams: [...any, string?]): void;
@Logger.WrapBuffer
static verbose(message: any, ...optionalParams: any[]) {
this.staticInstanceRef?.verbose(message, ...optionalParams);
this.staticInstanceRef?.verbose?.(message, ...optionalParams);
}
/**

View File

@@ -93,6 +93,58 @@ describe('ParseArrayPipe', () => {
await target.transform('1.2.3', {} as ArgumentMetadata),
).to.be.deep.equal(['1', '2', '3']);
});
describe('and type is specified', () => {
it('should parse & validate the array', async () => {
target = new ParseArrayPipe({ separator: '.', items: Number });
expect(
await target.transform('1.2.3', {} as ArgumentMetadata),
).to.be.deep.equal([1, 2, 3]);
target = new ParseArrayPipe({ separator: '.', items: Number });
try {
await target.transform('1.2.a.null.3', {} as ArgumentMetadata);
throw null;
} catch (err) {
expect(err).to.be.instanceOf(BadRequestException);
expect(err.getResponse().message).to.deep.equal(
'[2] item must be a number',
);
}
target = new ParseArrayPipe({ separator: '.', items: Boolean });
try {
await target.transform('1.2.a.null.3', {} as ArgumentMetadata);
throw null;
} catch (err) {
expect(err).to.be.instanceOf(BadRequestException);
expect(err.getResponse().message).to.deep.equal(
'[0] item must be a boolean value',
);
}
target = new ParseArrayPipe({
separator: '.',
items: Number,
stopAtFirstError: false,
});
try {
await target.transform('1.2.a.b.null.3', {} as ArgumentMetadata);
throw null;
} catch (err) {
expect(err).to.be.instanceOf(BadRequestException);
expect(err.getResponse().message).to.deep.equal([
'[2] item must be a number',
'[3] item must be a number',
'[4] item must be a number',
]);
}
});
});
});
describe('when items type is determined', () => {
@@ -113,6 +165,21 @@ describe('ParseArrayPipe', () => {
items.forEach(item => {
expect(item).to.be.instanceOf(ArrItem);
});
target = new ParseArrayPipe({ items: Number });
expect(
await target.transform('1,2,3', {} as ArgumentMetadata),
).to.deep.equal([1, 2, 3]);
target = new ParseArrayPipe({ items: String });
expect(
await target.transform('1,2,3', {} as ArgumentMetadata),
).to.deep.equal(['1', '2', '3']);
target = new ParseArrayPipe({ items: Boolean });
expect(
await target.transform('true,false', {} as ArgumentMetadata),
).to.deep.equal([true, false]);
});
describe('when "stopAtFirstError" is explicitly turned off', () => {
it('should validate each item and concat errors', async () => {

View File

@@ -25,6 +25,12 @@ describe('ParseIntPipe', () => {
parseInt(num, 10),
);
});
it('should return negative number', async () => {
const num = '-3';
expect(await target.transform(num, {} as ArgumentMetadata)).to.equal(
-3,
);
});
});
describe('when validation fails', () => {
it('should throw an error', async () => {
@@ -32,6 +38,11 @@ describe('ParseIntPipe', () => {
target.transform('123abc', {} as ArgumentMetadata),
).to.be.rejectedWith(CustomTestError);
});
it('should throw an error when number has wrong number encoding', async () => {
return expect(
target.transform('0xFF', {} as ArgumentMetadata),
).to.be.rejectedWith(CustomTestError);
});
});
});
});

View File

@@ -1,7 +1,7 @@
import { expect } from 'chai';
import 'reflect-metadata';
import * as sinon from 'sinon';
import { Logger, LoggerService } from '../../services';
import { ConsoleLogger, Logger, LoggerService } from '../../services';
describe('Logger', () => {
describe('[static methods]', () => {
@@ -134,6 +134,9 @@ describe('Logger', () => {
expect(processStderrWriteSpy.secondCall.firstArg).to.equal(
stacktrace + '\n',
);
expect(processStderrWriteSpy.secondCall.firstArg).to.not.include(
context,
);
});
it('should print multiple 2 errors and one stacktrace to the console', () => {
@@ -237,6 +240,24 @@ describe('Logger', () => {
});
});
describe('ConsoleLogger', () => {
it('should allow setting and resetting of context', () => {
const logger = new ConsoleLogger();
expect(logger['context']).to.be.undefined;
logger.setContext('context');
expect(logger['context']).to.equal('context');
logger.resetContext();
expect(logger['context']).to.be.undefined;
const loggerWithContext = new ConsoleLogger('context');
expect(loggerWithContext['context']).to.equal('context');
loggerWithContext.setContext('other');
expect(loggerWithContext['context']).to.equal('other');
loggerWithContext.resetContext();
expect(loggerWithContext['context']).to.equal('context');
});
});
describe('[instance methods]', () => {
describe('when the default logger is used', () => {
const logger = new Logger();

View File

@@ -14,6 +14,7 @@ export function loadPackage(
return loaderFn ? loaderFn() : require(packageName);
} catch (e) {
logger.error(MISSING_REQUIRED_DEPENDENCY(packageName, context));
Logger.flush();
process.exit(1);
}
}

View File

@@ -0,0 +1,12 @@
# Change Log
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
<a name="8.2.0"></a>
# [8.2.0](https://github.com/nestjs/nest/compare/v8.1.2...v8.2.0) (2021-11-08)
**Note:** Version bump only for package @nestjs/core

View File

@@ -67,8 +67,11 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<table style="text-align:center;"><tr><td>
<a href="https://careers.labster.com/departments/platform" target="_blank"><img src="https://nestjs.com/img/labster-logo.png" width="170" valign="middle" /></a></td><td>
<a href="https://weld.so/" target="_blank"><img src="https://nestjs.com/img/weld-logo.svg" width="150" valign="middle" /></a></td><td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="170" valign="middle" /></a></td></tr></table>
<a href="https://weld.app/" target="_blank"><img src="https://nestjs.com/img/weld-logo.svg" width="150" valign="middle" /></a></td>
<td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="170" valign="middle" /></a></td>
<td>
<a href="https://intrinsic.ventures/" target="_blank"><img src="https://nestjs.com/img/intrinisic-logo.png" width="210" valign="middle" /></a></td></</tr></table>
#### Silver Sponsors
@@ -76,8 +79,9 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://neoteric.eu/" target="_blank"><img src="https://nestjs.com/img/neoteric-cut.png" width="120" valign="middle" /></a> </td><td>
<a href="http://gojob.com" target="_blank"><img src="http://nestjs.com/img/gojob-logo.png" valign="middle" width="100" /></a> </td><td>
<a href="http://www.leogistics.com" target="_blank"><img src="https://nestjs.com/img/leogistics-logo.jpeg" width="150" valign="middle" /></td><td>
<a href="http://www.meetdandy.com" target="_blank"><img src="https://nestjs.com/img/dandy-wide-logo.png" width="150" valign="middle" /></td><td>
<a href="https://www.castlecraft.in" target="_blank"><img src="https://nestjs.com/img/castlecraft-logo.png" width="150" valign="middle" /></td></tr></table>
<a href="https://careers.meetdandy.com/?gh_src=063ba61e3us" target="_blank"><img src="https://nestjs.com/img/dandy-roles-logo.svg" width="150" valign="middle" /></td><td>
<a href="https://www.castlecraft.in" target="_blank"><img src="https://nestjs.com/img/castlecraft-logo.png" width="150" valign="middle" /></td>
<td><a href="https://www.tinystacks.com" target="_blank"><img src="https://nestjs.com/img/tinystacks-logo.png#1" width="140" valign="middle" /></td></tr></table>
#### Sponsors
@@ -108,6 +112,7 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<td align="center" valign="middle"><a href="https://www.bystored.com/" target="_blank"><img src="https://nestjs.com/img/stored-logo.svg" width="110" valign="middle" /></a></td>
<td align="center" valign="middle"><a href="https://studyclerk.com/pay-for-research-paper" target="_blank"><img src="https://nestjs.com/img/studyclerk-logo.png" width="125" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://xyndata.com" target="_blank"><img src="https://nestjs.com/img/xyndata-logo.png" width="125" valign="middle" /></a></td></tr><tr>
<td align="center" valign="middle"><a href="https://www.anonymistic.com/" target="_blank"><img src="https://nestjs.com/img/anonymistic-logo.png" width="125" valign="middle" /></a></td>
<td align="center" valign="middle"><a href="https://www.naologic.com/" target="_blank"><img src="https://nestjs.com/img/naologic-logo.svg" width="125" valign="middle" /></a></td>
</tr></table>
## Backers

View File

@@ -12,11 +12,12 @@ import { NestApplicationOptions } from '@nestjs/common/interfaces/nest-applicati
export abstract class AbstractHttpAdapter<
TServer = any,
TRequest = any,
TResponse = any
> implements HttpServer<TRequest, TResponse> {
TResponse = any,
> implements HttpServer<TRequest, TResponse>
{
protected httpServer: TServer;
constructor(protected readonly instance: any) {}
constructor(protected instance?: any) {}
// eslint-disable-next-line @typescript-eslint/no-empty-function
public async init() {}
@@ -87,6 +88,10 @@ export abstract class AbstractHttpAdapter<
this.httpServer = httpServer;
}
public setInstance<T = any>(instance: T) {
this.instance = instance;
}
public getInstance<T = any>(): T {
return this.instance as T;
}

View File

@@ -19,8 +19,10 @@ export class ApplicationConfig {
private globalGuards: Array<CanActivate> = [];
private versioningOptions: VersioningOptions;
private readonly globalRequestPipes: InstanceWrapper<PipeTransform>[] = [];
private readonly globalRequestFilters: InstanceWrapper<ExceptionFilter>[] = [];
private readonly globalRequestInterceptors: InstanceWrapper<NestInterceptor>[] = [];
private readonly globalRequestFilters: InstanceWrapper<ExceptionFilter>[] =
[];
private readonly globalRequestInterceptors: InstanceWrapper<NestInterceptor>[] =
[];
private readonly globalRequestGuards: InstanceWrapper<CanActivate>[] = [];
constructor(private ioAdapter: WebSocketAdapter | null = null) {}

View File

@@ -54,7 +54,8 @@ export class ExternalExceptionFilterContext extends BaseExceptionFilterContext {
if (contextId === STATIC_CONTEXT && !inquirerId) {
return globalFilters;
}
const scopedFilterWrappers = this.config.getGlobalRequestFilters() as InstanceWrapper[];
const scopedFilterWrappers =
this.config.getGlobalRequestFilters() as InstanceWrapper[];
const scopedFilters = iterate(scopedFilterWrappers)
.map(wrapper => wrapper.getInstanceByContextId(contextId, inquirerId))
.filter(host => !!host)

View File

@@ -101,7 +101,8 @@ export class GuardsContextCreator extends ContextCreator {
if (contextId === STATIC_CONTEXT && !inquirerId) {
return globalGuards;
}
const scopedGuardWrappers = this.config.getGlobalRequestGuards() as InstanceWrapper[];
const scopedGuardWrappers =
this.config.getGlobalRequestGuards() as InstanceWrapper[];
const scopedGuards = iterate(scopedGuardWrappers)
.map(wrapper => wrapper.getInstanceByContextId(contextId, inquirerId))
.filter(host => !!host)

View File

@@ -328,11 +328,11 @@ export class ExternalContextCreator {
: this.pipesConsumer.apply(value, { metatype, type, data }, pipes);
}
public async transformToResult(resultOrDeffered: any) {
if (resultOrDeffered && isFunction(resultOrDeffered.subscribe)) {
return lastValueFrom(resultOrDeffered);
public async transformToResult(resultOrDeferred: any) {
if (resultOrDeferred && isFunction(resultOrDeferred.subscribe)) {
return lastValueFrom(resultOrDeferred);
}
return resultOrDeffered;
return resultOrDeferred;
}
public createGuardsFn<TContext extends string = ContextType>(

View File

@@ -20,7 +20,7 @@ export type HandlerResponseBasicFn = <TResult, TResponse>(
export type HandleSseResponseFn = <
TResult extends Observable<unknown> = any,
TResponse extends HeaderStream = any,
TRequest extends IncomingMessage = any
TRequest extends IncomingMessage = any,
>(
result: TResult,
res: TResponse,
@@ -43,7 +43,7 @@ export interface HandlerMetadata {
export class HandlerMetadataStorage<
TValue = HandlerMetadata,
TKey extends Type<unknown> = any
TKey extends Type<unknown> = any,
> {
private readonly [HANDLER_METADATA_SYMBOL] = new Map<string, TValue>();

View File

@@ -13,7 +13,7 @@ import { AbstractHttpAdapter } from '../adapters/http-adapter';
* @publicApi
*/
export class HttpAdapterHost<
T extends AbstractHttpAdapter = AbstractHttpAdapter
T extends AbstractHttpAdapter = AbstractHttpAdapter,
> {
private _httpAdapter?: T;

View File

@@ -32,7 +32,7 @@ function callOperator(
.filter(instance => !isNil(instance))
.filter(hasBeforeApplicationShutdownHook)
.map(async instance =>
((instance as any) as BeforeApplicationShutdown).beforeApplicationShutdown(
(instance as any as BeforeApplicationShutdown).beforeApplicationShutdown(
signal,
),
)
@@ -52,7 +52,12 @@ export async function callBeforeAppShutdownHook(
): Promise<void> {
const providers = module.getNonAliasProviders();
const [_, moduleClassHost] = providers.shift();
const instances = [...module.controllers, ...providers];
const instances = [
...module.controllers,
...providers,
...module.injectables,
...module.middlewares,
];
const nonTransientInstances = getNonTransientInstances(instances);
await Promise.all(callOperator(nonTransientInstances, signal));
@@ -65,8 +70,8 @@ export async function callBeforeAppShutdownHook(
hasBeforeApplicationShutdownHook(moduleClassInstance) &&
moduleClassHost.isDependencyTreeStatic()
) {
await (moduleClassInstance as BeforeApplicationShutdown).beforeApplicationShutdown(
signal,
);
await (
moduleClassInstance as BeforeApplicationShutdown
).beforeApplicationShutdown(signal);
}
}

View File

@@ -27,7 +27,7 @@ function callOperator(instances: InstanceWrapper[]): Promise<any>[] {
.filter(instance => !isNil(instance))
.filter(hasOnAppBootstrapHook)
.map(async instance =>
((instance as any) as OnApplicationBootstrap).onApplicationBootstrap(),
(instance as any as OnApplicationBootstrap).onApplicationBootstrap(),
)
.toArray();
}
@@ -62,6 +62,8 @@ export async function callModuleBootstrapHook(module: Module): Promise<any> {
hasOnAppBootstrapHook(moduleClassInstance) &&
moduleClassHost.isDependencyTreeStatic()
) {
await (moduleClassInstance as OnApplicationBootstrap).onApplicationBootstrap();
await (
moduleClassInstance as OnApplicationBootstrap
).onApplicationBootstrap();
}
}

View File

@@ -30,9 +30,7 @@ function callOperator(
.filter(instance => !isNil(instance))
.filter(hasOnAppShutdownHook)
.map(async instance =>
((instance as any) as OnApplicationShutdown).onApplicationShutdown(
signal,
),
(instance as any as OnApplicationShutdown).onApplicationShutdown(signal),
)
.toArray();
}

Some files were not shown because too many files have changed in this diff Show More