diff --git a/package.json b/package.json index 8d7b64d..219df32 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "Transcend Inc.", "name": "@transcend-io/type-utils", "description": "Small package containing useful typescript utilities.", - "version": "1.8.3", + "version": "1.8.4", "homepage": "https://github.com/transcend-io/type-utils", "repository": { "type": "git", diff --git a/src/codecTools/createDefaultCodec.ts b/src/codecTools/createDefaultCodec.ts index 051dba6..e68f0ee 100644 --- a/src/codecTools/createDefaultCodec.ts +++ b/src/codecTools/createDefaultCodec.ts @@ -117,7 +117,7 @@ export const createDefaultCodec = ( } // The default of an object type is an empty object - if (codec instanceof t.ObjectType) { + if (codec instanceof t.ObjectType || codec instanceof t.UnknownType) { return {} as t.TypeOf; } diff --git a/src/tests/createDefaultCodec.test.ts b/src/tests/createDefaultCodec.test.ts index 18a8e88..f4cea11 100644 --- a/src/tests/createDefaultCodec.test.ts +++ b/src/tests/createDefaultCodec.test.ts @@ -44,6 +44,12 @@ describe('buildDefaultCodec', () => { expect(defaultCodec).to.deep.equal({}); }); + it('should correctly build a default codec for an UnknownType', () => { + const codec = t.unknown; + const defaultCodec = createDefaultCodec(codec); + expect(defaultCodec).to.deep.equal({}); + }); + it('should correctly build a default codec for a union with null', () => { const result = createDefaultCodec(t.union([t.string, t.null])); // should default to null if the union contains null