MCPcopy Create free account
hub / github.com/nodejs/node / generateAccessorFromProperty

Function generateAccessorFromProperty

test/fixtures/snapshot/typescript.js:158062–158103  ·  view source on GitHub ↗
(file, program, start, end, context, _actionName)

Source from the content-addressed store, hash-verified

158060 var codefix;
158061 (function (codefix) {
158062 function generateAccessorFromProperty(file, program, start, end, context, _actionName) {
158063 var fieldInfo = getAccessorConvertiblePropertyAtPosition(file, program, start, end);
158064 if (!fieldInfo || ts.refactor.isRefactorErrorInfo(fieldInfo))
158065 return undefined;
158066 var changeTracker = ts.textChanges.ChangeTracker.fromContext(context);
158067 var isStatic = fieldInfo.isStatic, isReadonly = fieldInfo.isReadonly, fieldName = fieldInfo.fieldName, accessorName = fieldInfo.accessorName, originalName = fieldInfo.originalName, type = fieldInfo.type, container = fieldInfo.container, declaration = fieldInfo.declaration;
158068 ts.suppressLeadingAndTrailingTrivia(fieldName);
158069 ts.suppressLeadingAndTrailingTrivia(accessorName);
158070 ts.suppressLeadingAndTrailingTrivia(declaration);
158071 ts.suppressLeadingAndTrailingTrivia(container);
158072 var accessorModifiers;
158073 var fieldModifiers;
158074 if (ts.isClassLike(container)) {
158075 var modifierFlags = ts.getEffectiveModifierFlags(declaration);
158076 if (ts.isSourceFileJS(file)) {
158077 var modifiers = ts.createModifiers(modifierFlags);
158078 accessorModifiers = modifiers;
158079 fieldModifiers = modifiers;
158080 }
158081 else {
158082 accessorModifiers = ts.createModifiers(prepareModifierFlagsForAccessor(modifierFlags));
158083 fieldModifiers = ts.createModifiers(prepareModifierFlagsForField(modifierFlags));
158084 }
158085 }
158086 updateFieldDeclaration(changeTracker, file, declaration, type, fieldName, fieldModifiers);
158087 var getAccessor = generateGetAccessor(fieldName, accessorName, type, accessorModifiers, isStatic, container);
158088 ts.suppressLeadingAndTrailingTrivia(getAccessor);
158089 insertAccessor(changeTracker, file, getAccessor, declaration, container);
158090 if (isReadonly) {
158091 // readonly modifier only existed in classLikeDeclaration
158092 var constructor = ts.getFirstConstructorWithBody(container);
158093 if (constructor) {
158094 updateReadonlyPropertyInitializerStatementConstructor(changeTracker, file, constructor, fieldName.text, originalName);
158095 }
158096 }
158097 else {
158098 var setAccessor = generateSetAccessor(fieldName, accessorName, type, accessorModifiers, isStatic, container);
158099 ts.suppressLeadingAndTrailingTrivia(setAccessor);
158100 insertAccessor(changeTracker, file, setAccessor, declaration, container);
158101 }
158102 return changeTracker.getChanges();
158103 }
158104 codefix.generateAccessorFromProperty = generateAccessorFromProperty;
158105 function isConvertibleName(name) {
158106 return ts.isIdentifier(name) || ts.isStringLiteral(name);

Callers

nothing calls this directly

Tested by

no test coverage detected