UNPKG

variant

Version:

Variant types (a.k.a. Discriminated Unions) in TypeScript

37 lines 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WaterAnimal = exports.AmphibiousAnimal = exports.cerberus2 = exports.cerberus = exports.Animal2 = exports.TaggedAnimal = exports.Animal = void 0; const __1 = require(".."); const variant_1 = require("../variant"); exports.Animal = __1.variantList([ __1.variant('dog', __1.fields()), __1.variant('cat', __1.fields()), __1.variant('snake', (name, patternName) => ({ name, pattern: patternName !== null && patternName !== void 0 ? patternName : 'striped', })), ]); const tag = variant_1.variantFactory('__typename'); exports.TaggedAnimal = __1.variantList([ tag('dog', __1.fields()), tag('cat', __1.fields()), tag('snake', (name, patternName) => ({ name, pattern: patternName !== null && patternName !== void 0 ? patternName : 'striped', })), ]); exports.Animal2 = variant_1.variantModule({ dog: __1.fields(), cat: __1.fields(), snake: (name, pattern = 'striped') => ({ name, pattern }), bird: {}, }); exports.cerberus = exports.Animal.dog({ name: 'Cerberus' }); exports.cerberus2 = exports.Animal2.dog({ name: 'Cerberus' }); exports.AmphibiousAnimal = __1.variantList([ __1.variant('frog', __1.fields()), ]); exports.WaterAnimal = __1.variantList([ __1.variant('goldfish', __1.fields()), ]); //# sourceMappingURL=animal.js.map