(context, checker, importAdder, quotePreference, type)
| 155039 | changes.replaceNode(context.sourceFile, info.parentDeclaration, ts.factory.createObjectLiteralExpression(__spreadArray(__spreadArray([], info.parentDeclaration.properties, true), props, true), /*multiLine*/ true), options); |
| 155040 | } |
| 155041 | function tryGetValueFromType(context, checker, importAdder, quotePreference, type) { |
| 155042 | if (type.flags & 3 /* TypeFlags.AnyOrUnknown */) { |
| 155043 | return createUndefined(); |
| 155044 | } |
| 155045 | if (type.flags & (4 /* TypeFlags.String */ | 134217728 /* TypeFlags.TemplateLiteral */)) { |
| 155046 | return ts.factory.createStringLiteral("", /* isSingleQuote */ quotePreference === 0 /* QuotePreference.Single */); |
| 155047 | } |
| 155048 | if (type.flags & 8 /* TypeFlags.Number */) { |
| 155049 | return ts.factory.createNumericLiteral(0); |
| 155050 | } |
| 155051 | if (type.flags & 64 /* TypeFlags.BigInt */) { |
| 155052 | return ts.factory.createBigIntLiteral("0n"); |
| 155053 | } |
| 155054 | if (type.flags & 16 /* TypeFlags.Boolean */) { |
| 155055 | return ts.factory.createFalse(); |
| 155056 | } |
| 155057 | if (type.flags & 1056 /* TypeFlags.EnumLike */) { |
| 155058 | var enumMember = type.symbol.exports ? ts.firstOrUndefined(ts.arrayFrom(type.symbol.exports.values())) : type.symbol; |
| 155059 | var name = checker.symbolToExpression(type.symbol.parent ? type.symbol.parent : type.symbol, 111551 /* SymbolFlags.Value */, /*enclosingDeclaration*/ undefined, /*flags*/ undefined); |
| 155060 | return enumMember === undefined || name === undefined ? ts.factory.createNumericLiteral(0) : ts.factory.createPropertyAccessExpression(name, checker.symbolToString(enumMember)); |
| 155061 | } |
| 155062 | if (type.flags & 256 /* TypeFlags.NumberLiteral */) { |
| 155063 | return ts.factory.createNumericLiteral(type.value); |
| 155064 | } |
| 155065 | if (type.flags & 2048 /* TypeFlags.BigIntLiteral */) { |
| 155066 | return ts.factory.createBigIntLiteral(type.value); |
| 155067 | } |
| 155068 | if (type.flags & 128 /* TypeFlags.StringLiteral */) { |
| 155069 | return ts.factory.createStringLiteral(type.value, /* isSingleQuote */ quotePreference === 0 /* QuotePreference.Single */); |
| 155070 | } |
| 155071 | if (type.flags & 512 /* TypeFlags.BooleanLiteral */) { |
| 155072 | return (type === checker.getFalseType() || type === checker.getFalseType(/*fresh*/ true)) ? ts.factory.createFalse() : ts.factory.createTrue(); |
| 155073 | } |
| 155074 | if (type.flags & 65536 /* TypeFlags.Null */) { |
| 155075 | return ts.factory.createNull(); |
| 155076 | } |
| 155077 | if (type.flags & 1048576 /* TypeFlags.Union */) { |
| 155078 | var expression = ts.firstDefined(type.types, function (t) { return tryGetValueFromType(context, checker, importAdder, quotePreference, t); }); |
| 155079 | return expression !== null && expression !== void 0 ? expression : createUndefined(); |
| 155080 | } |
| 155081 | if (checker.isArrayLikeType(type)) { |
| 155082 | return ts.factory.createArrayLiteralExpression(); |
| 155083 | } |
| 155084 | if (isObjectLiteralType(type)) { |
| 155085 | var props = ts.map(checker.getPropertiesOfType(type), function (prop) { |
| 155086 | var initializer = prop.valueDeclaration ? tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeAtLocation(prop.valueDeclaration)) : createUndefined(); |
| 155087 | return ts.factory.createPropertyAssignment(prop.name, initializer); |
| 155088 | }); |
| 155089 | return ts.factory.createObjectLiteralExpression(props, /*multiLine*/ true); |
| 155090 | } |
| 155091 | if (ts.getObjectFlags(type) & 16 /* ObjectFlags.Anonymous */) { |
| 155092 | var decl = ts.find(type.symbol.declarations || ts.emptyArray, ts.or(ts.isFunctionTypeNode, ts.isMethodSignature, ts.isMethodDeclaration)); |
| 155093 | if (decl === undefined) |
| 155094 | return createUndefined(); |
| 155095 | var signature = checker.getSignaturesOfType(type, 0 /* SignatureKind.Call */); |
| 155096 | if (signature === undefined) |
| 155097 | return createUndefined(); |
| 155098 | var func = codefix.createSignatureDeclarationFromSignature(213 /* SyntaxKind.FunctionExpression */, context, quotePreference, signature[0], codefix.createStubbedBody(ts.Diagnostics.Function_not_implemented.message, quotePreference), /*name*/ undefined, /*modifiers*/ undefined, /*optional*/ undefined, /*enclosingDeclaration*/ undefined, importAdder); |
no test coverage detected