flow-immutable-models
Version:
Generates model classes from Flow types using Immutable.js
16 lines (14 loc) • 890 B
JavaScript
;
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);
}