Add TaxReturn.maybeGetForm<T>()
authorRobert Sesek <rsesek@bluestatic.org>
Fri, 21 Feb 2020 15:51:12 +0000 (10:51 -0500)
committerRobert Sesek <rsesek@bluestatic.org>
Fri, 21 Feb 2020 15:51:12 +0000 (10:51 -0500)
src/TaxReturn.ts

index c7f1003a303dccbc76867e06f1ec108ddf17661e..a8e64fb47de6a234b0abd2f700b058fbe7b98130 100644 (file)
@@ -47,10 +47,10 @@ export default class TaxReturn {
     this._forms.push(form);
   }
 
-  getForm<T extends Form>(name: string): T {
+  maybeGetForm<T extends Form>(name: string): T | null {
     const forms = this.getForms<T>(name);
     if (forms.length == 0) {
-      throw new NotFoundError(`No form named ${name}`);
+      return null;
     }
     if (forms.length > 1) {
       throw new InconsistencyError(`More than 1 form named ${name}`);
@@ -58,6 +58,13 @@ export default class TaxReturn {
     return forms[0];
   }
 
+  getForm<T extends Form>(name: string): T {
+    const form = this.maybeGetForm<T>(name);
+    if (!form)
+      throw new NotFoundError(`No form named ${name}`);
+    return form;
+  }
+
   getForms<T extends Form>(name: string): T[] {
     return this._forms.filter(f => f.name == name) as T[];
   }