function convertModifier()

in lib/json/node.ts [35:65]


function convertModifier(modifier: ts.Modifier): Modifier {
  switch (modifier.kind) {
    case ts.SyntaxKind.AbstractKeyword:
      return new Modifier(modifier, ConvertedSyntaxKind.AbstractModifier);
    case ts.SyntaxKind.AsyncKeyword:
      return new Modifier(modifier, ConvertedSyntaxKind.AsyncModifier);
    case ts.SyntaxKind.ConstKeyword:
      return new Modifier(modifier, ConvertedSyntaxKind.ConstModifier);
    case ts.SyntaxKind.ExportKeyword:
      return new Modifier(modifier, ConvertedSyntaxKind.ExportModifier);
    case ts.SyntaxKind.PublicKeyword:
      return new Modifier(modifier, ConvertedSyntaxKind.PublicModifier);
    case ts.SyntaxKind.PrivateKeyword:
      return new Modifier(modifier, ConvertedSyntaxKind.PrivateModifier);
    case ts.SyntaxKind.ProtectedKeyword:
      return new Modifier(modifier, ConvertedSyntaxKind.ProtectedModifier);
    case ts.SyntaxKind.ReadonlyKeyword:
      return new Modifier(modifier, ConvertedSyntaxKind.ReadonlyModifier);
    case ts.SyntaxKind.StaticKeyword:
      return new Modifier(modifier, ConvertedSyntaxKind.StaticModifier);
    case ts.SyntaxKind.DefaultKeyword:
      return new Modifier(modifier, ConvertedSyntaxKind.DefaultModifier);
    case ts.SyntaxKind.DeclareKeyword:
      // no-op, this modifier doesn't get used by the emitter
      return undefined;
    default:
      const error =
          new Error(`Unexpected Modifier kind: ${ts.SyntaxKind[(modifier as ts.Node).kind]}`);
      throw error;
  }
}