apollo-conn-gen 0.0.14 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,15 +29,15 @@ export async function promptForSelection(gen, opts, types) {
29
29
  }
30
30
  else {
31
31
  /*
32
- // TODO: re-think this
33
- else if (type instanceof Post) {
34
- if (!type.visited) type.visit(gen.context!)
35
- result = gen.expand(type);
36
-
37
- // we need to exclude the body from the selection - not sure we need to generalise this..
38
- result = _.filter(result, (r) => r !== type.body);
39
- console.log(result)
40
- }*/
32
+ // TODO: re-think this
33
+ else if (type instanceof Post) {
34
+ if (!type.visited) type.visit(gen.context!)
35
+ result = gen.expand(type);
36
+
37
+ // we need to exclude the body from the selection - not sure we need to generalise this..
38
+ result = _.filter(result, (r) => r !== type.body);
39
+ console.log(result)
40
+ }*/
41
41
  // top level paths
42
42
  result = gen.expand(type);
43
43
  if (result.length === 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/oas-helpers/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAQ,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAI1D,8DAA8D;AAC9D,MAAM,UAAU,qBAAqB,CAAC,IAAS,EAAE,GAAW;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IAC1E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,OAAO;AACT,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAW,EAAE,IAAS,EAAE,KAAc;IAC7E,SAAS,UAAU,CAAC,IAAY;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAe,CAAC;QAEpB,IAAI,IAAI,YAAY,QAAQ,IAAI,IAAI,YAAY,KAAK,EAAE,CAAC;YACtD,oCAAoC;YACnC,IAAyB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAE3C,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACR;;;;;;;;;eASG;YACD,kBAAkB;YAClB,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,wEAAwE;gBACxE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAExB,IAAI,CAAE,KAAc,CAAC,OAAO,EAAE,CAAC;oBAC7B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAQ,CAAC,CAAC;gBAC5B,CAAC;gBAED,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;oBACzB,MAAM,GAAG,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,WAAW,CAAC;QACjB,OAAO,EAAE,GAAG,CAAC,OAAQ;QACrB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,6DAA6D;QACtE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACrC,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;AACL,CAAC","sourcesContent":["/// internal functions\nimport fs from 'fs';\nimport { Composed, Post } from '../../oas/nodes/internal.js';\nimport { Ref } from '../../oas/nodes/internal.js';\nimport { Type } from '../../oas/nodes/internal.js';\nimport { Union } from '../../oas/nodes/internal.js';\nimport { OasGen } from '../../oas/oasGen.js';\nimport { typesPrompt } from '../../oas/prompts/prompt.js';\nimport { IType } from '../../oas/nodes/internal.js';\nimport _ from 'lodash';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function generateFromSelection(opts: any, gen: OasGen) {\n const selections = JSON.parse(fs.readFileSync(opts.loadSelections, { encoding: 'utf-8' }));\n if (!Array.isArray(selections)) {\n console.error('Invalid selections file');\n return;\n }\n\n console.info('--------------- Apollo Connector schema -----------------');\n console.info(gen.generateSchema(selections));\n return;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function promptForSelection(gen: OasGen, opts: any, types: IType[]) {\n function expandType(type?: IType) {\n if (!type) {\n return types;\n }\n\n let result: IType[];\n\n if (type instanceof Composed || type instanceof Union) {\n // make sure we gather all the props\n (type as Composed | Union).consolidate([]);\n\n result = Array.from(type.props.values());\n } else {\n /*\n // TODO: re-think this\n else if (type instanceof Post) {\n if (!type.visited) type.visit(gen.context!)\n result = gen.expand(type);\n\n // we need to exclude the body from the selection - not sure we need to generalise this..\n result = _.filter(result, (r) => r !== type.body);\n console.log(result)\n }*/\n // top level paths\n result = gen.expand(type);\n\n if (result.length === 1) {\n // we are checking for a ref so we can go straight to where its pointing\n const child = result[0];\n\n if (!(child as Type).visited) {\n child.visit(gen.context!);\n }\n\n if (child instanceof Ref) {\n result = [child.refType!];\n }\n }\n }\n\n return result;\n }\n\n return typesPrompt({\n context: gen.context!,\n expandFn: expandType,\n message: 'Navigate spec and select the fields to use in the connector',\n pageSize: parseInt(opts.pageSize, 10),\n types: types,\n });\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/oas-helpers/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAQ,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAI1D,8DAA8D;AAC9D,MAAM,UAAU,qBAAqB,CAAC,IAAS,EAAE,GAAW;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IAC1E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,OAAO;AACT,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAW,EAAE,IAAS,EAAE,KAAc;IAC7E,SAAS,UAAU,CAAC,IAAY;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAe,CAAC;QAEpB,IAAI,IAAI,YAAY,QAAQ,IAAI,IAAI,YAAY,KAAK,EAAE,CAAC;YACtD,oCAAoC;YACnC,IAAyB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAE3C,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN;;;;;;;;;aASC;YACD,kBAAkB;YAClB,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,wEAAwE;gBACxE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAExB,IAAI,CAAE,KAAc,CAAC,OAAO,EAAE,CAAC;oBAC7B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAQ,CAAC,CAAC;gBAC5B,CAAC;gBAED,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;oBACzB,MAAM,GAAG,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,WAAW,CAAC;QACjB,OAAO,EAAE,GAAG,CAAC,OAAQ;QACrB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,6DAA6D;QACtE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACrC,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;AACL,CAAC","sourcesContent":["/// internal functions\nimport fs from 'fs';\nimport { Composed, Post } from '../../oas/nodes/internal.js';\nimport { Ref } from '../../oas/nodes/internal.js';\nimport { Type } from '../../oas/nodes/internal.js';\nimport { Union } from '../../oas/nodes/internal.js';\nimport { OasGen } from '../../oas/oasGen.js';\nimport { typesPrompt } from '../../oas/prompts/prompt.js';\nimport { IType } from '../../oas/nodes/internal.js';\nimport _ from 'lodash';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function generateFromSelection(opts: any, gen: OasGen) {\n const selections = JSON.parse(fs.readFileSync(opts.loadSelections, { encoding: 'utf-8' }));\n if (!Array.isArray(selections)) {\n console.error('Invalid selections file');\n return;\n }\n\n console.info('--------------- Apollo Connector schema -----------------');\n console.info(gen.generateSchema(selections));\n return;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function promptForSelection(gen: OasGen, opts: any, types: IType[]) {\n function expandType(type?: IType) {\n if (!type) {\n return types;\n }\n\n let result: IType[];\n\n if (type instanceof Composed || type instanceof Union) {\n // make sure we gather all the props\n (type as Composed | Union).consolidate([]);\n\n result = Array.from(type.props.values());\n } else {\n /*\n // TODO: re-think this\n else if (type instanceof Post) {\n if (!type.visited) type.visit(gen.context!)\n result = gen.expand(type);\n\n // we need to exclude the body from the selection - not sure we need to generalise this..\n result = _.filter(result, (r) => r !== type.body);\n console.log(result)\n }*/\n // top level paths\n result = gen.expand(type);\n\n if (result.length === 1) {\n // we are checking for a ref so we can go straight to where its pointing\n const child = result[0];\n\n if (!(child as Type).visited) {\n child.visit(gen.context!);\n }\n\n if (child instanceof Ref) {\n result = [child.refType!];\n }\n }\n }\n\n return result;\n }\n\n return typesPrompt({\n context: gen.context!,\n expandFn: expandType,\n message: 'Navigate spec and select the fields to use in the connector',\n pageSize: parseInt(opts.pageSize, 10),\n types: types,\n });\n}\n"]}
@@ -33,7 +33,7 @@ export class Get extends Type {
33
33
  context.leave(this);
34
34
  }
35
35
  forPrompt(_context) {
36
- return `[get] ${this.name}: ${this.description || this.summary}`;
36
+ return `[get] ${this.name}`;
37
37
  }
38
38
  generate(context, writer, selection) {
39
39
  context.enter(this);
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/oas/nodes/get.ts"],"names":[],"mappings":"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","sourcesContent":["import { IType, Type, Param, ReferenceObject, Factory } from './internal.js';\nimport { Operation } from 'oas/operation';\nimport { MediaTypeObject, ParameterObject, ResponseObject, SchemaObject } from 'oas/types';\n\nimport { trace, warn } from '../log/trace.js';\nimport { OasContext } from '../oasContext.js';\nimport { Writer } from '../io/writer.js';\nimport { Naming } from '../utils/naming.js';\nimport { SYN_SUCCESS_RESPONSE } from '../schemas/index.js';\n\nexport class Get extends Type {\n public resultType?: IType;\n public params: Param[] = [];\n public summary?: string;\n public description?: string;\n\n constructor(\n name: string,\n public operation: Operation,\n ) {\n super(undefined, name);\n this.summary = operation.getSummary();\n this.description = operation.getDescription();\n }\n\n get id(): string {\n return `get:${this.name}`;\n }\n\n public visit(context: OasContext): void {\n if (this.visited) {\n trace(context, '-> [get:visit]', this.name + ' already visited.');\n return;\n }\n\n context.enter(this);\n trace(context, '-> [get:visit]', 'in ' + this.name);\n\n // 1. Visit params.\n this.visitParameters(context);\n\n // 2. Visit responses\n this.visitResponses(context);\n this.visited = true;\n\n trace(context, '<- [get:visit]', 'out ' + this.name);\n context.leave(this);\n }\n\n public forPrompt(_context: OasContext): string {\n return `[get] ${this.name}: ${this.description || this.summary}`;\n }\n\n public generate(context: OasContext, writer: Writer, selection: string[]): void {\n context.enter(this);\n trace(context, '-> [get::generate]', `-> in: ${this.name}`);\n\n const description = this.operation.getDescription();\n const summary = this.operation.getSummary();\n const originalPath = this.operation.path;\n\n if (description || summary || originalPath) {\n writer.append(' \"\"\"\\n').append(' ');\n if (description) {\n writer.append(description).append(' ');\n }\n if (summary) {\n writer.append(summary).append(' ');\n }\n if (originalPath) {\n writer.append('(').append(originalPath).append(')');\n }\n writer.append('\\n \"\"\"\\n');\n }\n\n writer.append(' ').append(this.getGqlOpName());\n this.generateParameters(context, writer, selection);\n\n if (this.resultType) {\n writer.append(': ');\n this.resultType.generate(context, writer, selection);\n }\n\n writer.append('\\n');\n trace(context, '<- [get::generate]', `-> out: ${this.name}`);\n context.leave(this);\n }\n\n public select(_context: OasContext, _writer: Writer, _selection: string[]) {\n // do nothing\n }\n\n public getGqlOpName(): string {\n return Naming.genOperationName(this.operation.path, this.operation);\n }\n\n protected visitParameters(context: OasContext): void {\n trace(context, '-> [get::params]', 'in: ' + this.name);\n\n const parameters = this.operation.getParameters();\n\n if (parameters && parameters.length > 0) {\n this.params = parameters\n .filter((p) => !p.in || (p.in && (p.in as string).toLowerCase() !== 'header'))\n .map((p: ParameterObject) => this.visitParameter(context, this, p));\n } else {\n this.params = [];\n }\n\n trace(context, '<- [get::params]', 'out: ' + this.name);\n }\n\n protected visitResponses = (context: OasContext) => {\n const statusCodes = this.operation.getResponseStatusCodes();\n\n if (!statusCodes.includes('200') && !statusCodes.includes('default')) {\n // we can potentially synthesize an Empty response here:\n this.visitResponse(context, '200', SYN_SUCCESS_RESPONSE);\n return;\n }\n\n const responses = this.operation.schema.responses;\n if (responses!['200']) {\n this.visitResponse(context, '200', responses!['200'] as ResponseObject);\n } else if (responses!.default) {\n this.visitResponse(context, 'default', responses!.default as ResponseObject);\n } else {\n throw new Error(\"Could not find a '200' or 'default' response\");\n }\n };\n\n private visitResponse(context: OasContext, code: string, response: ResponseObject): void {\n const content = response.content as MediaTypeObject;\n\n if ('$ref' in response) {\n this.visitResponseRef(context, response as ReferenceObject);\n }\n // If the response has a content property, we need to find the JSON content.\n else if (content) {\n const json = response.content!['application/json']!;\n if (!json) {\n warn(context, ` [${code}]`, 'no entry found for content application/json!');\n } else {\n this.visitResponseContent(context, code, json);\n }\n } else if ((code === 'default' || code === '200') && !content) {\n // there is no response for this operation\n // TODO: should we synthesize one?\n this.visitResponse(context, '200', SYN_SUCCESS_RESPONSE);\n } else {\n throw new Error('Not yet implemented for: ' + JSON.stringify(response));\n }\n }\n\n private visitResponseContent(context: OasContext, _code: string, media: MediaTypeObject): void {\n trace(context, '-> [get::responses::content]', 'in ' + this.name);\n const schema = media!.schema as SchemaObject;\n\n if (!schema) {\n throw new Error('No schema content found!');\n }\n\n this.resultType = Factory.fromResponse(context, this, schema);\n // PENDING: do not visit anymore\n // if (this.resultType) {\n // this.resultType.visit(context);\n // }\n\n if (this.resultType && !this.children.includes(this.resultType)) {\n this.add(this.resultType);\n }\n\n trace(context, '<- [get::responses::content]', 'out ' + this.name);\n }\n\n private visitResponseRef(context: OasContext, ref: ReferenceObject): void {\n trace(context, '-> [get::responses::ref]', `in: ${this.name}, ref: ${ref.$ref}`);\n\n const lookup = context.lookupResponse(ref.$ref!);\n if (!lookup) {\n throw new Error('Could not find a response with ref: ' + ref.$ref);\n }\n\n if ('$ref' in lookup) {\n throw new Error('Not yet implemented for nested refs');\n }\n\n this.visitResponse(context, ref.$ref!, lookup as ResponseObject);\n trace(context, '<- [get::responses::ref]', `out: ${this.name}, ref: ${ref.$ref}`);\n }\n\n protected generateParameters(context: OasContext, writer: Writer, selection: string[]): void {\n const sorted = this.params.sort((a, b) => (b.required ? 1 : 0) - (a.required ? 1 : 0));\n\n if (sorted.length === 0) {\n return;\n }\n\n writer.append('(');\n\n sorted.forEach((parameter, index) => {\n if (index > 0) {\n writer.append(', ');\n }\n parameter.generate(context, writer, selection);\n });\n\n writer.append(')');\n }\n\n private visitParameter(context: OasContext, parent: Type, p: ParameterObject): Param {\n trace(context, '->[visitParameter]', 'begin: ' + p.name);\n\n const param = Factory.fromParam(context, parent, p);\n param.visit(context);\n\n trace(context, '<-[visitParameter]', 'end: ' + p.name);\n return param;\n }\n}\n"]}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/oas/nodes/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,IAAI,EAA0B,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7E,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,OAAO,GAAI,SAAQ,IAAI;IAQlB;IAPF,UAAU,CAAS;IACnB,MAAM,GAAY,EAAE,CAAC;IACrB,OAAO,CAAU;IACjB,WAAW,CAAU;IAE5B,YACE,IAAY,EACL,SAAoB;QAE3B,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAFhB,cAAS,GAAT,SAAS,CAAW;QAG3B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;IAChD,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,OAAmB;QAC9B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpD,mBAAmB;QACnB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE9B,qBAAqB;QACrB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAEM,SAAS,CAAC,QAAoB;QACnC,OAAO,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAEM,QAAQ,CAAC,OAAmB,EAAE,MAAc,EAAE,SAAmB;QACtE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,OAAO,EAAE,oBAAoB,EAAE,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE5D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAEzC,IAAI,WAAW,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtD,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,OAAO,EAAE,oBAAoB,EAAE,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAEM,MAAM,CAAC,QAAoB,EAAE,OAAe,EAAE,UAAoB;QACvE,aAAa;IACf,CAAC;IAEM,YAAY;QACjB,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;IAES,eAAe,CAAC,OAAmB;QAC3C,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QAElD,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,GAAG,UAAU;iBACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAK,CAAC,CAAC,EAAa,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC;iBAC7E,GAAG,CAAC,CAAC,CAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAES,cAAc,GAAG,CAAC,OAAmB,EAAE,EAAE;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC;QAE5D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACrE,wDAAwD;YACxD,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;QAClD,IAAI,SAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,SAAU,CAAC,KAAK,CAAmB,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,SAAU,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,SAAU,CAAC,OAAyB,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC;IAEM,aAAa,CAAC,OAAmB,EAAE,IAAY,EAAE,QAAwB;QAC/E,MAAM,OAAO,GAAG,QAAQ,CAAC,OAA0B,CAAC;QAEpD,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAA2B,CAAC,CAAC;QAC9D,CAAC;QACD,4EAA4E;aACvE,IAAI,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAQ,CAAC,kBAAkB,CAAE,CAAC;YACpD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,EAAE,8CAA8C,CAAC,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9D,0CAA0C;YAC1C,kCAAkC;YAClC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,OAAmB,EAAE,KAAa,EAAE,KAAsB;QACrF,KAAK,CAAC,OAAO,EAAE,8BAA8B,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,KAAM,CAAC,MAAsB,CAAC;QAE7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9D,gCAAgC;QAChC,yBAAyB;QACzB,oCAAoC;QACpC,IAAI;QAEJ,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QAED,KAAK,CAAC,OAAO,EAAE,8BAA8B,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAEO,gBAAgB,CAAC,OAAmB,EAAE,GAAoB;QAChE,KAAK,CAAC,OAAO,EAAE,0BAA0B,EAAE,OAAO,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAEjF,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,IAAK,EAAE,MAAwB,CAAC,CAAC;QACjE,KAAK,CAAC,OAAO,EAAE,0BAA0B,EAAE,QAAQ,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACpF,CAAC;IAES,kBAAkB,CAAC,OAAmB,EAAE,MAAc,EAAE,SAAmB;QACnF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEnB,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YAClC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YACD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAEO,cAAc,CAAC,OAAmB,EAAE,MAAY,EAAE,CAAkB;QAC1E,KAAK,CAAC,OAAO,EAAE,oBAAoB,EAAE,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAEzD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACpD,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAErB,KAAK,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;CACF","sourcesContent":["import { IType, Type, Param, ReferenceObject, Factory } from './internal.js';\nimport { Operation } from 'oas/operation';\nimport { MediaTypeObject, ParameterObject, ResponseObject, SchemaObject } from 'oas/types';\n\nimport { trace, warn } from '../log/trace.js';\nimport { OasContext } from '../oasContext.js';\nimport { Writer } from '../io/writer.js';\nimport { Naming } from '../utils/naming.js';\nimport { SYN_SUCCESS_RESPONSE } from '../schemas/index.js';\n\nexport class Get extends Type {\n public resultType?: IType;\n public params: Param[] = [];\n public summary?: string;\n public description?: string;\n\n constructor(\n name: string,\n public operation: Operation,\n ) {\n super(undefined, name);\n this.summary = operation.getSummary();\n this.description = operation.getDescription();\n }\n\n get id(): string {\n return `get:${this.name}`;\n }\n\n public visit(context: OasContext): void {\n if (this.visited) {\n trace(context, '-> [get:visit]', this.name + ' already visited.');\n return;\n }\n\n context.enter(this);\n trace(context, '-> [get:visit]', 'in ' + this.name);\n\n // 1. Visit params.\n this.visitParameters(context);\n\n // 2. Visit responses\n this.visitResponses(context);\n this.visited = true;\n\n trace(context, '<- [get:visit]', 'out ' + this.name);\n context.leave(this);\n }\n\n public forPrompt(_context: OasContext): string {\n return `[get] ${this.name}`;\n }\n\n public generate(context: OasContext, writer: Writer, selection: string[]): void {\n context.enter(this);\n trace(context, '-> [get::generate]', `-> in: ${this.name}`);\n\n const description = this.operation.getDescription();\n const summary = this.operation.getSummary();\n const originalPath = this.operation.path;\n\n if (description || summary || originalPath) {\n writer.append(' \"\"\"\\n').append(' ');\n if (description) {\n writer.append(description).append(' ');\n }\n if (summary) {\n writer.append(summary).append(' ');\n }\n if (originalPath) {\n writer.append('(').append(originalPath).append(')');\n }\n writer.append('\\n \"\"\"\\n');\n }\n\n writer.append(' ').append(this.getGqlOpName());\n this.generateParameters(context, writer, selection);\n\n if (this.resultType) {\n writer.append(': ');\n this.resultType.generate(context, writer, selection);\n }\n\n writer.append('\\n');\n trace(context, '<- [get::generate]', `-> out: ${this.name}`);\n context.leave(this);\n }\n\n public select(_context: OasContext, _writer: Writer, _selection: string[]) {\n // do nothing\n }\n\n public getGqlOpName(): string {\n return Naming.genOperationName(this.operation.path, this.operation);\n }\n\n protected visitParameters(context: OasContext): void {\n trace(context, '-> [get::params]', 'in: ' + this.name);\n\n const parameters = this.operation.getParameters();\n\n if (parameters && parameters.length > 0) {\n this.params = parameters\n .filter((p) => !p.in || (p.in && (p.in as string).toLowerCase() !== 'header'))\n .map((p: ParameterObject) => this.visitParameter(context, this, p));\n } else {\n this.params = [];\n }\n\n trace(context, '<- [get::params]', 'out: ' + this.name);\n }\n\n protected visitResponses = (context: OasContext) => {\n const statusCodes = this.operation.getResponseStatusCodes();\n\n if (!statusCodes.includes('200') && !statusCodes.includes('default')) {\n // we can potentially synthesize an Empty response here:\n this.visitResponse(context, '200', SYN_SUCCESS_RESPONSE);\n return;\n }\n\n const responses = this.operation.schema.responses;\n if (responses!['200']) {\n this.visitResponse(context, '200', responses!['200'] as ResponseObject);\n } else if (responses!.default) {\n this.visitResponse(context, 'default', responses!.default as ResponseObject);\n } else {\n throw new Error(\"Could not find a '200' or 'default' response\");\n }\n };\n\n private visitResponse(context: OasContext, code: string, response: ResponseObject): void {\n const content = response.content as MediaTypeObject;\n\n if ('$ref' in response) {\n this.visitResponseRef(context, response as ReferenceObject);\n }\n // If the response has a content property, we need to find the JSON content.\n else if (content) {\n const json = response.content!['application/json']!;\n if (!json) {\n warn(context, ` [${code}]`, 'no entry found for content application/json!');\n } else {\n this.visitResponseContent(context, code, json);\n }\n } else if ((code === 'default' || code === '200') && !content) {\n // there is no response for this operation\n // TODO: should we synthesize one?\n this.visitResponse(context, '200', SYN_SUCCESS_RESPONSE);\n } else {\n throw new Error('Not yet implemented for: ' + JSON.stringify(response));\n }\n }\n\n private visitResponseContent(context: OasContext, _code: string, media: MediaTypeObject): void {\n trace(context, '-> [get::responses::content]', 'in ' + this.name);\n const schema = media!.schema as SchemaObject;\n\n if (!schema) {\n throw new Error('No schema content found!');\n }\n\n this.resultType = Factory.fromResponse(context, this, schema);\n // PENDING: do not visit anymore\n // if (this.resultType) {\n // this.resultType.visit(context);\n // }\n\n if (this.resultType && !this.children.includes(this.resultType)) {\n this.add(this.resultType);\n }\n\n trace(context, '<- [get::responses::content]', 'out ' + this.name);\n }\n\n private visitResponseRef(context: OasContext, ref: ReferenceObject): void {\n trace(context, '-> [get::responses::ref]', `in: ${this.name}, ref: ${ref.$ref}`);\n\n const lookup = context.lookupResponse(ref.$ref!);\n if (!lookup) {\n throw new Error('Could not find a response with ref: ' + ref.$ref);\n }\n\n if ('$ref' in lookup) {\n throw new Error('Not yet implemented for nested refs');\n }\n\n this.visitResponse(context, ref.$ref!, lookup as ResponseObject);\n trace(context, '<- [get::responses::ref]', `out: ${this.name}, ref: ${ref.$ref}`);\n }\n\n protected generateParameters(context: OasContext, writer: Writer, selection: string[]): void {\n const sorted = this.params.sort((a, b) => (b.required ? 1 : 0) - (a.required ? 1 : 0));\n\n if (sorted.length === 0) {\n return;\n }\n\n writer.append('(');\n\n sorted.forEach((parameter, index) => {\n if (index > 0) {\n writer.append(', ');\n }\n parameter.generate(context, writer, selection);\n });\n\n writer.append(')');\n }\n\n private visitParameter(context: OasContext, parent: Type, p: ParameterObject): Param {\n trace(context, '->[visitParameter]', 'begin: ' + p.name);\n\n const param = Factory.fromParam(context, parent, p);\n param.visit(context);\n\n trace(context, '<-[visitParameter]', 'end: ' + p.name);\n return param;\n }\n}\n"]}
@@ -32,7 +32,7 @@ export class Post extends Get {
32
32
  context.leave(this);
33
33
  }
34
34
  forPrompt(_context) {
35
- return `[post] ${this.name}: ${this.description || this.summary}`;
35
+ return `[post] ${this.name}`;
36
36
  }
37
37
  select(context, writer, selection) {
38
38
  throw new Error('select not implemented.');
@@ -1 +1 @@
1
- {"version":3,"file":"post.js","sourceRoot":"","sources":["../../../src/oas/nodes/post.ts"],"names":[],"mappings":"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","sourcesContent":["import { Factory, Get, Body, Type } from './internal.js';\nimport { Writer } from '../io/writer.js';\nimport { OasContext } from '../oasContext.js';\nimport { Operation } from 'oas/operation';\nimport { trace, warn } from '../log/trace.js';\nimport { Naming } from '../utils/naming.js';\n\n// TODO: support\n// * select fields in Post BODY?\n// anything else?\nexport class Post extends Get {\n public body?: Body;\n\n constructor(\n name: string,\n public operation: Operation,\n ) {\n super(name, operation);\n }\n\n get id(): string {\n return `post:${this.name}`;\n }\n\n public visit(context: OasContext): void {\n if (this.visited) {\n trace(context, '-> [post:visit]', this.name + ' already visited.');\n return;\n }\n\n context.enter(this);\n trace(context, '-> [post:visit]', 'in ' + this.name);\n\n // 1. Visit params.\n this.visitParameters(context);\n\n // 2. Visit body\n this.visitBody(context);\n\n // 3. Visit responses\n this.visitResponses(context);\n this.visited = true;\n\n trace(context, '<- [post:visit]', 'out ' + this.name);\n context.leave(this);\n }\n\n public forPrompt(_context: OasContext): string {\n return `[post] ${this.name}: ${this.description || this.summary}`;\n }\n\n public select(context: OasContext, writer: Writer, selection: string[]): void {\n throw new Error('select not implemented.');\n }\n\n public generate(context: OasContext, writer: Writer, selection: string[]): void {\n context.enter(this);\n trace(context, '-> [post::generate]', `-> in: ${this.name}`);\n\n // generate body type before anything else\n // if (this.body) {\n // this.body.generate(context, writer, selection);\n // }\n\n const summary = this.operation.getSummary();\n const originalPath = this.operation.path;\n\n if (summary || originalPath) {\n writer.append(' \"\"\"\\n').append(' ');\n if (summary) {\n writer.append(summary).append(' ');\n }\n if (originalPath) {\n writer.append('(').append(originalPath).append(')');\n }\n writer.append('\\n \"\"\"\\n');\n }\n\n writer.append(' ').append(this.getGqlOpName());\n\n this.generateParameters(context, writer, selection);\n this.generateBodyInput(context, writer);\n\n if (this.resultType) {\n writer.append(': ');\n this.resultType.generate(context, writer, selection);\n }\n\n writer.append('\\n');\n trace(context, '<- [post::generate]', `-> out: ${this.name}`);\n context.leave(this);\n }\n\n private visitBody(context: OasContext) {\n trace(context, '-> [post::visitBody]', `in: ${this.name}`);\n\n const mediaTypes = this.operation.getRequestBodyMediaTypes();\n if (mediaTypes.length === 0) {\n return;\n }\n\n const body = this.operation.getRequestBody('application/json');\n if (!body) return;\n\n // if it is an array, throw an error for now\n if (Array.isArray(body)) {\n throw new Error('Array body not yet implemented.');\n }\n\n if (!body.schema) {\n warn(context, ' [post::visitBody]', `No schema found!`);\n return;\n }\n\n this.body = Factory.fromBody(context, this, body.schema) as Body;\n this.body.visit(context);\n\n trace(context, '<- [post::visitBody]', `out: ${this.name}`);\n }\n\n private generateBodyInput(context: OasContext, writer: Writer) {\n if (!this.body || !this.body.payload) return;\n\n const payload = this.body.payload as Type;\n\n writer.append('(');\n\n const name = Naming.getRefName(payload.name!) + payload.nameSuffix();\n writer.append('input').append(': ').append(name).append('!');\n\n writer.append(')');\n }\n}\n"]}
1
+ {"version":3,"file":"post.js","sourceRoot":"","sources":["../../../src/oas/nodes/post.ts"],"names":[],"mappings":"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","sourcesContent":["import { Factory, Get, Body, Type } from './internal.js';\nimport { Writer } from '../io/writer.js';\nimport { OasContext } from '../oasContext.js';\nimport { Operation } from 'oas/operation';\nimport { trace, warn } from '../log/trace.js';\nimport { Naming } from '../utils/naming.js';\n\n// TODO: support\n// * select fields in Post BODY?\n// anything else?\nexport class Post extends Get {\n public body?: Body;\n\n constructor(\n name: string,\n public operation: Operation,\n ) {\n super(name, operation);\n }\n\n get id(): string {\n return `post:${this.name}`;\n }\n\n public visit(context: OasContext): void {\n if (this.visited) {\n trace(context, '-> [post:visit]', this.name + ' already visited.');\n return;\n }\n\n context.enter(this);\n trace(context, '-> [post:visit]', 'in ' + this.name);\n\n // 1. Visit params.\n this.visitParameters(context);\n\n // 2. Visit body\n this.visitBody(context);\n\n // 3. Visit responses\n this.visitResponses(context);\n this.visited = true;\n\n trace(context, '<- [post:visit]', 'out ' + this.name);\n context.leave(this);\n }\n\n public forPrompt(_context: OasContext): string {\n return `[post] ${this.name}`;\n }\n\n public select(context: OasContext, writer: Writer, selection: string[]): void {\n throw new Error('select not implemented.');\n }\n\n public generate(context: OasContext, writer: Writer, selection: string[]): void {\n context.enter(this);\n trace(context, '-> [post::generate]', `-> in: ${this.name}`);\n\n // generate body type before anything else\n // if (this.body) {\n // this.body.generate(context, writer, selection);\n // }\n\n const summary = this.operation.getSummary();\n const originalPath = this.operation.path;\n\n if (summary || originalPath) {\n writer.append(' \"\"\"\\n').append(' ');\n if (summary) {\n writer.append(summary).append(' ');\n }\n if (originalPath) {\n writer.append('(').append(originalPath).append(')');\n }\n writer.append('\\n \"\"\"\\n');\n }\n\n writer.append(' ').append(this.getGqlOpName());\n\n this.generateParameters(context, writer, selection);\n this.generateBodyInput(context, writer);\n\n if (this.resultType) {\n writer.append(': ');\n this.resultType.generate(context, writer, selection);\n }\n\n writer.append('\\n');\n trace(context, '<- [post::generate]', `-> out: ${this.name}`);\n context.leave(this);\n }\n\n private visitBody(context: OasContext) {\n trace(context, '-> [post::visitBody]', `in: ${this.name}`);\n\n const mediaTypes = this.operation.getRequestBodyMediaTypes();\n if (mediaTypes.length === 0) {\n return;\n }\n\n const body = this.operation.getRequestBody('application/json');\n if (!body) return;\n\n // if it is an array, throw an error for now\n if (Array.isArray(body)) {\n throw new Error('Array body not yet implemented.');\n }\n\n if (!body.schema) {\n warn(context, ' [post::visitBody]', `No schema found!`);\n return;\n }\n\n this.body = Factory.fromBody(context, this, body.schema) as Body;\n this.body.visit(context);\n\n trace(context, '<- [post::visitBody]', `out: ${this.name}`);\n }\n\n private generateBodyInput(context: OasContext, writer: Writer) {\n if (!this.body || !this.body.payload) return;\n\n const payload = this.body.payload as Type;\n\n writer.append('(');\n\n const name = Naming.getRefName(payload.name!) + payload.nameSuffix();\n writer.append('input').append(': ').append(name).append('!');\n\n writer.append(')');\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apollo-conn-gen",
3
- "version": "0.0.14",
3
+ "version": "0.0.15",
4
4
  "description": "Library to generate Apollo connector schemas from OpenAPI specs or JSON payloads. Also includes a CLI to generate connectors from the command line.",
5
5
  "author": "Fernando @ Apollo",
6
6
  "license": "MIT",