3 import stream_buffers from 'stream-buffers'
4 import Problem from './Problem.mjs'
5 import Session from './Session.mjs'
7 if (process.argv.length < 3) {
9 `usage: ${process.argv[0]} ${process.argv[1]} endpoint [args]`
13 let endpoint = process.argv[2]
15 for (let i = 3; i < process.argv.length; ++i)
16 args.push(JSON.parse(process.argv[i]))
18 let write_stream = new stream_buffers.WritableStreamBuffer()
19 let data = new Promise(
20 (resolve, reject) => {
22 on('finish', () => {resolve(write_stream.getContents())}).
23 on('error', () => {reject()})
26 process.stdin.pipe(write_stream)
27 args.push(JSON.parse((await data).toString('utf-8')))
29 let session = new Session('session.json')
33 await session.api_call(endpoint, ...args)
36 let problem = Problem.from(error)
37 console.error('problem:')
38 console.error(' title:', problem.title)
39 console.error(' detail:', problem.detail)
40 console.error(' status:', problem.status)