UNPKG

flow-immutable-models

Version:

Generates model classes from Flow types using Immutable.js

27 lines (21 loc) 1.1 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = isModelTypeReference; var _withoutModelTypeSuffix = require('./withoutModelTypeSuffix'); var _flowTypes = require('./flowTypes'); function isArrayOfModelType(typeAlias) { return (0, _flowTypes.isArray)(typeAlias) && Boolean(typeAlias.typeParameters) && typeAlias.typeParameters.params[0].type === 'GenericTypeAnnotation' && (0, _withoutModelTypeSuffix.endsWithModelType)(typeAlias.typeParameters.params[0].id.name); } function isObjectMapOfModelType(typeAlias) { if ((0, _flowTypes.isObjectMap)(typeAlias)) { var propIndexer = typeAlias.indexers[0]; return (0, _withoutModelTypeSuffix.endsWithModelType)(propIndexer && propIndexer.value.id && propIndexer.value.id.name); } return false; } function isModelTypeReference(typeAlias) { var alias = typeAlias.type === 'NullableTypeAnnotation' ? typeAlias.typeAnnotation : typeAlias; return (0, _withoutModelTypeSuffix.endsWithModelType)(alias.id && alias.id.name) || isArrayOfModelType(alias) || isObjectMapOfModelType(alias); }