1
+ /* eslint-disable max-lines */
1
2
import type { BindMfa , CreateUser , MfaVerification , Scope , User } from '@logto/schemas' ;
2
3
import { MfaFactor , RoleType , Users , UsersPasswordEncryptionMethod } from '@logto/schemas' ;
3
4
import { generateStandardShortId , generateStandardId } from '@logto/shared' ;
@@ -122,15 +123,14 @@ export const createUserLibrary = (queries: Queries) => {
122
123
set : Partial < OmitAutoSetFields < CreateUser > > ,
123
124
jsonbMode ?: 'replace' | 'merge'
124
125
) => {
126
+ const { primaryPhone, ...rest } = set ;
125
127
const validPhoneNumber = conditional (
126
- 'primaryPhone' in set &&
127
- typeof set . primaryPhone === 'string' &&
128
- getValidPhoneNumber ( set . primaryPhone )
128
+ typeof primaryPhone === 'string' && getValidPhoneNumber ( primaryPhone )
129
129
) ;
130
130
131
131
return updateUserByIdQuery (
132
132
id ,
133
- { ...set , ...conditional ( validPhoneNumber && { primaryPhone : validPhoneNumber } ) } ,
133
+ { ...rest , ...conditional ( validPhoneNumber && { primaryPhone : validPhoneNumber } ) } ,
134
134
jsonbMode
135
135
) ;
136
136
} ;
@@ -147,10 +147,9 @@ export const createUserLibrary = (queries: Queries) => {
147
147
148
148
assertThat ( parameterRoles . length === roleNames . length , 'role.default_role_missing' ) ;
149
149
150
+ const { primaryPhone, ...rest } = data ;
150
151
const validPhoneNumber = conditional (
151
- 'primaryPhone' in data &&
152
- typeof data . primaryPhone === 'string' &&
153
- getValidPhoneNumber ( data . primaryPhone )
152
+ typeof primaryPhone === 'string' && getValidPhoneNumber ( primaryPhone )
154
153
) ;
155
154
156
155
return pool . transaction ( async ( connection ) => {
@@ -159,7 +158,7 @@ export const createUserLibrary = (queries: Queries) => {
159
158
} ) ;
160
159
161
160
const user = await insertUserQuery ( {
162
- ...data ,
161
+ ...rest ,
163
162
...conditional ( validPhoneNumber && { primaryPhone : validPhoneNumber } ) ,
164
163
} ) ;
165
164
const roles = deduplicateByKey ( [ ...parameterRoles , ...defaultRoles ] , 'id' ) ;
@@ -173,7 +172,7 @@ export const createUserLibrary = (queries: Queries) => {
173
172
174
173
const provisionOrganizations = async ( ) : Promise < readonly string [ ] > => {
175
174
// Just-in-time organization provisioning
176
- const userEmailDomain = data . primaryEmail ?. split ( '@' ) [ 1 ] ;
175
+ const userEmailDomain = rest . primaryEmail ?. split ( '@' ) [ 1 ] ;
177
176
// TODO: Remove this check when launching
178
177
if ( EnvSet . values . isDevFeaturesEnabled && userEmailDomain ) {
179
178
const organizationQueries = new OrganizationQueries ( connection ) ;
@@ -368,3 +367,4 @@ export const createUserLibrary = (queries: Queries) => {
368
367
updateUserById,
369
368
} ;
370
369
} ;
370
+ /* eslint-enable max-lines */
0 commit comments