UNPKG

@aj-archipelago/cortex

Version:

Cortex is a GraphQL API for AI. It provides a simple, extensible interface for using AI services from OpenAI, Azure and others.

41 lines (32 loc) 1.2 kB
import { parseNumberedList, parseNumberedObjectList, parseCommaSeparatedList, isCommaSeparatedList, isNumberedList, parseJson } from './parser.js'; import CortexResponse from '../lib/cortexResponse.js'; class PathwayResponseParser { constructor(pathway) { this.pathway = pathway; } async parse(data) { let dataToParse = data; if (data instanceof CortexResponse) { dataToParse = data.toString(); } if (this.pathway.parser) { return this.pathway.parser(dataToParse); } if (this.pathway.list) { if (isNumberedList(dataToParse)) { if (this.pathway.format) { return await parseNumberedObjectList(dataToParse, this.pathway.format); } return parseNumberedList(dataToParse); } else if (isCommaSeparatedList(dataToParse)) { return parseCommaSeparatedList(dataToParse); } return [dataToParse]; } if (this.pathway.json) { return await parseJson(dataToParse); } return data; } } export { PathwayResponseParser };