/
resources.ts
89 lines (73 loc) · 2.83 KB
/
resources.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/**
* This file is part of the vscode-powertools distribution.
* Copyright (c) Next.e.GO Mobile SE, Aachen, Germany (https://www.e-go-mobile.com/)
*
* vscode-powertools is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, version 3.
*
* vscode-powertools is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* An example script.
*/
export const EXAMPLE_SCRIPT = `
const MAX_USER_COUNT = 20;
$clear();
await $withProgress(async (progress, cancelToken) => {
progress.report({
message: \`Loading list of random users from 'randomuser.me' ...\`,
});
// s. https://github.com/mkloubert/vscode-helpers#get-
const RESPONSE = await $helpers.GET('https://randomuser.me/api?nat=de&results=' + MAX_USER_COUNT);
if (200 !== RESPONSE.code) {
throw new Error(\`Unexpected response: [\${ RESPONSE.code }] '\${ RESPONSE.status }'\`);
}
const RESULTS_WITH_USERS = JSON.parse(
(await RESPONSE.readBody())
.toString('utf8')
);
if (!RESULTS_WITH_USERS.info.results) {
$vscode.window.showWarningMessage('No users available!');
return;
}
const ALL_USERS = RESULTS_WITH_USERS.results;
for (let i = 0; i < ALL_USERS.length; i++) {
if (cancelToken.isCancellationRequested) {
return; // user wants to cancel
// from progress window
}
if ($cancel.isCancellationRequested) {
return; // user wants to cancel
// from console window
}
const USER = ALL_USERS[i];
progress.report({
message: \`Processing user '\${ USER.name.last }, \${ USER.name.first }' ...\`,
increment: 1 / ALL_USERS.length * 100.0,
});
const USER_META = [
\`gender: \${ USER.gender }\`,
\`id: \${ USER.login.uuid }\`,
\`mail: \${ USER.email }\`,
\`country: \${ USER.nat }\`,
];
$writeMarkdown(\`## [\${ i + 1 }] \${ $html.encode(USER.name.last + ', ' + USER.name.first) }\`);
$writeMarkdown(
\`| Icon | Meta |\\n\`
+ \`| ---- | ---- |\\n\`
// icon
+ \`| ![\${ $html.encode(USER.name.last + ', ' + USER.name.first) }](\${ USER.picture.medium }) | \`
// meta
+ \`\${ USER_META.map(m => $html.encode(m)).join('<br />') } |\\n\`
);
await $sleep(0.5);
}
});
`;