mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	As part of preparation for ESM and node/TSC updates, this PR will make Unleash build with strictNullChecks set to true, since that's what's in our tsconfig file. Hence, this PR also removes the `--strictNullChecks false` flag in our compile tasks in package.json. TL;DR - Clean up your code rather than turning off compiler security features :)
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { SYSTEM_USER, SYSTEM_USER_AUDIT } from '../../lib/types';
 | |
| import type {
 | |
|     IApiRequest,
 | |
|     IApiUser,
 | |
|     IAuditUser,
 | |
|     IAuthRequest,
 | |
|     IUser,
 | |
| } from '../server-impl';
 | |
| 
 | |
| export function extractUsernameFromUser(user: IUser | IApiUser): string {
 | |
|     return (
 | |
|         (user as IUser)?.email || user?.username || SYSTEM_USER_AUDIT.username
 | |
|     );
 | |
| }
 | |
| 
 | |
| export function extractUsername(req: IAuthRequest | IApiRequest): string {
 | |
|     return extractUsernameFromUser(req.user);
 | |
| }
 | |
| 
 | |
| export const extractUserIdFromUser = (user: IUser | IApiUser) =>
 | |
|     (user as IUser)?.id ||
 | |
|     (user as IApiUser)?.internalAdminTokenUserId ||
 | |
|     SYSTEM_USER.id;
 | |
| 
 | |
| export const extractUserId = (req: IAuthRequest | IApiRequest) =>
 | |
|     extractUserIdFromUser(req.user);
 | |
| 
 | |
| export const extractUserInfo = (req: IAuthRequest | IApiRequest) => ({
 | |
|     id: extractUserId(req),
 | |
|     username: extractUsername(req),
 | |
| });
 | |
| 
 | |
| export const extractAuditInfoFromUser = (
 | |
|     user: IUser | IApiUser,
 | |
|     ip: string = '127.0.0.1',
 | |
| ): IAuditUser => ({
 | |
|     id: extractUserIdFromUser(user),
 | |
|     username: extractUsernameFromUser(user),
 | |
|     ip,
 | |
| });
 | |
| export const extractAuditInfo = (
 | |
|     req: IAuthRequest | IApiRequest,
 | |
| ): IAuditUser => ({
 | |
|     id: extractUserId(req),
 | |
|     username: extractUsername(req),
 | |
|     ip: req.ip,
 | |
| });
 |