Skip to content

Commit b747a56

Browse files
committed
chore(stream): add stream example
1 parent 80341fa commit b747a56

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

examples/basic/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
},
1111
"scripts": {
1212
"start": "jiti ./index.ts",
13+
"stream": "jiti ./stream.ts",
1314
"spinner": "jiti ./spinner.ts",
1415
"spinner-ci": "npx cross-env CI=\"true\" jiti ./spinner-ci.ts"
1516
},

examples/basic/stream.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { setTimeout } from 'node:timers/promises';
2+
import * as p from '@clack/prompts';
3+
import color from 'picocolors';
4+
5+
async function main() {
6+
console.clear();
7+
8+
await setTimeout(1000);
9+
10+
p.intro(`${color.bgCyan(color.black(' create-app '))}`);
11+
12+
await p.stream.step((async function* () {
13+
for (const line of lorem) {
14+
for (const word of line.split(' ')) {
15+
yield word;
16+
yield ' ';
17+
await setTimeout(200);
18+
}
19+
yield '\n';
20+
if (line !== lorem.at(-1)) {
21+
await setTimeout(1000);
22+
}
23+
}
24+
})())
25+
26+
p.outro(`Problems? ${color.underline(color.cyan('https://example.com/issues'))}`);
27+
}
28+
29+
const lorem = [
30+
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
31+
'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
32+
]
33+
34+
main().catch(console.error);

0 commit comments

Comments
 (0)