1
0
Fork 0

fix: improve error handling for include

This commit is contained in:
Sean Sube 2022-02-06 23:45:42 +00:00
parent 2b600abd08
commit f4c5d4e28f
1 changed files with 15 additions and 3 deletions

View File

@ -26,6 +26,10 @@ export interface IncludeResult {
setSchema: (schema: Schema) => void; setSchema: (schema: Schema) => void;
} }
const ERROR_INCLUDE_EXIST = 'included file does not exist';
const ERROR_INCLUDE_PARSE = 'error loading included file';
/** /**
* Instantiate an include type with a copy of the provided options, * Instantiate an include type with a copy of the provided options,
* returning the include type and its schema setter. * returning the include type and its schema setter.
@ -48,10 +52,14 @@ export function createInclude(options: Readonly<IncludeOptions>): IncludeResult
if (options.exists(canonical)) { if (options.exists(canonical)) {
return true; return true;
} else { } else {
throw new NotFoundError('included file does not exist'); throw new NotFoundError(ERROR_INCLUDE_EXIST);
} }
} catch (err) { } catch (err) {
throw new NotFoundError('included file does not exist', err); if (err instanceof Error) {
throw new NotFoundError(ERROR_INCLUDE_EXIST, err);
} else {
throw new NotFoundError(ERROR_INCLUDE_EXIST);
}
} }
}, },
construct(path: string): unknown { construct(path: string): unknown {
@ -63,7 +71,11 @@ export function createInclude(options: Readonly<IncludeOptions>): IncludeResult
schema: mutableOptions.schema, schema: mutableOptions.schema,
}); });
} catch (err) { } catch (err) {
throw new InvalidArgumentError('error including file', err); if (err instanceof Error) {
throw new InvalidArgumentError(ERROR_INCLUDE_PARSE, err);
} else {
throw new InvalidArgumentError(ERROR_INCLUDE_PARSE);
}
} }
}, },
}); });