apify-cli 0.21.0-beta.89 → 0.21.0-beta.90
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/README.md +101 -59
- package/dist/.tsbuildinfo +1 -1
- package/dist/commands/datasets/info.d.ts +29 -0
- package/dist/commands/datasets/info.d.ts.map +1 -0
- package/dist/commands/datasets/info.js +124 -0
- package/dist/commands/datasets/info.js.map +1 -0
- package/dist/commands/key-value-stores/info.d.ts +27 -0
- package/dist/commands/key-value-stores/info.d.ts.map +1 -0
- package/dist/commands/key-value-stores/info.js +127 -0
- package/dist/commands/key-value-stores/info.js.map +1 -0
- package/dist/lib/commands/pretty-print-bytes.js +2 -2
- package/dist/lib/commands/responsive-table.d.ts +5 -1
- package/dist/lib/commands/responsive-table.d.ts.map +1 -1
- package/dist/lib/commands/responsive-table.js +23 -1
- package/dist/lib/commands/responsive-table.js.map +1 -1
- package/dist/lib/commands/storage-size.d.ts +6 -0
- package/dist/lib/commands/storage-size.d.ts.map +1 -0
- package/dist/lib/commands/storage-size.js +8 -0
- package/dist/lib/commands/storage-size.js.map +1 -0
- package/dist/typechecking.tsbuildinfo +1 -1
- package/oclif.manifest.json +304 -232
- package/package.json +1 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Task } from 'apify-client';
|
|
2
|
+
import { ApifyCommand } from '../../lib/apify_command.js';
|
|
3
|
+
export declare class DatasetsInfoCommand extends ApifyCommand<typeof DatasetsInfoCommand> {
|
|
4
|
+
static description: string;
|
|
5
|
+
static args: {
|
|
6
|
+
storeId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static enableJsonFlag: boolean;
|
|
9
|
+
run(): Promise<{
|
|
10
|
+
user: import("apify-client").User;
|
|
11
|
+
actor: import("apify-client").Actor | null;
|
|
12
|
+
run: import("apify-client").ActorRun | null;
|
|
13
|
+
task: Task | null;
|
|
14
|
+
id: string;
|
|
15
|
+
name?: string;
|
|
16
|
+
title?: string;
|
|
17
|
+
userId: string;
|
|
18
|
+
createdAt: Date;
|
|
19
|
+
modifiedAt: Date;
|
|
20
|
+
accessedAt: Date;
|
|
21
|
+
itemCount: number;
|
|
22
|
+
cleanItemCount: number;
|
|
23
|
+
actId?: string;
|
|
24
|
+
actRunId?: string;
|
|
25
|
+
stats: import("apify-client").DatasetStats;
|
|
26
|
+
fields: string[];
|
|
27
|
+
} | undefined>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/commands/datasets/info.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAa1D,qBAAa,mBAAoB,SAAQ,YAAY,CAAC,OAAO,mBAAmB,CAAC;IAChF,OAAgB,WAAW,SAAwC;IAEnE,OAAgB,IAAI;;MAKlB;IAEF,OAAgB,cAAc,UAAQ;IAEhC,GAAG;;;;;;;;;;;;;;;;;;;CAkIT"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { ApifyCommand } from '../../lib/apify_command.js';
|
|
4
|
+
import { prettyPrintBytes } from '../../lib/commands/pretty-print-bytes.js';
|
|
5
|
+
import { CompactMode, ResponsiveTable } from '../../lib/commands/responsive-table.js';
|
|
6
|
+
import { getUserPlanPricing } from '../../lib/commands/storage-size.js';
|
|
7
|
+
import { tryToGetDataset } from '../../lib/commands/storages.js';
|
|
8
|
+
import { error, simpleLog } from '../../lib/outputs.js';
|
|
9
|
+
import { getLoggedClientOrThrow, TimestampFormatter } from '../../lib/utils.js';
|
|
10
|
+
const consoleLikeTable = new ResponsiveTable({
|
|
11
|
+
allColumns: ['Row1', 'Row2'],
|
|
12
|
+
mandatoryColumns: ['Row1', 'Row2'],
|
|
13
|
+
});
|
|
14
|
+
export class DatasetsInfoCommand extends ApifyCommand {
|
|
15
|
+
static description = 'Shows information about a dataset.';
|
|
16
|
+
static args = {
|
|
17
|
+
storeId: Args.string({
|
|
18
|
+
description: 'The dataset store ID to print information about.',
|
|
19
|
+
required: true,
|
|
20
|
+
}),
|
|
21
|
+
};
|
|
22
|
+
static enableJsonFlag = true;
|
|
23
|
+
async run() {
|
|
24
|
+
const { storeId } = this.args;
|
|
25
|
+
const apifyClient = await getLoggedClientOrThrow();
|
|
26
|
+
const maybeStore = await tryToGetDataset(apifyClient, storeId);
|
|
27
|
+
if (!maybeStore) {
|
|
28
|
+
error({
|
|
29
|
+
message: `Key-value store with ID or name "${storeId}" not found.`,
|
|
30
|
+
});
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const { dataset: info } = maybeStore;
|
|
34
|
+
const [user, actor, run] = await Promise.all([
|
|
35
|
+
apifyClient
|
|
36
|
+
.user(info.userId)
|
|
37
|
+
.get()
|
|
38
|
+
.then((u) => u),
|
|
39
|
+
info.actId ? apifyClient.actor(info.actId).get() : Promise.resolve(undefined),
|
|
40
|
+
info.actRunId ? apifyClient.run(info.actRunId).get() : Promise.resolve(undefined),
|
|
41
|
+
]);
|
|
42
|
+
let task;
|
|
43
|
+
if (run?.actorTaskId) {
|
|
44
|
+
task = await apifyClient
|
|
45
|
+
.task(run.actorTaskId)
|
|
46
|
+
.get()
|
|
47
|
+
.catch(() => undefined);
|
|
48
|
+
}
|
|
49
|
+
if (this.flags.json) {
|
|
50
|
+
return {
|
|
51
|
+
...info,
|
|
52
|
+
user,
|
|
53
|
+
actor: actor || null,
|
|
54
|
+
run: run || null,
|
|
55
|
+
task: task || null,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const fullSizeInBytes = info.stats?.storageBytes || 0;
|
|
59
|
+
const readCount = info.stats?.readCount || 0;
|
|
60
|
+
const writeCount = info.stats?.writeCount || 0;
|
|
61
|
+
const cleanCount = (info.cleanItemCount || 0).toLocaleString('en-US');
|
|
62
|
+
const totalCount = (info.itemCount || 0).toLocaleString('en-US');
|
|
63
|
+
const operationsParts = [
|
|
64
|
+
`${chalk.bold(readCount.toLocaleString('en-US'))} ${chalk.gray(this.pluralString(readCount, 'read', 'reads'))}`,
|
|
65
|
+
`${chalk.bold(writeCount.toLocaleString('en-US'))} ${chalk.gray(this.pluralString(writeCount, 'write', 'writes'))}`,
|
|
66
|
+
];
|
|
67
|
+
let row3 = `Items: ${chalk.bold(cleanCount)} ${chalk.gray('clean')} / ${chalk.bold(totalCount)} ${chalk.gray('total')}\nOperations: ${operationsParts.join(' / ')}`;
|
|
68
|
+
if (user.plan) {
|
|
69
|
+
const pricing = getUserPlanPricing(user.plan);
|
|
70
|
+
if (pricing) {
|
|
71
|
+
const storeCostPerHour = pricing.KEY_VALUE_STORE_TIMED_STORAGE_GBYTE_HOURS * (fullSizeInBytes / 1000 ** 3);
|
|
72
|
+
const storeCostPerMonth = storeCostPerHour * 24 * 30;
|
|
73
|
+
const usdAmountString = storeCostPerMonth > 1 ? `$${storeCostPerMonth.toFixed(2)}` : `$${storeCostPerHour.toFixed(3)}`;
|
|
74
|
+
row3 += `\nStorage size: ${prettyPrintBytes({ bytes: fullSizeInBytes, shortBytes: true, precision: 1 })} / ${chalk.gray(`${usdAmountString} per month`)}`;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
row3 += `\nStorage size: ${prettyPrintBytes({ bytes: fullSizeInBytes, shortBytes: true, precision: 1 })}`;
|
|
79
|
+
}
|
|
80
|
+
const row1 = [
|
|
81
|
+
`Dataset ID: ${chalk.bgGray(info.id)}`,
|
|
82
|
+
`Name: ${info.name ? chalk.bgGray(info.name) : chalk.bold(chalk.italic('Unnamed'))}`,
|
|
83
|
+
`Created: ${chalk.bold(TimestampFormatter.display(info.createdAt))}`,
|
|
84
|
+
`Modified: ${chalk.bold(TimestampFormatter.display(info.modifiedAt))}`,
|
|
85
|
+
].join('\n');
|
|
86
|
+
let runInfo = chalk.bold('—');
|
|
87
|
+
if (info.actRunId) {
|
|
88
|
+
if (run) {
|
|
89
|
+
runInfo = chalk.bgBlue(run.id);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
runInfo = chalk.italic(chalk.gray('Run removed'));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
let actorInfo = chalk.bold('—');
|
|
96
|
+
if (actor) {
|
|
97
|
+
actorInfo = chalk.blue(actor.title || actor.name);
|
|
98
|
+
}
|
|
99
|
+
let taskInfo = chalk.bold('—');
|
|
100
|
+
if (task) {
|
|
101
|
+
taskInfo = chalk.blue(task.title || task.name);
|
|
102
|
+
}
|
|
103
|
+
const row2 = [`Run: ${runInfo}`, `Actor: ${actorInfo}`, `Task: ${taskInfo}`].join('\n');
|
|
104
|
+
consoleLikeTable.pushRow({
|
|
105
|
+
Row1: row1,
|
|
106
|
+
Row2: row2,
|
|
107
|
+
});
|
|
108
|
+
const rendered = consoleLikeTable.render(CompactMode.NoLines);
|
|
109
|
+
const rows = rendered.split('\n').map((row) => row.trim());
|
|
110
|
+
// Remove the first row
|
|
111
|
+
rows.shift();
|
|
112
|
+
const message = [
|
|
113
|
+
`${chalk.bold(info.name || chalk.italic('Unnamed'))}`,
|
|
114
|
+
`${chalk.gray(info.name ? `${user.username}/${info.name}` : info.id)} ${chalk.gray('Owned by')} ${chalk.blue(user.username)}`,
|
|
115
|
+
'',
|
|
116
|
+
rows.join('\n'),
|
|
117
|
+
'',
|
|
118
|
+
row3,
|
|
119
|
+
].join('\n');
|
|
120
|
+
simpleLog({ message, stdout: true });
|
|
121
|
+
return undefined;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/datasets/info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Task } from 'apify-client';
|
|
2
|
+
import { ApifyCommand } from '../../lib/apify_command.js';
|
|
3
|
+
export declare class KeyValueStoresInfoCommand extends ApifyCommand<typeof KeyValueStoresInfoCommand> {
|
|
4
|
+
static description: string;
|
|
5
|
+
static hiddenAliases: string[];
|
|
6
|
+
static args: {
|
|
7
|
+
storeId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static enableJsonFlag: boolean;
|
|
10
|
+
run(): Promise<{
|
|
11
|
+
user: import("apify-client").User;
|
|
12
|
+
actor: import("apify-client").Actor | null;
|
|
13
|
+
run: import("apify-client").ActorRun | null;
|
|
14
|
+
task: Task | null;
|
|
15
|
+
id: string;
|
|
16
|
+
name?: string;
|
|
17
|
+
title?: string;
|
|
18
|
+
userId: string;
|
|
19
|
+
createdAt: Date;
|
|
20
|
+
modifiedAt: Date;
|
|
21
|
+
accessedAt: Date;
|
|
22
|
+
actId?: string;
|
|
23
|
+
actRunId?: string;
|
|
24
|
+
stats?: import("apify-client").KeyValueStoreStats;
|
|
25
|
+
} | undefined>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/commands/key-value-stores/info.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAa1D,qBAAa,yBAA0B,SAAQ,YAAY,CAAC,OAAO,yBAAyB,CAAC;IAC5F,OAAgB,WAAW,SAAgD;IAE3E,OAAgB,aAAa,WAAgB;IAE7C,OAAgB,IAAI;;MAKlB;IAEF,OAAgB,cAAc,UAAQ;IAEhC,GAAG;;;;;;;;;;;;;;;;CAoIT"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { ApifyCommand } from '../../lib/apify_command.js';
|
|
4
|
+
import { prettyPrintBytes } from '../../lib/commands/pretty-print-bytes.js';
|
|
5
|
+
import { CompactMode, ResponsiveTable } from '../../lib/commands/responsive-table.js';
|
|
6
|
+
import { getUserPlanPricing } from '../../lib/commands/storage-size.js';
|
|
7
|
+
import { tryToGetKeyValueStore } from '../../lib/commands/storages.js';
|
|
8
|
+
import { error, simpleLog } from '../../lib/outputs.js';
|
|
9
|
+
import { getLoggedClientOrThrow, TimestampFormatter } from '../../lib/utils.js';
|
|
10
|
+
const consoleLikeTable = new ResponsiveTable({
|
|
11
|
+
allColumns: ['Row1', 'Row2'],
|
|
12
|
+
mandatoryColumns: ['Row1', 'Row2'],
|
|
13
|
+
});
|
|
14
|
+
export class KeyValueStoresInfoCommand extends ApifyCommand {
|
|
15
|
+
static description = 'Shows information about a key-value store.';
|
|
16
|
+
static hiddenAliases = ['kvs:info'];
|
|
17
|
+
static args = {
|
|
18
|
+
storeId: Args.string({
|
|
19
|
+
description: 'The key-value store ID to print information about.',
|
|
20
|
+
required: true,
|
|
21
|
+
}),
|
|
22
|
+
};
|
|
23
|
+
static enableJsonFlag = true;
|
|
24
|
+
async run() {
|
|
25
|
+
const { storeId } = this.args;
|
|
26
|
+
const apifyClient = await getLoggedClientOrThrow();
|
|
27
|
+
const maybeStore = await tryToGetKeyValueStore(apifyClient, storeId);
|
|
28
|
+
if (!maybeStore) {
|
|
29
|
+
error({
|
|
30
|
+
message: `Key-value store with ID or name "${storeId}" not found.`,
|
|
31
|
+
});
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const { keyValueStore: info } = maybeStore;
|
|
35
|
+
const [user, actor, run] = await Promise.all([
|
|
36
|
+
apifyClient
|
|
37
|
+
.user(info.userId)
|
|
38
|
+
.get()
|
|
39
|
+
.then((u) => u),
|
|
40
|
+
info.actId ? apifyClient.actor(info.actId).get() : Promise.resolve(undefined),
|
|
41
|
+
info.actRunId ? apifyClient.run(info.actRunId).get() : Promise.resolve(undefined),
|
|
42
|
+
]);
|
|
43
|
+
let task;
|
|
44
|
+
if (run?.actorTaskId) {
|
|
45
|
+
task = await apifyClient
|
|
46
|
+
.task(run.actorTaskId)
|
|
47
|
+
.get()
|
|
48
|
+
.catch(() => undefined);
|
|
49
|
+
}
|
|
50
|
+
if (this.flags.json) {
|
|
51
|
+
return {
|
|
52
|
+
...info,
|
|
53
|
+
user,
|
|
54
|
+
actor: actor || null,
|
|
55
|
+
run: run || null,
|
|
56
|
+
task: task || null,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const fullSizeInBytes = info.stats?.storageBytes || 0;
|
|
60
|
+
const readCount = info.stats?.readCount || 0;
|
|
61
|
+
const writeCount = info.stats?.writeCount || 0;
|
|
62
|
+
const deleteCount = info.stats?.deleteCount || 0;
|
|
63
|
+
const listCount = info.stats?.listCount || 0;
|
|
64
|
+
const operationsParts = [
|
|
65
|
+
`${chalk.bold(readCount.toLocaleString('en-US'))} ${chalk.gray(this.pluralString(readCount, 'read', 'reads'))}`,
|
|
66
|
+
`${chalk.bold(writeCount.toLocaleString('en-US'))} ${chalk.gray(this.pluralString(writeCount, 'write', 'writes'))}`,
|
|
67
|
+
`${chalk.bold(deleteCount.toLocaleString('en-US'))} ${chalk.gray(this.pluralString(deleteCount, 'delete', 'deletes'))}`,
|
|
68
|
+
`${chalk.bold(listCount.toLocaleString('en-US'))} ${chalk.gray(this.pluralString(listCount, 'list', 'lists'))}`,
|
|
69
|
+
];
|
|
70
|
+
let row3 = `Operations: ${operationsParts.join(' / ')}`;
|
|
71
|
+
if (user.plan) {
|
|
72
|
+
const pricing = getUserPlanPricing(user.plan);
|
|
73
|
+
if (pricing) {
|
|
74
|
+
const storeCostPerHour = pricing.KEY_VALUE_STORE_TIMED_STORAGE_GBYTE_HOURS * (fullSizeInBytes / 1000 ** 3);
|
|
75
|
+
const storeCostPerMonth = storeCostPerHour * 24 * 30;
|
|
76
|
+
const usdAmountString = storeCostPerMonth > 1 ? `$${storeCostPerMonth.toFixed(2)}` : `$${storeCostPerHour.toFixed(3)}`;
|
|
77
|
+
row3 += `\nStorage size: ${prettyPrintBytes({ bytes: fullSizeInBytes, shortBytes: true, precision: 1 })} / ${chalk.gray(`${usdAmountString} per month`)}`;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
row3 += `\nStorage size: ${prettyPrintBytes({ bytes: fullSizeInBytes, shortBytes: true, precision: 1 })} / ${chalk.gray('$unknown per month')}`;
|
|
82
|
+
}
|
|
83
|
+
const row1 = [
|
|
84
|
+
`Store ID: ${chalk.bgGray(info.id)}`,
|
|
85
|
+
`Name: ${info.name ? chalk.bgGray(info.name) : chalk.bold(chalk.italic('Unnamed'))}`,
|
|
86
|
+
`Created: ${chalk.bold(TimestampFormatter.display(info.createdAt))}`,
|
|
87
|
+
`Modified: ${chalk.bold(TimestampFormatter.display(info.modifiedAt))}`,
|
|
88
|
+
].join('\n');
|
|
89
|
+
let runInfo = chalk.bold('—');
|
|
90
|
+
if (info.actRunId) {
|
|
91
|
+
if (run) {
|
|
92
|
+
runInfo = chalk.bgBlue(run.id);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
runInfo = chalk.italic(chalk.gray('Run removed'));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
let actorInfo = chalk.bold('—');
|
|
99
|
+
if (actor) {
|
|
100
|
+
actorInfo = chalk.blue(actor.title || actor.name);
|
|
101
|
+
}
|
|
102
|
+
let taskInfo = chalk.bold('—');
|
|
103
|
+
if (task) {
|
|
104
|
+
taskInfo = chalk.blue(task.title || task.name);
|
|
105
|
+
}
|
|
106
|
+
const row2 = [`Run: ${runInfo}`, `Actor: ${actorInfo}`, `Task: ${taskInfo}`].join('\n');
|
|
107
|
+
consoleLikeTable.pushRow({
|
|
108
|
+
Row1: row1,
|
|
109
|
+
Row2: row2,
|
|
110
|
+
});
|
|
111
|
+
const rendered = consoleLikeTable.render(CompactMode.NoLines);
|
|
112
|
+
const rows = rendered.split('\n').map((row) => row.trim());
|
|
113
|
+
// Remove the first row
|
|
114
|
+
rows.shift();
|
|
115
|
+
const message = [
|
|
116
|
+
`${chalk.bold(info.name || chalk.italic('Unnamed'))}`,
|
|
117
|
+
`${chalk.gray(info.name ? `${user.username}/${info.name}` : info.id)} ${chalk.gray('Owned by')} ${chalk.blue(user.username)}`,
|
|
118
|
+
'',
|
|
119
|
+
rows.join('\n'),
|
|
120
|
+
'',
|
|
121
|
+
row3,
|
|
122
|
+
].join('\n');
|
|
123
|
+
simpleLog({ message, stdout: true });
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/key-value-stores/info.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export function prettyPrintBytes({ bytes, shortBytes = false, colorFunc = noColo
|
|
|
7
7
|
}
|
|
8
8
|
return `${(0).toPrecision(precision)} Byte`;
|
|
9
9
|
}
|
|
10
|
-
const i = Math.floor(Math.log(bytes) / Math.log(
|
|
11
|
-
return `${(bytes /
|
|
10
|
+
const i = Math.floor(Math.log(bytes) / Math.log(1000));
|
|
11
|
+
return `${(bytes / 1000 ** i).toFixed(precision)} ${colorFunc(sizes[i])}`;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=pretty-print-bytes.js.map
|
|
@@ -10,7 +10,11 @@ export declare enum CompactMode {
|
|
|
10
10
|
/**
|
|
11
11
|
* A version of the compact table that looks akin to the web console (fewer separators, but with lines between rows)
|
|
12
12
|
*/
|
|
13
|
-
WebLikeCompact = 1
|
|
13
|
+
WebLikeCompact = 1,
|
|
14
|
+
/**
|
|
15
|
+
* Straight up no lines, just two spaces in the middle of columns
|
|
16
|
+
*/
|
|
17
|
+
NoLines = 2
|
|
14
18
|
}
|
|
15
19
|
/** @internal */
|
|
16
20
|
export declare const kSkipColumn: unique symbol;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responsive-table.d.ts","sourceRoot":"","sources":["../../../src/lib/commands/responsive-table.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"responsive-table.d.ts","sourceRoot":"","sources":["../../../src/lib/commands/responsive-table.ts"],"names":[],"mappings":"AA2CA,oBAAY,WAAW;IACtB;;OAEG;IACH,IAAI,KAAK;IACT;;OAEG;IACH,WAAW,IAAI;IACf;;OAEG;IACH,cAAc,IAAI;IAClB;;OAEG;IACH,OAAO,IAAI;CACX;AAeD,gBAAgB;AAChB,eAAO,MAAM,WAAW,eAAwD,CAAC;AAEjF,MAAM,WAAW,sBAAsB,CAAC,UAAU,SAAS,MAAM;IAChE;;OAEG;IACH,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB;;;OAGG;IACH,gBAAgB,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IACxC;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IAC5E;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IACtC;;OAEG;IACH,mBAAmB,CAAC,EAAE;QACrB,KAAK,EAAE;aACL,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;gBACjC,KAAK,CAAC,EAAE,MAAM,CAAC;gBACf;;mBAEG;gBACH,SAAS,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;aAChC;SACD,CAAC;KACF,CAAC;CACF;AAED,qBAAa,eAAe,CAAC,UAAU,SAAS,MAAM;IACrD,OAAO,CAAC,OAAO,CAAqC;IAEpD,OAAO,CAAC,IAAI,CAAyD;gBAEzD,OAAO,EAAE,sBAAsB,CAAC,UAAU,CAAC;IAIvD,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,WAAW,CAAC;IAI7D,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM;IAyDxC,MAAM,CAAC,eAAe;CAGtB"}
|
|
@@ -19,6 +19,23 @@ const compactModeCharsWithLineSeparator = {
|
|
|
19
19
|
'mid-mid': '─',
|
|
20
20
|
'right-mid': '┤',
|
|
21
21
|
};
|
|
22
|
+
const noSeparators = {
|
|
23
|
+
left: '',
|
|
24
|
+
right: '',
|
|
25
|
+
mid: '',
|
|
26
|
+
'bottom-left': '',
|
|
27
|
+
'bottom-mid': '',
|
|
28
|
+
'bottom-right': '',
|
|
29
|
+
top: '',
|
|
30
|
+
'top-left': '',
|
|
31
|
+
'top-mid': '',
|
|
32
|
+
'top-right': '',
|
|
33
|
+
'left-mid': '',
|
|
34
|
+
'mid-mid': '',
|
|
35
|
+
'right-mid': '',
|
|
36
|
+
bottom: '',
|
|
37
|
+
middle: ' ',
|
|
38
|
+
};
|
|
22
39
|
export var CompactMode;
|
|
23
40
|
(function (CompactMode) {
|
|
24
41
|
/**
|
|
@@ -33,11 +50,16 @@ export var CompactMode;
|
|
|
33
50
|
* A version of the compact table that looks akin to the web console (fewer separators, but with lines between rows)
|
|
34
51
|
*/
|
|
35
52
|
CompactMode[CompactMode["WebLikeCompact"] = 1] = "WebLikeCompact";
|
|
53
|
+
/**
|
|
54
|
+
* Straight up no lines, just two spaces in the middle of columns
|
|
55
|
+
*/
|
|
56
|
+
CompactMode[CompactMode["NoLines"] = 2] = "NoLines";
|
|
36
57
|
})(CompactMode || (CompactMode = {}));
|
|
37
58
|
const charMap = {
|
|
38
59
|
[CompactMode.None]: undefined,
|
|
39
60
|
[CompactMode.VeryCompact]: compactModeChars,
|
|
40
61
|
[CompactMode.WebLikeCompact]: compactModeCharsWithLineSeparator,
|
|
62
|
+
[CompactMode.NoLines]: noSeparators,
|
|
41
63
|
};
|
|
42
64
|
function generateHeaderColors(length) {
|
|
43
65
|
return Array.from({ length }, () => 'cyan');
|
|
@@ -57,7 +79,7 @@ export class ResponsiveTable {
|
|
|
57
79
|
render(compactMode) {
|
|
58
80
|
const rawHead = ResponsiveTable.isSmallTerminal() ? this.options.mandatoryColumns : this.options.allColumns;
|
|
59
81
|
const headColors = generateHeaderColors(rawHead.length);
|
|
60
|
-
const compact = compactMode === CompactMode.VeryCompact;
|
|
82
|
+
const compact = compactMode === CompactMode.VeryCompact || compactMode === CompactMode.NoLines;
|
|
61
83
|
const chars = charMap[compactMode];
|
|
62
84
|
const colAligns = [];
|
|
63
85
|
const head = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responsive-table.js","sourceRoot":"","sources":["../../../src/lib/commands/responsive-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,YAAY,CAAC;AAElD,MAAM,gBAAgB,GAAsC;IAC3D,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,EAAE;IACf,MAAM,EAAE,GAAG;IACX,SAAS,EAAE,GAAG;IACd,YAAY,EAAE,GAAG;CACjB,CAAC;AAEF,MAAM,iCAAiC,GAAsC;IAC5E,MAAM,EAAE,GAAG;IACX,SAAS,EAAE,GAAG;IACd,YAAY,EAAE,GAAG;IACjB,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,GAAG;IAEX,UAAU,EAAE,GAAG;IACf,GAAG,EAAE,GAAG;IACR,SAAS,EAAE,GAAG;IACd,WAAW,EAAE,GAAG;CAChB,CAAC;AAEF,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"responsive-table.js","sourceRoot":"","sources":["../../../src/lib/commands/responsive-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-size.d.ts","sourceRoot":"","sources":["../../../src/lib/commands/storage-size.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ;uCAQhB,MAAM;+CACE,MAAM;SAElD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-size.js","sourceRoot":"","sources":["../../../src/lib/commands/storage-size.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,QAAkB;IACpD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAEzD,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,gCAAgC,CAGxD,CAAC;AACV,CAAC"}
|