@lenne.tech/nest-server 3.2.0 → 3.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/common/args/filter.args.d.ts +5 -0
- package/dist/core/common/args/filter.args.js +10 -0
- package/dist/core/common/args/filter.args.js.map +1 -1
- package/dist/core/common/args/pagination.args.d.ts +8 -1
- package/dist/core/common/args/pagination.args.js +24 -6
- package/dist/core/common/args/pagination.args.js.map +1 -1
- package/dist/core/common/decorators/restricted.decorator.d.ts +3 -0
- package/dist/core/common/decorators/restricted.decorator.js +14 -5
- package/dist/core/common/decorators/restricted.decorator.js.map +1 -1
- package/dist/core/common/helpers/context.helper.js +15 -5
- package/dist/core/common/helpers/context.helper.js.map +1 -1
- package/dist/core/common/helpers/filter.helper.d.ts +3 -3
- package/dist/core/common/helpers/filter.helper.js.map +1 -1
- package/dist/core/common/helpers/graphql.helper.d.ts +4 -4
- package/dist/core/common/helpers/input.helper.js +13 -7
- package/dist/core/common/helpers/input.helper.js.map +1 -1
- package/dist/core/common/helpers/model.helper.js +0 -1
- package/dist/core/common/helpers/model.helper.js.map +1 -1
- package/dist/core/common/helpers/service.helper.d.ts +11 -8
- package/dist/core/common/helpers/service.helper.js +50 -12
- package/dist/core/common/helpers/service.helper.js.map +1 -1
- package/dist/core/common/inputs/combined-filter.input.d.ts +8 -2
- package/dist/core/common/inputs/combined-filter.input.js +16 -5
- package/dist/core/common/inputs/combined-filter.input.js.map +1 -1
- package/dist/core/common/inputs/core-input.input.d.ts +8 -0
- package/dist/core/common/inputs/core-input.input.js +15 -0
- package/dist/core/common/inputs/core-input.input.js.map +1 -0
- package/dist/core/common/inputs/filter.input.d.ts +7 -1
- package/dist/core/common/inputs/filter.input.js +14 -1
- package/dist/core/common/inputs/filter.input.js.map +1 -1
- package/dist/core/common/inputs/single-filter.input.d.ts +2 -1
- package/dist/core/common/inputs/single-filter.input.js +10 -1
- package/dist/core/common/inputs/single-filter.input.js.map +1 -1
- package/dist/core/common/inputs/sort.input.d.ts +2 -1
- package/dist/core/common/inputs/sort.input.js +7 -1
- package/dist/core/common/inputs/sort.input.js.map +1 -1
- package/dist/core/common/interceptors/check-response.interceptor.js +1 -1
- package/dist/core/common/interceptors/check-response.interceptor.js.map +1 -1
- package/dist/core/common/interfaces/core-persistence-model.interface.d.ts +1 -0
- package/dist/core/common/interfaces/server-options.interface.d.ts +3 -15
- package/dist/core/common/models/core-model.model.d.ts +6 -0
- package/dist/core/common/models/core-model.model.js +14 -5
- package/dist/core/common/models/core-model.model.js.map +1 -1
- package/dist/core/common/models/core-persistence.model.d.ts +5 -29
- package/dist/core/common/models/core-persistence.model.js +19 -41
- package/dist/core/common/models/core-persistence.model.js.map +1 -1
- package/dist/core/common/pipes/check-input.pipe.d.ts +2 -3
- package/dist/core/common/pipes/check-input.pipe.js +5 -20
- package/dist/core/common/pipes/check-input.pipe.js.map +1 -1
- package/dist/core/common/pipes/map-and-validate.pipe.d.ts +4 -0
- package/dist/core/common/pipes/map-and-validate.pipe.js +40 -0
- package/dist/core/common/pipes/map-and-validate.pipe.js.map +1 -0
- package/dist/core/common/types/plain-input.type.d.ts +3 -0
- package/dist/core/common/types/plain-input.type.js +3 -0
- package/dist/core/common/types/plain-input.type.js.map +1 -0
- package/dist/core/modules/auth/core-auth.model.d.ts +3 -1
- package/dist/core/modules/auth/core-auth.model.js +7 -1
- package/dist/core/modules/auth/core-auth.model.js.map +1 -1
- package/dist/core/modules/auth/core-auth.module.d.ts +5 -2
- package/dist/core/modules/auth/core-auth.module.js +25 -17
- package/dist/core/modules/auth/core-auth.module.js.map +1 -1
- package/dist/core/modules/auth/core-auth.resolver.d.ts +1 -1
- package/dist/core/modules/user/core-user.model.d.ts +3 -0
- package/dist/core/modules/user/core-user.model.js +9 -4
- package/dist/core/modules/user/core-user.model.js.map +1 -1
- package/dist/core/modules/user/core-user.service.d.ts +9 -13
- package/dist/core/modules/user/core-user.service.js +38 -67
- package/dist/core/modules/user/core-user.service.js.map +1 -1
- package/dist/core/modules/user/inputs/core-user-create.input.js.map +1 -1
- package/dist/core/modules/user/inputs/core-user.input.d.ts +2 -2
- package/dist/core/modules/user/inputs/core-user.input.js +3 -3
- package/dist/core/modules/user/inputs/core-user.input.js.map +1 -1
- package/dist/core.module.js +4 -4
- package/dist/core.module.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/main.js +0 -2
- package/dist/main.js.map +1 -1
- package/dist/server/common/models/persistence.model.d.ts +4 -2
- package/dist/server/common/models/persistence.model.js +6 -2
- package/dist/server/common/models/persistence.model.js.map +1 -1
- package/dist/server/modules/auth/auth.model.d.ts +1 -0
- package/dist/server/modules/auth/auth.model.js +4 -0
- package/dist/server/modules/auth/auth.model.js.map +1 -1
- package/dist/server/modules/user/inputs/user-create.input.js.map +1 -1
- package/dist/server/modules/user/inputs/user.input.js.map +1 -1
- package/dist/server/modules/user/user.model.d.ts +3 -2
- package/dist/server/modules/user/user.model.js +9 -5
- package/dist/server/modules/user/user.model.js.map +1 -1
- package/dist/server/modules/user/user.resolver.d.ts +2 -2
- package/dist/server/modules/user/user.resolver.js +11 -13
- package/dist/server/modules/user/user.resolver.js.map +1 -1
- package/dist/server/modules/user/user.service.d.ts +6 -6
- package/dist/server/modules/user/user.service.js +12 -4
- package/dist/server/modules/user/user.service.js.map +1 -1
- package/dist/test/test.helper.d.ts +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +26 -26
- package/src/core/common/args/filter.args.ts +22 -1
- package/src/core/common/args/pagination.args.ts +42 -7
- package/src/core/common/decorators/restricted.decorator.ts +22 -5
- package/src/core/common/helpers/context.helper.ts +14 -3
- package/src/core/common/helpers/filter.helper.ts +3 -3
- package/src/core/common/helpers/input.helper.ts +17 -11
- package/src/core/common/helpers/model.helper.ts +0 -3
- package/src/core/common/helpers/service.helper.ts +95 -30
- package/src/core/common/inputs/combined-filter.input.ts +30 -9
- package/src/core/common/inputs/core-input.input.ts +36 -0
- package/src/core/common/inputs/filter.input.ts +27 -3
- package/src/core/common/inputs/single-filter.input.ts +7 -6
- package/src/core/common/inputs/sort.input.ts +4 -3
- package/src/core/common/interceptors/check-response.interceptor.ts +2 -2
- package/src/core/common/interfaces/core-persistence-model.interface.ts +1 -0
- package/src/core/common/interfaces/server-options.interface.ts +3 -33
- package/src/core/common/models/core-model.model.ts +42 -3
- package/src/core/common/models/core-persistence.model.ts +33 -120
- package/src/core/common/pipes/check-input.pipe.ts +13 -33
- package/src/core/common/pipes/map-and-validate.pipe.ts +32 -0
- package/src/core/common/types/plain-input.type.ts +6 -0
- package/src/core/modules/auth/core-auth.model.ts +15 -1
- package/src/core/modules/auth/core-auth.module.ts +38 -22
- package/src/core/modules/auth/core-auth.resolver.ts +1 -1
- package/src/core/modules/user/core-user.model.ts +16 -4
- package/src/core/modules/user/core-user.service.ts +59 -115
- package/src/core/modules/user/inputs/core-user-create.input.ts +4 -0
- package/src/core/modules/user/inputs/core-user.input.ts +7 -3
- package/src/core.module.ts +13 -6
- package/src/index.ts +6 -2
- package/src/main.ts +0 -4
- package/src/server/common/models/persistence.model.ts +16 -2
- package/src/server/modules/auth/auth.model.ts +13 -0
- package/src/server/modules/user/inputs/user-create.input.ts +4 -0
- package/src/server/modules/user/inputs/user.input.ts +4 -0
- package/src/server/modules/user/user.model.ts +18 -5
- package/src/server/modules/user/user.resolver.ts +15 -19
- package/src/server/modules/user/user.service.ts +22 -7
- package/src/test/test.helper.ts +1 -1
- package/dist/core/common/pipes/map.pipe.d.ts +0 -4
- package/dist/core/common/pipes/map.pipe.js +0 -25
- package/dist/core/common/pipes/map.pipe.js.map +0 -1
- package/src/core/common/pipes/map.pipe.ts +0 -16
|
@@ -16,4 +16,17 @@ export class Auth extends CoreAuthModel {
|
|
|
16
16
|
*/
|
|
17
17
|
@Field((type) => User, { description: 'User who signed in' })
|
|
18
18
|
user: User = undefined;
|
|
19
|
+
|
|
20
|
+
// ===================================================================================================================
|
|
21
|
+
// Properties
|
|
22
|
+
// ===================================================================================================================
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Initialize instance with default values instead of undefined
|
|
26
|
+
*/
|
|
27
|
+
init() {
|
|
28
|
+
super.init();
|
|
29
|
+
// Nothing more to initialize yet
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
19
32
|
}
|
|
@@ -3,6 +3,10 @@ import { CoreUserCreateInput } from '../../../../core/modules/user/inputs/core-u
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* User input to create a new user
|
|
6
|
+
*
|
|
7
|
+
* HINT: All properties (in this class and all classes that extend this class) must be initialized with undefined,
|
|
8
|
+
* otherwise the property will not be recognized via Object.keys (this is necessary for mapping) or will be initialized
|
|
9
|
+
* with a default value that may overwrite an existing value in the DB.
|
|
6
10
|
*/
|
|
7
11
|
@InputType({ description: 'User input to create a new user' })
|
|
8
12
|
export class UserCreateInput extends CoreUserCreateInput {
|
|
@@ -3,6 +3,10 @@ import { CoreUserInput } from '../../../../core/modules/user/inputs/core-user.in
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* User input to update a user
|
|
6
|
+
*
|
|
7
|
+
* HINT: All properties (in this class and all classes that extend this class) must be initialized with undefined,
|
|
8
|
+
* otherwise the property will not be recognized via Object.keys (this is necessary for mapping) or will be initialized
|
|
9
|
+
* with a default value that may overwrite an existing value in the DB.
|
|
6
10
|
*/
|
|
7
11
|
@InputType({ description: 'User input' })
|
|
8
12
|
export class UserInput extends CoreUserInput {
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { Field, ObjectType } from '@nestjs/graphql';
|
|
2
2
|
import { CoreUserModel } from '../../../core/modules/user/core-user.model';
|
|
3
3
|
import { PersistenceModel } from '../../common/models/persistence.model';
|
|
4
|
-
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
|
|
5
|
-
import
|
|
4
|
+
import { Prop, Schema as MongooseSchema, SchemaFactory } from '@nestjs/mongoose';
|
|
5
|
+
import { Schema, Document } from 'mongoose';
|
|
6
6
|
|
|
7
7
|
export type UserDocument = User & Document;
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* User schema
|
|
11
11
|
*/
|
|
12
|
-
@Schema()
|
|
13
12
|
@ObjectType({ description: 'User' })
|
|
13
|
+
@MongooseSchema({ timestamps: true })
|
|
14
14
|
export class User extends CoreUserModel implements PersistenceModel {
|
|
15
15
|
// ===================================================================================================================
|
|
16
16
|
// Properties
|
|
@@ -32,7 +32,7 @@ export class User extends CoreUserModel implements PersistenceModel {
|
|
|
32
32
|
description: 'ID of the user who created the object',
|
|
33
33
|
nullable: true,
|
|
34
34
|
})
|
|
35
|
-
@Prop({ type:
|
|
35
|
+
@Prop({ type: Schema.Types.ObjectId, ref: 'User' })
|
|
36
36
|
createdBy: User = undefined;
|
|
37
37
|
|
|
38
38
|
/**
|
|
@@ -44,8 +44,21 @@ export class User extends CoreUserModel implements PersistenceModel {
|
|
|
44
44
|
description: 'ID of the user who last updated the object',
|
|
45
45
|
nullable: true,
|
|
46
46
|
})
|
|
47
|
-
@Prop({ type:
|
|
47
|
+
@Prop({ type: Schema.Types.ObjectId, ref: 'User' })
|
|
48
48
|
updatedBy: User = undefined;
|
|
49
|
+
|
|
50
|
+
// ===================================================================================================================
|
|
51
|
+
// Methods
|
|
52
|
+
// ===================================================================================================================
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Initialize instance with default values instead of undefined
|
|
56
|
+
*/
|
|
57
|
+
init() {
|
|
58
|
+
super.init();
|
|
59
|
+
// Nothing more to initialize yet
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
49
62
|
}
|
|
50
63
|
|
|
51
64
|
export const UserSchema = SchemaFactory.createForClass(User);
|
|
@@ -47,8 +47,8 @@ export class UserResolver {
|
|
|
47
47
|
* Request new password for user with email
|
|
48
48
|
*/
|
|
49
49
|
@Query((returns) => Boolean, { description: 'Request new password for user with email' })
|
|
50
|
-
async requestPasswordResetMail(@Args('email') email: string) {
|
|
51
|
-
return await this.usersService.
|
|
50
|
+
async requestPasswordResetMail(@Args('email') email: string): Promise<boolean> {
|
|
51
|
+
return !!(await this.usersService.sendPasswordResetMail(email));
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
// ===========================================================================
|
|
@@ -58,28 +58,29 @@ export class UserResolver {
|
|
|
58
58
|
* Verify user with email
|
|
59
59
|
*/
|
|
60
60
|
@Mutation((returns) => Boolean, { description: 'Verify user with email' })
|
|
61
|
-
async verifyUser(@Args('token') token: string) {
|
|
62
|
-
return await this.usersService.verify(token);
|
|
61
|
+
async verifyUser(@Args('token') token: string): Promise<boolean> {
|
|
62
|
+
return !!(await this.usersService.verify(token));
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
/**
|
|
66
66
|
* Set new password for user with token
|
|
67
67
|
*/
|
|
68
68
|
@Mutation((returns) => Boolean, { description: 'Set new password for user with token' })
|
|
69
|
-
async resetPassword(@Args('token') token: string, @Args('password') password: string) {
|
|
70
|
-
return await this.usersService.resetPassword(token, password);
|
|
69
|
+
async resetPassword(@Args('token') token: string, @Args('password') password: string): Promise<boolean> {
|
|
70
|
+
return !!(await this.usersService.resetPassword(token, password));
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
/**
|
|
74
74
|
* Create new user
|
|
75
75
|
*/
|
|
76
76
|
@Mutation((returns) => User, { description: 'Create a new user' })
|
|
77
|
-
async createUser(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
77
|
+
async createUser(@Args('input') input: UserCreateInput, @GraphQLUser() user: User): Promise<User> {
|
|
78
|
+
// Check input
|
|
79
|
+
// Hint: necessary as long as global CheckInputPipe can't access context for current user
|
|
80
|
+
// (see https://github.com/nestjs/graphql/issues/325)
|
|
81
|
+
input = await InputHelper.check(input, user, UserCreateInput);
|
|
82
|
+
|
|
83
|
+
return await this.usersService.create(input, user);
|
|
83
84
|
}
|
|
84
85
|
|
|
85
86
|
/**
|
|
@@ -87,19 +88,14 @@ export class UserResolver {
|
|
|
87
88
|
*/
|
|
88
89
|
@Roles(RoleEnum.ADMIN, RoleEnum.OWNER)
|
|
89
90
|
@Mutation((returns) => User, { description: 'Update existing user' })
|
|
90
|
-
async updateUser(
|
|
91
|
-
@Args('input', { type: () => UserInput }) input: UserInput,
|
|
92
|
-
@Args('id') id: string,
|
|
93
|
-
@GraphQLUser() user: User,
|
|
94
|
-
@Info() info: GraphQLResolveInfo
|
|
95
|
-
): Promise<User> {
|
|
91
|
+
async updateUser(@Args('input') input: UserInput, @Args('id') id: string, @GraphQLUser() user: User): Promise<User> {
|
|
96
92
|
// Check input
|
|
97
93
|
// Hint: necessary as long as global CheckInputPipe can't access context for current user
|
|
98
94
|
// (see https://github.com/nestjs/graphql/issues/325)
|
|
99
95
|
input = await InputHelper.check(input, user, UserInput);
|
|
100
96
|
|
|
101
97
|
// Update user
|
|
102
|
-
return await this.usersService.update(id, input, user
|
|
98
|
+
return await this.usersService.update(id, input, user);
|
|
103
99
|
}
|
|
104
100
|
|
|
105
101
|
/**
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Inject, Injectable, UnauthorizedException, UnprocessableEntityException } from '@nestjs/common';
|
|
2
2
|
import * as fs from 'fs';
|
|
3
|
-
import { GraphQLResolveInfo } from 'graphql';
|
|
4
3
|
import envConfig from '../../../config.env';
|
|
5
4
|
import { FilterArgs } from '../../../core/common/args/filter.args';
|
|
6
5
|
import { Filter } from '../../../core/common/helpers/filter.helper';
|
|
@@ -10,7 +9,7 @@ import { EmailService } from '../../../core/common/services/email.service';
|
|
|
10
9
|
import { CoreUserService } from '../../../core/modules/user/core-user.service';
|
|
11
10
|
import { UserCreateInput } from './inputs/user-create.input';
|
|
12
11
|
import { UserInput } from './inputs/user.input';
|
|
13
|
-
import { User } from './user.model';
|
|
12
|
+
import { User, UserDocument } from './user.model';
|
|
14
13
|
import { InjectModel } from '@nestjs/mongoose';
|
|
15
14
|
import { Model } from 'mongoose';
|
|
16
15
|
import { ICorePersistenceModel } from '../../../core/common/interfaces/core-persistence-model.interface';
|
|
@@ -39,7 +38,7 @@ export class UserService extends CoreUserService<User, UserInput, UserCreateInpu
|
|
|
39
38
|
constructor(
|
|
40
39
|
protected readonly configService: ConfigService,
|
|
41
40
|
protected readonly emailService: EmailService,
|
|
42
|
-
@InjectModel('User') protected readonly userModel: Model<
|
|
41
|
+
@InjectModel('User') protected readonly userModel: Model<UserDocument>,
|
|
43
42
|
@Inject('PUB_SUB') protected readonly pubSub: PubSub
|
|
44
43
|
) {
|
|
45
44
|
super(userModel, emailService);
|
|
@@ -53,10 +52,10 @@ export class UserService extends CoreUserService<User, UserInput, UserCreateInpu
|
|
|
53
52
|
/**
|
|
54
53
|
* Create new user and send welcome email
|
|
55
54
|
*/
|
|
56
|
-
async create(input: UserCreateInput, currentUser?: User
|
|
55
|
+
async create(input: UserCreateInput, currentUser?: User): Promise<User> {
|
|
57
56
|
const user = await super.create(input, currentUser);
|
|
58
57
|
|
|
59
|
-
await this.prepareOutput(user
|
|
58
|
+
await this.prepareOutput(user);
|
|
60
59
|
|
|
61
60
|
await this.pubSub.publish('userCreated', User.map(user));
|
|
62
61
|
|
|
@@ -77,6 +76,22 @@ export class UserService extends CoreUserService<User, UserInput, UserCreateInpu
|
|
|
77
76
|
return this.userModel.find(filterQuery[0], null, filterQuery[1]).exec();
|
|
78
77
|
}
|
|
79
78
|
|
|
79
|
+
/**
|
|
80
|
+
* Request password reset mail
|
|
81
|
+
*
|
|
82
|
+
* @param email
|
|
83
|
+
*/
|
|
84
|
+
async sendPasswordResetMail(email: string): Promise<User> {
|
|
85
|
+
const user = await super.setPasswordResetTokenForEmail(email);
|
|
86
|
+
|
|
87
|
+
await this.emailService.sendMail(user.email, 'Password reset', {
|
|
88
|
+
htmlTemplate: 'password-reset',
|
|
89
|
+
templateData: { name: user.username, link: envConfig.email.passwordResetLink + '/' + user.passwordResetToken },
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
return user;
|
|
93
|
+
}
|
|
94
|
+
|
|
80
95
|
/**
|
|
81
96
|
* Set avatar image
|
|
82
97
|
*/
|
|
@@ -124,7 +139,7 @@ export class UserService extends CoreUserService<User, UserInput, UserCreateInpu
|
|
|
124
139
|
/**
|
|
125
140
|
* Prepare output before return
|
|
126
141
|
*/
|
|
127
|
-
protected async prepareOutput(user: User
|
|
128
|
-
return ServiceHelper.prepareOutput(user
|
|
142
|
+
protected async prepareOutput(user: User): Promise<User> {
|
|
143
|
+
return ServiceHelper.prepareOutput(user);
|
|
129
144
|
}
|
|
130
145
|
}
|
package/src/test/test.helper.ts
CHANGED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.MapPipe = void 0;
|
|
10
|
-
const common_1 = require("@nestjs/common");
|
|
11
|
-
let MapPipe = class MapPipe {
|
|
12
|
-
transform(value, metadata) {
|
|
13
|
-
var _a;
|
|
14
|
-
let result = value;
|
|
15
|
-
if ((_a = metadata.metatype) === null || _a === void 0 ? void 0 : _a.map) {
|
|
16
|
-
result = metadata.metatype.map(value);
|
|
17
|
-
}
|
|
18
|
-
return result;
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
MapPipe = __decorate([
|
|
22
|
-
(0, common_1.Injectable)()
|
|
23
|
-
], MapPipe);
|
|
24
|
-
exports.MapPipe = MapPipe;
|
|
25
|
-
//# sourceMappingURL=map.pipe.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"map.pipe.js","sourceRoot":"","sources":["../../../../src/core/common/pipes/map.pipe.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA6E;AAG7E,IAAa,OAAO,GAApB,MAAa,OAAO;IAClB,SAAS,CAAC,KAAU,EAAE,QAA0B;;QAC9C,IAAI,MAAM,GAAG,KAAK,CAAC;QAGnB,IAAI,MAAC,QAAQ,CAAC,QAAgB,0CAAE,GAAG,EAAE;YAEnC,MAAM,GAAI,QAAQ,CAAC,QAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAChD;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AAZY,OAAO;IADnB,IAAA,mBAAU,GAAE;GACA,OAAO,CAYnB;AAZY,0BAAO"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { PipeTransform, Injectable, ArgumentMetadata } from '@nestjs/common';
|
|
2
|
-
|
|
3
|
-
@Injectable()
|
|
4
|
-
export class MapPipe implements PipeTransform {
|
|
5
|
-
transform(value: any, metadata: ArgumentMetadata) {
|
|
6
|
-
let result = value;
|
|
7
|
-
|
|
8
|
-
// Check map function is available
|
|
9
|
-
if ((metadata.metatype as any)?.map) {
|
|
10
|
-
// Map object to correct type
|
|
11
|
-
result = (metadata.metatype as any).map(value);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
return result;
|
|
15
|
-
}
|
|
16
|
-
}
|