MCPcopy
hub / github.com/prisma/prisma / Method

Class Method

packages/ts-builders/src/Method.ts:9–56  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7import { Writer } from './Writer'
8
9export class Method implements BasicBuilder {
10 private docComment?: DocComment
11 private returnType: TypeBuilder = voidType
12 private parameters: Parameter[] = []
13 private genericParameters: GenericParameter[] = []
14 constructor(private name: string) {}
15
16 setDocComment(docComment: DocComment): this {
17 this.docComment = docComment
18 return this
19 }
20
21 setReturnType(returnType: TypeBuilder): this {
22 this.returnType = returnType
23 return this
24 }
25
26 addParameter(param: Parameter): this {
27 this.parameters.push(param)
28 return this
29 }
30
31 addGenericParameter(param: GenericParameter): this {
32 this.genericParameters.push(param)
33 return this
34 }
35
36 write(writer: Writer): void {
37 if (this.docComment) {
38 writer.write(this.docComment)
39 }
40
41 writer.write(this.name)
42 if (this.genericParameters.length > 0) {
43 writer.write('<').writeJoined(', ', this.genericParameters).write('>')
44 }
45
46 writer.write('(')
47 if (this.parameters.length > 0) {
48 writer.writeJoined(', ', this.parameters)
49 }
50 writer.write(')')
51
52 if (this.name !== 'constructor') {
53 writer.write(': ').write(this.returnType)
54 }
55 }
56}
57
58export function method(name: string): Method {
59 return new Method(name)

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected