MCPcopy Create free account
hub / github.com/Effect-TS/effect / serializeClassMember

Function serializeClassMember

packages/tools/api-diff/src/Snapshot.ts:387–422  ·  view source on GitHub ↗
(
  node: ts.ClassElement,
  context: SerializationContext
)

Source from the content-addressed store, hash-verified

385}
386
387const serializeClassMember = (
388 node: ts.ClassElement,
389 context: SerializationContext
390): DeclarationModel | undefined => {
391 const visibility = modifiers(node)
392 if (visibility?.includes("private")) {
393 return undefined
394 }
395 if (ts.isPropertyDeclaration(node)) {
396 return {
397 kind: "property",
398 name: nameText(node.name),
399 type: node.type === undefined ? { kind: "unknown" } : serializeType(node.type, context),
400 modifiers: visibility
401 }
402 }
403 if (ts.isMethodDeclaration(node)) {
404 return serializeSignature(node, context, "method", nameText(node.name))
405 }
406 if (ts.isConstructorDeclaration(node)) {
407 return serializeSignature(node, context, "constructor", "constructor")
408 }
409 if (ts.isGetAccessorDeclaration(node)) {
410 return serializeSignature(node, context, "getter", nameText(node.name))
411 }
412 if (ts.isSetAccessorDeclaration(node)) {
413 return serializeSignature(node, context, "setter", nameText(node.name))
414 }
415 if (ts.isIndexSignatureDeclaration(node)) {
416 return serializeSignature(node, context, "index-signature")
417 }
418 if (ts.isClassStaticBlockDeclaration(node) || ts.isSemicolonClassElement(node)) {
419 return undefined
420 }
421 throw new Error(`Unsupported public class member: ${ts.SyntaxKind[node.kind]}`)
422}
423
424const serializeHeritage = (
425 clauses: ts.NodeArray<ts.HeritageClause> | undefined,

Callers 1

serializeDeclarationFunction · 0.85

Calls 4

modifiersFunction · 0.85
nameTextFunction · 0.85
serializeTypeFunction · 0.85
serializeSignatureFunction · 0.85

Tested by

no test coverage detected