UNPKG

flow-immutable-models

Version:

Generates model classes from Flow types using Immutable.js

16 lines (14 loc) 890 B
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = fromImmutable; function fromImmutable(j, className) { var immutableStateIdentifier = j.identifier('immutableState'); var fromImmutableIdentifier = j.identifier('fromImmutable'); var mapTypeAnnotation = j.typeAnnotation(j.genericTypeAnnotation(j.identifier('Immutable.Map'), j.typeParameterInstantiation([j.stringTypeAnnotation(), j.anyTypeAnnotation()]))); var param = Object.assign({}, immutableStateIdentifier, { typeAnnotation: mapTypeAnnotation }); var func = j.functionExpression(null, [param], j.blockStatement([j.returnStatement(j.newExpression(j.identifier(className), [immutableStateIdentifier]))])); func.returnType = j.typeAnnotation(j.genericTypeAnnotation(j.identifier(className), null)); return j.methodDefinition('method', fromImmutableIdentifier, func, true); }