mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +00:00 
			
		
		
		
	Refactor
This commit is contained in:
		
							parent
							
								
									ec4c6d48c1
								
							
						
					
					
						commit
						86e1ff6a6f
					
				
					 1 changed files with 44 additions and 41 deletions
				
			
		| 
						 | 
				
			
			@ -39,45 +39,6 @@ export function isValidBirthday(birthday: string): boolean {
 | 
			
		|||
	return typeof birthday == 'string' && /^([0-9]{4})\-([0-9]{2})-([0-9]{2})$/.test(birthday);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type ILocalAccount = {
 | 
			
		||||
	keypair: string;
 | 
			
		||||
	email: string;
 | 
			
		||||
	links: string[];
 | 
			
		||||
	password: string;
 | 
			
		||||
	token: string;
 | 
			
		||||
	twitter: {
 | 
			
		||||
		accessToken: string;
 | 
			
		||||
		accessTokenSecret: string;
 | 
			
		||||
		userId: string;
 | 
			
		||||
		screenName: string;
 | 
			
		||||
	};
 | 
			
		||||
	line: {
 | 
			
		||||
		userId: string;
 | 
			
		||||
	};
 | 
			
		||||
	profile: {
 | 
			
		||||
		location: string;
 | 
			
		||||
		birthday: string; // 'YYYY-MM-DD'
 | 
			
		||||
		tags: string[];
 | 
			
		||||
	};
 | 
			
		||||
	lastUsedAt: Date;
 | 
			
		||||
	isBot: boolean;
 | 
			
		||||
	isPro: boolean;
 | 
			
		||||
	twoFactorSecret: string;
 | 
			
		||||
	twoFactorEnabled: boolean;
 | 
			
		||||
	twoFactorTempSecret: string;
 | 
			
		||||
	clientSettings: any;
 | 
			
		||||
	settings: any;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
type IRemoteAccount = {
 | 
			
		||||
	inbox: string;
 | 
			
		||||
	uri: string;
 | 
			
		||||
	publicKey: {
 | 
			
		||||
		id: string;
 | 
			
		||||
		publicKeyPem: string;
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
type IUserBase = {
 | 
			
		||||
	_id: mongo.ObjectID;
 | 
			
		||||
	createdAt: Date;
 | 
			
		||||
| 
						 | 
				
			
			@ -102,8 +63,50 @@ type IUserBase = {
 | 
			
		|||
 | 
			
		||||
export type IUser = ILocalUser | IRemoteUser;
 | 
			
		||||
 | 
			
		||||
export interface ILocalUser extends IUserBase { host: null; account: ILocalAccount; }
 | 
			
		||||
export interface IRemoteUser extends IUserBase { host: string; account: IRemoteAccount; }
 | 
			
		||||
export interface ILocalUser extends IUserBase {
 | 
			
		||||
	host: null;
 | 
			
		||||
	account: {
 | 
			
		||||
		keypair: string;
 | 
			
		||||
		email: string;
 | 
			
		||||
		links: string[];
 | 
			
		||||
		password: string;
 | 
			
		||||
		token: string;
 | 
			
		||||
		twitter: {
 | 
			
		||||
			accessToken: string;
 | 
			
		||||
			accessTokenSecret: string;
 | 
			
		||||
			userId: string;
 | 
			
		||||
			screenName: string;
 | 
			
		||||
		};
 | 
			
		||||
		line: {
 | 
			
		||||
			userId: string;
 | 
			
		||||
		};
 | 
			
		||||
		profile: {
 | 
			
		||||
			location: string;
 | 
			
		||||
			birthday: string; // 'YYYY-MM-DD'
 | 
			
		||||
			tags: string[];
 | 
			
		||||
		};
 | 
			
		||||
		lastUsedAt: Date;
 | 
			
		||||
		isBot: boolean;
 | 
			
		||||
		isPro: boolean;
 | 
			
		||||
		twoFactorSecret: string;
 | 
			
		||||
		twoFactorEnabled: boolean;
 | 
			
		||||
		twoFactorTempSecret: string;
 | 
			
		||||
		clientSettings: any;
 | 
			
		||||
		settings: any;
 | 
			
		||||
	};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface IRemoteUser extends IUserBase {
 | 
			
		||||
	host: string;
 | 
			
		||||
	account: {
 | 
			
		||||
		inbox: string;
 | 
			
		||||
		uri: string;
 | 
			
		||||
		publicKey: {
 | 
			
		||||
			id: string;
 | 
			
		||||
			publicKeyPem: string;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const isLocalUser = (user: any): user is ILocalUser =>
 | 
			
		||||
	user.host === null;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue