From 9513f9832375c3962e64150d422a2acf82b34104 Mon Sep 17 00:00:00 2001 From: Alex Malkevich Date: Thu, 7 Feb 2019 18:40:54 +0100 Subject: [PATCH] fix(generator): safely access reserved exports from `io-ts` Because of the bug in rollup https://github.com/rollup/rollup/issues/2680 re #5 --- projects/gen-io-ts/src/lib/generator.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/projects/gen-io-ts/src/lib/generator.ts b/projects/gen-io-ts/src/lib/generator.ts index 245e7ac..c4088a5 100644 --- a/projects/gen-io-ts/src/lib/generator.ts +++ b/projects/gen-io-ts/src/lib/generator.ts @@ -4,6 +4,16 @@ import { ResolvedTypeMetadata, resolveMetadataOf } from './metadata'; import { Primitive, Type } from './types'; import { isBuiltinType, isObject, isPrimitive } from './util'; +/** + * Required to safely access from `io-ts` reserved exports like `undefined` + * because of the bug in rollup + * @see https://github.com/rollup/rollup/issues/2680 + * @internal + */ +function getIoTs(prop: K) { + return t[prop]; +} + /** * Generate `io-ts` codec for `type` * @@ -26,7 +36,7 @@ function genTypeFor(obj: any, name?: string): t.Type { } if (metadata && !metadata.isRequired) { - codec = t.union([codec, t.null, t.undefined]); + codec = t.union([codec, getIoTs('null'), getIoTs('undefined')]); } return codec;