stack-analyze 1.1.5 → 1.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/settings.json +4 -0
- package/CHANGELOG.md +23 -0
- package/{about/index.js → about.js} +13 -26
- package/cli.js +322 -0
- package/functions/animeInfo.js +9 -39
- package/functions/bitly.js +5 -7
- package/functions/cryptoList.js +17 -44
- package/functions/gitUser.js +6 -9
- package/functions/hardware.js +32 -24
- package/functions/moviesInfo.js +9 -38
- package/functions/multipleStack.js +9 -29
- package/functions/pageSpeed.js +13 -13
- package/functions/singleStack.js +9 -32
- package/functions/twitch.js +45 -0
- package/hash/aboutOpts.js +9 -16
- package/hash/hardwareTools.js +3 -3
- package/index.cjs +474 -0
- package/index.mjs +474 -0
- package/models/aboutTables.js +2 -19
- package/models/animeTable.js +33 -0
- package/models/cryptoTables.js +32 -0
- package/models/hardwareTables.js +87 -0
- package/models/movieTables.js +33 -0
- package/models/stackTables.js +23 -0
- package/models/twitchTables.js +28 -0
- package/package.json +24 -18
- package/readme.md +2 -2
- package/hash/mainTools.js +0 -145
- package/index.js +0 -170
package/index.mjs
ADDED
|
@@ -0,0 +1,474 @@
|
|
|
1
|
+
// modules
|
|
2
|
+
import axios from "axios";
|
|
3
|
+
import CoinGecko from "coingecko-api";
|
|
4
|
+
import {
|
|
5
|
+
cpu,
|
|
6
|
+
mem,
|
|
7
|
+
osInfo,
|
|
8
|
+
diskLayout,
|
|
9
|
+
graphics,
|
|
10
|
+
bios
|
|
11
|
+
} from "systeminformation";
|
|
12
|
+
import Wappalyzer from "wappalyzer";
|
|
13
|
+
|
|
14
|
+
// init coingecko api
|
|
15
|
+
const CoinGeckoClient = new CoinGecko();
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @typedef {Object} anime
|
|
19
|
+
* @property {string} anime.query
|
|
20
|
+
* @property {function(data): void} anime.results
|
|
21
|
+
*
|
|
22
|
+
* @typedef {Object} bitly
|
|
23
|
+
* @property {string} bitly.link
|
|
24
|
+
* @property {string} bitly.token
|
|
25
|
+
* @property {function(data): void} bitly.results
|
|
26
|
+
*
|
|
27
|
+
* @typedef {Object} github
|
|
28
|
+
* @property {string} github.user
|
|
29
|
+
* @property {string} github.results
|
|
30
|
+
*
|
|
31
|
+
* @typedef {Object} movie
|
|
32
|
+
* @property {string} movie.api_key
|
|
33
|
+
* @property {string} movie.query
|
|
34
|
+
* @property {function(data): void} movie.results
|
|
35
|
+
*
|
|
36
|
+
* @typedef {Object} multiple
|
|
37
|
+
* @property {string[]} multiple.urls
|
|
38
|
+
* @property {function(data): void} multiple.results
|
|
39
|
+
*
|
|
40
|
+
* @typedef {Object} stack
|
|
41
|
+
* @property {string} stack.urls
|
|
42
|
+
* @property {function(data): void} stack.results
|
|
43
|
+
*
|
|
44
|
+
* @typedef {Object} twitch
|
|
45
|
+
* @property {string} twitch.query
|
|
46
|
+
* @property {string} twitch.token
|
|
47
|
+
* @property {string} twitch.clientID
|
|
48
|
+
* @property {function(data): void} twitch.results
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @param {anime} {query, results}
|
|
53
|
+
* @returns {Promise<void>}
|
|
54
|
+
*/
|
|
55
|
+
const animeSearch = async ({ query, results }) => {
|
|
56
|
+
/* error manager */
|
|
57
|
+
try {
|
|
58
|
+
// call api
|
|
59
|
+
const { data } = await axios.get("https://api.jikan.moe/v3/search/anime", {
|
|
60
|
+
params: {
|
|
61
|
+
q: query,
|
|
62
|
+
limit: 10
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
results(data.results);
|
|
67
|
+
|
|
68
|
+
} catch (err) { results(err); }
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @param {bitly} {link, token, results}
|
|
73
|
+
* @returns {Promise<void>}
|
|
74
|
+
*/
|
|
75
|
+
const bitlyInfo = async ({ link, token, results }) => {
|
|
76
|
+
try {
|
|
77
|
+
const { data } = await axios.post(
|
|
78
|
+
"https://api-ssl.bitly.com/v4/expand",
|
|
79
|
+
{
|
|
80
|
+
bitlink_id: link
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
headers: {
|
|
84
|
+
Authorization: `Bearer ${token}`,
|
|
85
|
+
"Content-Type": "application/json"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
results(data);
|
|
91
|
+
} catch (err) { results(err); }
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
*
|
|
96
|
+
* @descripiton call the crypto market list
|
|
97
|
+
* @param {function(data): void} callback
|
|
98
|
+
* @returns { Promise<void> } - return results search
|
|
99
|
+
*/
|
|
100
|
+
const cryptoMarket = async (callback) => {
|
|
101
|
+
try {
|
|
102
|
+
// start crypto
|
|
103
|
+
const coinData = await CoinGeckoClient.coins.markets({
|
|
104
|
+
per_page: 10
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
// map coinData
|
|
108
|
+
callback(coinData.data);
|
|
109
|
+
} catch (err) { callback(err); }
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
*
|
|
114
|
+
* @param {github} {user, results}
|
|
115
|
+
* @returns {Promise<void>}
|
|
116
|
+
*/
|
|
117
|
+
async function githubInfo({ user, results }) {
|
|
118
|
+
try {
|
|
119
|
+
const { data } = await axios.get(`https://api.github.com/users/${user}`);
|
|
120
|
+
|
|
121
|
+
results(data);
|
|
122
|
+
} catch (err) { results(err); }
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
*
|
|
127
|
+
* @param {function(data): void} callback
|
|
128
|
+
* @returns {Promise<void>}
|
|
129
|
+
*/
|
|
130
|
+
async function cpuInfo(callback) {
|
|
131
|
+
try {
|
|
132
|
+
const {
|
|
133
|
+
manufacturer,
|
|
134
|
+
brand,
|
|
135
|
+
speed,
|
|
136
|
+
cores,
|
|
137
|
+
physicalCores,
|
|
138
|
+
processors,
|
|
139
|
+
vendor,
|
|
140
|
+
family,
|
|
141
|
+
model
|
|
142
|
+
} = await cpu();
|
|
143
|
+
|
|
144
|
+
// show results
|
|
145
|
+
callback({
|
|
146
|
+
manufacturer,
|
|
147
|
+
brand,
|
|
148
|
+
speed,
|
|
149
|
+
cores,
|
|
150
|
+
physicalCores,
|
|
151
|
+
processors,
|
|
152
|
+
vendor,
|
|
153
|
+
family,
|
|
154
|
+
model
|
|
155
|
+
});
|
|
156
|
+
} catch (err) { callback(err); }
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
*
|
|
161
|
+
* @param {function(data): void} callback
|
|
162
|
+
* @returns {Promise<void>}
|
|
163
|
+
*/
|
|
164
|
+
async function ramMemInfo(callback) {
|
|
165
|
+
try {
|
|
166
|
+
const {
|
|
167
|
+
total,
|
|
168
|
+
free,
|
|
169
|
+
used,
|
|
170
|
+
active,
|
|
171
|
+
available
|
|
172
|
+
} = await mem();
|
|
173
|
+
|
|
174
|
+
// show results
|
|
175
|
+
callback({
|
|
176
|
+
total_mem: `${(total / 1073741824).toFixed(2)} GB`,
|
|
177
|
+
free_mem: `${(free / 1073741824).toFixed(2)} GB`,
|
|
178
|
+
used_mem: `${(used / 1073741824).toFixed(2)} GB`,
|
|
179
|
+
active_mem: `${(active / 1073741824).toFixed(2)} GB`,
|
|
180
|
+
available_mem: `${(available / 1073741824).toFixed(2)} GB`
|
|
181
|
+
});
|
|
182
|
+
} catch (err) { callback(err); }
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
*
|
|
187
|
+
* @param {function(data): void} callback
|
|
188
|
+
* @returns {Promise<void>}
|
|
189
|
+
*/
|
|
190
|
+
async function osDetail(callback) {
|
|
191
|
+
try {
|
|
192
|
+
const {
|
|
193
|
+
hostname,
|
|
194
|
+
platform,
|
|
195
|
+
distro,
|
|
196
|
+
release,
|
|
197
|
+
kernel,
|
|
198
|
+
arch,
|
|
199
|
+
serial,
|
|
200
|
+
uefi
|
|
201
|
+
} = await osInfo();
|
|
202
|
+
|
|
203
|
+
// show results
|
|
204
|
+
callback({
|
|
205
|
+
hostname,
|
|
206
|
+
platform,
|
|
207
|
+
distro,
|
|
208
|
+
release,
|
|
209
|
+
kernel,
|
|
210
|
+
arch,
|
|
211
|
+
serial,
|
|
212
|
+
uefi
|
|
213
|
+
});
|
|
214
|
+
} catch (err) { callback(err); }
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
*
|
|
219
|
+
* @param {function(data): void} callback
|
|
220
|
+
* @returns {Promise<void>}
|
|
221
|
+
*/
|
|
222
|
+
async function diskInfo(callback) {
|
|
223
|
+
try {
|
|
224
|
+
const disks = await diskLayout();
|
|
225
|
+
|
|
226
|
+
const disksList = disks.map(({
|
|
227
|
+
type,
|
|
228
|
+
name,
|
|
229
|
+
vendor,
|
|
230
|
+
size,
|
|
231
|
+
interfaceType
|
|
232
|
+
}) => ({
|
|
233
|
+
type,
|
|
234
|
+
name,
|
|
235
|
+
vendor,
|
|
236
|
+
diskSize: `${(size / 1073741824).toFixed(2)} GB`,
|
|
237
|
+
interfaceType
|
|
238
|
+
}));
|
|
239
|
+
|
|
240
|
+
callback(disksList);
|
|
241
|
+
|
|
242
|
+
} catch (err) { callback(err); }
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
*
|
|
247
|
+
* @param {function(data): void} callback
|
|
248
|
+
* @returns {Promise<void>}
|
|
249
|
+
*/
|
|
250
|
+
async function controllerInfo(callback) {
|
|
251
|
+
try {
|
|
252
|
+
const { controllers } = await graphics();
|
|
253
|
+
|
|
254
|
+
const controllersList = controllers.map(({
|
|
255
|
+
model,
|
|
256
|
+
vendor,
|
|
257
|
+
vram
|
|
258
|
+
}) => ({
|
|
259
|
+
model,
|
|
260
|
+
vendor,
|
|
261
|
+
vramSize: vram < 1024
|
|
262
|
+
? `${vram} MB`
|
|
263
|
+
: `${(vram / 1024).toFixed(2)} GB`
|
|
264
|
+
}));
|
|
265
|
+
|
|
266
|
+
callback(controllersList);
|
|
267
|
+
} catch (err) { callback(err); }
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
*
|
|
272
|
+
* @param {function(data): void} callback
|
|
273
|
+
* @returns {Promise<void>}
|
|
274
|
+
*/
|
|
275
|
+
async function displayInfo(callback) {
|
|
276
|
+
try {
|
|
277
|
+
const { displays } = await graphics();
|
|
278
|
+
|
|
279
|
+
const displayList = displays.map(({
|
|
280
|
+
model,
|
|
281
|
+
main,
|
|
282
|
+
connection,
|
|
283
|
+
resolutionX,
|
|
284
|
+
resolutionY
|
|
285
|
+
}) => ({
|
|
286
|
+
model,
|
|
287
|
+
main,
|
|
288
|
+
connection,
|
|
289
|
+
resolutionX,
|
|
290
|
+
resolutionY
|
|
291
|
+
}));
|
|
292
|
+
|
|
293
|
+
callback(displayList);
|
|
294
|
+
} catch (err) { callback(err); }
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
*
|
|
299
|
+
* @param {function(data): void} callback
|
|
300
|
+
* @returns {Promise<void>}
|
|
301
|
+
*/
|
|
302
|
+
async function biosInfo(callback) {
|
|
303
|
+
try {
|
|
304
|
+
const {
|
|
305
|
+
releaseDate,
|
|
306
|
+
vendor,
|
|
307
|
+
revision,
|
|
308
|
+
version
|
|
309
|
+
} = await bios();
|
|
310
|
+
|
|
311
|
+
callback({ releaseDate, vendor, revision, version });
|
|
312
|
+
} catch (err) { callback(err); }
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* @param {movie} {api_key, query, results}
|
|
317
|
+
* @returns {Promise<void>} void results
|
|
318
|
+
*/
|
|
319
|
+
const movieDB = async ({ api_key, query, results }) => {
|
|
320
|
+
try {
|
|
321
|
+
const { data } = await axios.get("https://api.themoviedb.org/3/search/movie", {
|
|
322
|
+
params: {
|
|
323
|
+
api_key,
|
|
324
|
+
query,
|
|
325
|
+
page: 1
|
|
326
|
+
}
|
|
327
|
+
});
|
|
328
|
+
|
|
329
|
+
const movieData = data.results
|
|
330
|
+
.map(({
|
|
331
|
+
title,
|
|
332
|
+
original_language,
|
|
333
|
+
popularity,
|
|
334
|
+
vote_average,
|
|
335
|
+
release_date
|
|
336
|
+
}) => ({
|
|
337
|
+
title,
|
|
338
|
+
original_language,
|
|
339
|
+
popularity,
|
|
340
|
+
vote_average,
|
|
341
|
+
release_date
|
|
342
|
+
}))
|
|
343
|
+
.sort((x, y) => {
|
|
344
|
+
// date values
|
|
345
|
+
const primaryDate = new Date(x.release_date);
|
|
346
|
+
const secondaryDate = new Date(y.release_date);
|
|
347
|
+
|
|
348
|
+
return primaryDate.getTime() - secondaryDate.getTime();
|
|
349
|
+
})
|
|
350
|
+
.filter(({ release_date }) => release_date !== undefined && release_date !== "");
|
|
351
|
+
|
|
352
|
+
results(movieData);
|
|
353
|
+
} catch (err) { results(err); }
|
|
354
|
+
};
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* @param {multiple} {urls, results}
|
|
358
|
+
* @returns {Promise<void>}
|
|
359
|
+
*/
|
|
360
|
+
async function multipleStack({ urls, results }) {
|
|
361
|
+
let result;
|
|
362
|
+
const wappalyzer = new Wappalyzer();
|
|
363
|
+
try {
|
|
364
|
+
await wappalyzer.init();
|
|
365
|
+
result = await Promise.all(
|
|
366
|
+
urls.map(async (url) => {
|
|
367
|
+
const { technologies } = await wappalyzer.open(url).analyze();
|
|
368
|
+
return {
|
|
369
|
+
url,
|
|
370
|
+
technologies
|
|
371
|
+
};
|
|
372
|
+
})
|
|
373
|
+
);
|
|
374
|
+
} catch (err) { result = err; }
|
|
375
|
+
await wappalyzer.destroy();
|
|
376
|
+
results(result);
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* @param {stack} {url, results}
|
|
381
|
+
* @returns {Promise<void>}
|
|
382
|
+
*/
|
|
383
|
+
const pageSpeed = async ({ url, results }) => {
|
|
384
|
+
try {
|
|
385
|
+
const resMobile = await axios.get("https://www.googleapis.com/pagespeedonline/v5/runPagespeed", {
|
|
386
|
+
params: {
|
|
387
|
+
url,
|
|
388
|
+
key: "AIzaSyBEDaW4FxSZ2s1vz5CdD5Ai6PGZGdAzij0",
|
|
389
|
+
strategy: "mobile"
|
|
390
|
+
}
|
|
391
|
+
});
|
|
392
|
+
|
|
393
|
+
const resDesktop = await axios.get("https://www.googleapis.com/pagespeedonline/v5/runPagespeed", {
|
|
394
|
+
params: {
|
|
395
|
+
url,
|
|
396
|
+
key: "AIzaSyBEDaW4FxSZ2s1vz5CdD5Ai6PGZGdAzij0",
|
|
397
|
+
strategy: "desktop"
|
|
398
|
+
}
|
|
399
|
+
});
|
|
400
|
+
|
|
401
|
+
// extract results
|
|
402
|
+
const mobile = Math.round(resMobile.data.lighthouseResult.categories.performance.score * 100);
|
|
403
|
+
const desktop = Math.round(resDesktop.data.lighthouseResult.categories.performance.score * 100);
|
|
404
|
+
|
|
405
|
+
results({ mobile, desktop });
|
|
406
|
+
} catch (err) { results(err); }
|
|
407
|
+
};
|
|
408
|
+
|
|
409
|
+
/**
|
|
410
|
+
* @param {stack} {url, results}
|
|
411
|
+
* @returns {Promise<void>}
|
|
412
|
+
*/
|
|
413
|
+
async function singleStack({ url, results }) {
|
|
414
|
+
const wappalyzer = await new Wappalyzer;
|
|
415
|
+
|
|
416
|
+
let result;
|
|
417
|
+
try {
|
|
418
|
+
await wappalyzer.init();
|
|
419
|
+
|
|
420
|
+
const { technologies } = await wappalyzer.open(url).analyze();
|
|
421
|
+
|
|
422
|
+
result = technologies.map(({
|
|
423
|
+
name,
|
|
424
|
+
website,
|
|
425
|
+
categories
|
|
426
|
+
}) => ({
|
|
427
|
+
techName: name,
|
|
428
|
+
techWebsite: website,
|
|
429
|
+
techCategories: categories.map(({ name }) => name).join(", ")
|
|
430
|
+
}));
|
|
431
|
+
} catch (err) { results(err); }
|
|
432
|
+
|
|
433
|
+
await wappalyzer.destroy();
|
|
434
|
+
results(result);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
*
|
|
439
|
+
* @param {twitch} { query, token, clientID, results }
|
|
440
|
+
* @returns {Promise<void>}
|
|
441
|
+
*/
|
|
442
|
+
async function twitchInfo({ query, token, clientID, results }) {
|
|
443
|
+
try {
|
|
444
|
+
const { data: twitchData } = await axios.get(`https://api.twitch.tv/helix/users?login=${query}`,
|
|
445
|
+
{
|
|
446
|
+
headers: {
|
|
447
|
+
Authorization: `Bearer ${token}`,
|
|
448
|
+
"Client-Id": clientID
|
|
449
|
+
}
|
|
450
|
+
});
|
|
451
|
+
|
|
452
|
+
results(twitchData.data);
|
|
453
|
+
} catch (err) { results(err); }
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
// exports
|
|
457
|
+
export {
|
|
458
|
+
animeSearch,
|
|
459
|
+
bitlyInfo,
|
|
460
|
+
cryptoMarket,
|
|
461
|
+
githubInfo,
|
|
462
|
+
controllerInfo,
|
|
463
|
+
osDetail,
|
|
464
|
+
diskInfo,
|
|
465
|
+
displayInfo,
|
|
466
|
+
biosInfo,
|
|
467
|
+
cpuInfo,
|
|
468
|
+
ramMemInfo,
|
|
469
|
+
movieDB,
|
|
470
|
+
multipleStack,
|
|
471
|
+
pageSpeed,
|
|
472
|
+
singleStack,
|
|
473
|
+
twitchInfo
|
|
474
|
+
};
|
package/models/aboutTables.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// table model module
|
|
2
|
-
|
|
2
|
+
import { Table } from "console-table-printer";
|
|
3
3
|
|
|
4
4
|
// youtube model
|
|
5
5
|
const youtubeDevTable = new Table({
|
|
@@ -17,22 +17,6 @@ const youtubeDevTable = new Table({
|
|
|
17
17
|
]
|
|
18
18
|
});
|
|
19
19
|
|
|
20
|
-
// nonolive model
|
|
21
|
-
const nonoliveTable = new Table({
|
|
22
|
-
columns: [
|
|
23
|
-
{
|
|
24
|
-
name: "nonoID",
|
|
25
|
-
alignment: "left",
|
|
26
|
-
color: "red"
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
name: "name",
|
|
30
|
-
alignment: "left",
|
|
31
|
-
color: "yellow"
|
|
32
|
-
}
|
|
33
|
-
]
|
|
34
|
-
});
|
|
35
|
-
|
|
36
20
|
// ideas model
|
|
37
21
|
const ideasTable = new Table({
|
|
38
22
|
columns: [
|
|
@@ -50,8 +34,7 @@ const ideasTable = new Table({
|
|
|
50
34
|
});
|
|
51
35
|
|
|
52
36
|
// exports tables
|
|
53
|
-
|
|
37
|
+
export {
|
|
54
38
|
youtubeDevTable,
|
|
55
|
-
nonoliveTable,
|
|
56
39
|
ideasTable
|
|
57
40
|
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Table } from "console-table-printer";
|
|
2
|
+
|
|
3
|
+
const animeList = new Table({
|
|
4
|
+
columns: [
|
|
5
|
+
{
|
|
6
|
+
name: "title",
|
|
7
|
+
alignment: "left",
|
|
8
|
+
color: "green"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: "type",
|
|
12
|
+
alignment: "left",
|
|
13
|
+
color: "magenta"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: "episodes",
|
|
17
|
+
alignment: "left",
|
|
18
|
+
color: "magenta"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: "debutDate",
|
|
22
|
+
alignment: "left",
|
|
23
|
+
color: "magenta"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "finalDate",
|
|
27
|
+
alignment: "left",
|
|
28
|
+
color: "green"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
export default animeList;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Table } from "console-table-printer";
|
|
2
|
+
|
|
3
|
+
const coinTable = new Table({
|
|
4
|
+
columns: [
|
|
5
|
+
{
|
|
6
|
+
name: "symbol",
|
|
7
|
+
alignment: "left",
|
|
8
|
+
color: "green"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: "name",
|
|
12
|
+
alignment: "left",
|
|
13
|
+
color: "white_bold"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: "price",
|
|
17
|
+
alignment: "left",
|
|
18
|
+
color: "yellow"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: "priceChanged",
|
|
22
|
+
alignment: "left"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: "lastUpdated",
|
|
26
|
+
alignment: "left",
|
|
27
|
+
color: "magenta"
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
export default coinTable;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Table } from "console-table-printer";
|
|
2
|
+
|
|
3
|
+
const diskTables = new Table({
|
|
4
|
+
columns: [
|
|
5
|
+
{
|
|
6
|
+
name: "type",
|
|
7
|
+
alignment: "left",
|
|
8
|
+
color: "green"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: "name",
|
|
12
|
+
alignment: "left",
|
|
13
|
+
color: "green"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: "vendor",
|
|
17
|
+
alignment: "left",
|
|
18
|
+
color: "green"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: "diskSize",
|
|
22
|
+
alignment: "left",
|
|
23
|
+
color: "yellow"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "interfaceType",
|
|
27
|
+
alignment: "left",
|
|
28
|
+
color: "yellow"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const controllersTable = new Table({
|
|
34
|
+
columns: [
|
|
35
|
+
{
|
|
36
|
+
name: "model",
|
|
37
|
+
alignment: "left",
|
|
38
|
+
color: "green"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: "vendor",
|
|
42
|
+
alignment: "left",
|
|
43
|
+
color: "green"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "vramSize",
|
|
47
|
+
alignment: "left",
|
|
48
|
+
color: "yellow"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
const displayTables = new Table({
|
|
54
|
+
columns: [
|
|
55
|
+
{
|
|
56
|
+
name: "model",
|
|
57
|
+
alignment: "left",
|
|
58
|
+
color: "green"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "main",
|
|
62
|
+
alignment: "left",
|
|
63
|
+
color: "green"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "connection",
|
|
67
|
+
alignment: "left",
|
|
68
|
+
color: "cyan"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: "resolutionX",
|
|
72
|
+
alignment: "left",
|
|
73
|
+
color: "yellow"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: "resolutionY",
|
|
77
|
+
alignment: "left",
|
|
78
|
+
color: "yellow"
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
export {
|
|
84
|
+
diskTables,
|
|
85
|
+
controllersTable,
|
|
86
|
+
displayTables
|
|
87
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Table } from "console-table-printer";
|
|
2
|
+
|
|
3
|
+
const movieList = new Table({
|
|
4
|
+
columns: [
|
|
5
|
+
{
|
|
6
|
+
name: "title",
|
|
7
|
+
alignment: "left",
|
|
8
|
+
color: "green"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: "original_language",
|
|
12
|
+
alignment: "left",
|
|
13
|
+
color: "green"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: "popularity",
|
|
17
|
+
alignment: "left",
|
|
18
|
+
color: "yellow"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: "vote_average",
|
|
22
|
+
alignment: "left",
|
|
23
|
+
color: "yellow"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "release_date",
|
|
27
|
+
alignment: "left",
|
|
28
|
+
color: "yellow"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
export default movieList;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Table } from "console-table-printer";
|
|
2
|
+
|
|
3
|
+
const stackTable = new Table({
|
|
4
|
+
columns: [
|
|
5
|
+
{
|
|
6
|
+
name: "techName",
|
|
7
|
+
alignment: "left",
|
|
8
|
+
color: "cyan"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: "techWebsite",
|
|
12
|
+
alignment: "left",
|
|
13
|
+
color: "green"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: "techCategories",
|
|
17
|
+
alignment: "left",
|
|
18
|
+
color: "cyan"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
export default stackTable;
|