Better error handling
This commit is contained in:
		
							parent
							
								
									64e10e9619
								
							
						
					
					
						commit
						654daff7ce
					
				|  | @ -242,7 +242,13 @@ export async function resolveNote(value: string | IObject, resolver?: Resolver): | |||
| 	// リモートサーバーからフェッチしてきて登録
 | ||||
| 	// ここでuriの代わりに添付されてきたNote Objectが指定されていると、サーバーフェッチを経ずにノートが生成されるが
 | ||||
| 	// 添付されてきたNote Objectは偽装されている可能性があるため、常にuriを指定してサーバーフェッチを行う。
 | ||||
| 	return await createNote(uri, resolver); | ||||
| 	return await createNote(uri, resolver).catch(e => { | ||||
| 		if (e.name === 'duplicated') { | ||||
| 			return fetchNote(uri); | ||||
| 		} else { | ||||
| 			throw e; | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
| 
 | ||||
| export async function extractEmojis(tags: ITag[], host: string) { | ||||
|  |  | |||
|  | @ -193,10 +193,6 @@ export default async (user: User, data: Option, silent = false) => new Promise<N | |||
| 
 | ||||
| 	res(note); | ||||
| 
 | ||||
| 	if (note == null) { | ||||
| 		return; | ||||
| 	} | ||||
| 
 | ||||
| 	// 統計を更新
 | ||||
| 	notesChart.update(note, true); | ||||
| 	perUserNotesChart.update(user, note, true); | ||||
|  | @ -424,7 +420,9 @@ async function insertNote(user: User, data: Option, tags: string[], emojis: stri | |||
| 	} catch (e) { | ||||
| 		// duplicate key error
 | ||||
| 		if (isDuplicateKeyValueError(e)) { | ||||
| 			return null; | ||||
| 			const err = new Error('Duplicated note'); | ||||
| 			err.name = 'duplicated'; | ||||
| 			throw err; | ||||
| 		} | ||||
| 
 | ||||
| 		console.error(e); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue