Update parse.ts

This commit is contained in:
Acid Chicken (硫酸鶏) 2019-05-12 22:20:31 +09:00 committed by GitHub
parent 2eedc91d74
commit 1d3a92979f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2,18 +2,14 @@ import { mfmLanguage } from './language';
import { MfmForest } from './prelude'; import { MfmForest } from './prelude';
import { normalize } from './normalize'; import { normalize } from './normalize';
export function parse(source: string | null): MfmForest | null { export function parse<T extends string | null>(source: T): T extends string ? MfmForest : null {
if (source == null || source == '') { return typeof source === 'string' ?
return null; normalize(mfmLanguage.root.tryParse(source)) :
} null as any;
return normalize(mfmLanguage.root.tryParse(source));
} }
export function parsePlain(source: string | null): MfmForest | null { export function parsePlain<T extends string | null>(source: T): T extends string ? MfmForest : null {
if (source == null || source == '') { return typeof source === 'string' ?
return null; normalize(mfmLanguage.plain.tryParse(source)) :
} null as any;
return normalize(mfmLanguage.plain.tryParse(source));
} }