| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- const readline = require('readline')
- // const xstdin = (prompt, input) => {
- // const rl = readline.createInterface({
- // input: input || process.stdin
- // })
- // return async function* () {
- // return await new Promise((resolve) => {
- // rl.question(prompt, resolve)
- // })
- // }
- // }
- // stdin = () => async function* stdin() {
- // const done = new Promise(resolve => process.stdin.once('end', x => resolve(null)))
- // let data
- // do {
- // data = await Promise.race([
- // new Promise(resolve => process.stdin.once('data', resolve)),
- // done
- // ])
- // console.log(data)
- // if (data) yield data
- // } while (data)
- // }
- const stdin = () => {
- return async function*() {
- return await new Promise(resolve => {
- const onData = (data) => {
- resolve(data.toString().trim())
- cleanup()
- }
- const onEnd = () => {
- resolve('')
- cleanup()
- }
- const cleanup = () => {
- process.stdin.off('data', onData)
- process.stdin.off('end', onEnd)
- }
- process.stdin.on('data', onData)
- process.stdin.on('end', onEnd)
- })
- }
- }
- const stdout = () => async function* stdout(output, scripting) {
- process.stdout.write(output)
- }
- module.exports = {stdin, stdout}
|