simple-ascii-chart-cli 2.0.0 → 2.2.0

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/dist/cli.js CHANGED
@@ -74,13 +74,9 @@ var argv = yargs
74
74
  type: 'boolean',
75
75
  description: 'Hide the x-axis if set to true',
76
76
  })
77
- .option('barChart', {
78
- type: 'boolean',
79
- description: 'Draw bar chart if set to true',
80
- })
81
- .option('horizontalBarChart', {
82
- type: 'boolean',
83
- description: 'Draw horizontal bar chart if set to true',
77
+ .option('mode', {
78
+ type: 'string',
79
+ description: 'Sets mode for the plot (e.g., "line", "bar", "horizontalBar", "point")',
84
80
  })
85
81
  .option('hideYAxis', {
86
82
  type: 'boolean',
@@ -127,7 +123,11 @@ var argv = yargs
127
123
  })
128
124
  .option('thresholds', {
129
125
  type: 'array',
130
- description: 'Array of threshold points or lines with optional color',
126
+ description: 'Array of threshold lines with optional color',
127
+ })
128
+ .option('points', {
129
+ type: 'array',
130
+ description: 'Array of points with optional color',
131
131
  })
132
132
  .option('legend', {
133
133
  type: 'string',
@@ -168,12 +168,12 @@ var execute = function (_a) {
168
168
  });
169
169
  };
170
170
  var prepareParams = function (_a) {
171
- var input = _a.input, options = _a.options, width = _a.width, height = _a.height, hideYAxis = _a.hideYAxis, hideXAxis = _a.hideXAxis, fillArea = _a.fillArea, title = _a.title, xLabel = _a.xLabel, yLabel = _a.yLabel, color = _a.color, axisCenter = _a.axisCenter, yRange = _a.yRange, showTickLabel = _a.showTickLabel, thresholds = _a.thresholds, legend = _a.legend, formatter = _a.formatter, lineFormatter = _a.lineFormatter, symbols = _a.symbols, barChart = _a.barChart, horizontalBarChart = _a.horizontalBarChart;
171
+ var input = _a.input, options = _a.options, width = _a.width, height = _a.height, hideYAxis = _a.hideYAxis, hideXAxis = _a.hideXAxis, fillArea = _a.fillArea, title = _a.title, xLabel = _a.xLabel, yLabel = _a.yLabel, color = _a.color, axisCenter = _a.axisCenter, yRange = _a.yRange, showTickLabel = _a.showTickLabel, thresholds = _a.thresholds, points = _a.points, legend = _a.legend, formatter = _a.formatter, lineFormatter = _a.lineFormatter, symbols = _a.symbols, mode = _a.mode;
172
172
  var currentOptions = options ? JSON.parse(options) : {};
173
173
  return {
174
174
  input: JSON.parse(input),
175
- options: __assign(__assign({}, currentOptions), { width: width, height: height, hideYAxis: hideYAxis, hideXAxis: hideXAxis, title: title, xLabel: xLabel, yLabel: yLabel, fillArea: fillArea, barChart: barChart, horizontalBarChart: horizontalBarChart, color: color ? (0, validators_1.validateColors)(color) : undefined, axisCenter: (0, validators_1.validateAxisCenter)(axisCenter), yRange: (0, validators_1.validateYRange)(yRange), // Validate and format yRange
176
- showTickLabel: showTickLabel, thresholds: (0, validators_1.validateThresholds)(thresholds), legend: (0, validators_1.validateLegend)(legend), formatter: (0, validators_1.validateFormatter)(formatter), lineFormatter: (0, validators_1.validateLineFormatter)(lineFormatter), symbols: (0, validators_1.validateSymbols)(symbols) }),
175
+ options: __assign(__assign({}, currentOptions), { width: width, height: height, hideYAxis: hideYAxis, hideXAxis: hideXAxis, title: title, xLabel: xLabel, yLabel: yLabel, fillArea: fillArea, mode: mode, color: color ? (0, validators_1.validateColors)(color) : undefined, axisCenter: (0, validators_1.validateAxisCenter)(axisCenter), yRange: (0, validators_1.validateYRange)(yRange), // Validate and format yRange
176
+ showTickLabel: showTickLabel, thresholds: (0, validators_1.validateThresholds)(thresholds), points: (0, validators_1.validatePoints)(points), legend: (0, validators_1.validateLegend)(legend), formatter: (0, validators_1.validateFormatter)(formatter), lineFormatter: (0, validators_1.validateLineFormatter)(lineFormatter), symbols: (0, validators_1.validateSymbols)(symbols) }),
177
177
  };
178
178
  };
179
179
  // Check if argv is a Promise to handle async parsing in yargs
@@ -1,8 +1,9 @@
1
- import { Colors, CustomSymbol, Formatter, Legend, LineFormatterArgs, MaybePoint, Symbols, Threshold } from 'simple-ascii-chart';
1
+ import { Colors, CustomSymbol, Formatter, GraphPoint, Legend, LineFormatterArgs, MaybePoint, Symbols, Threshold } from 'simple-ascii-chart';
2
2
  export declare const validateAxisCenter: (axisCenter: (string | number)[] | undefined) => MaybePoint;
3
3
  export declare const validateColors: (colors: (string | number)[] | string | undefined) => Colors | undefined;
4
4
  export declare const validateYRange: (yRange: (string | number)[] | undefined) => [number, number] | undefined;
5
5
  export declare const validateThresholds: (thresholds: any[] | undefined) => Threshold[] | undefined;
6
+ export declare const validatePoints: (points: any[] | undefined) => GraphPoint[] | undefined;
6
7
  export declare const validateLegend: (legend: string | undefined) => Legend | undefined;
7
8
  export declare const validateFormatter: (formatter: string | undefined) => Formatter | undefined;
8
9
  export declare const validateLineFormatter: (lineFormatter: string | undefined) => ((args: LineFormatterArgs) => CustomSymbol | CustomSymbol[]) | undefined;
@@ -16,7 +16,7 @@ var __read = (this && this.__read) || function (o, n) {
16
16
  return ar;
17
17
  };
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.validateSymbols = exports.validateLineFormatter = exports.validateFormatter = exports.validateLegend = exports.validateThresholds = exports.validateYRange = exports.validateColors = exports.validateAxisCenter = void 0;
19
+ exports.validateSymbols = exports.validateLineFormatter = exports.validateFormatter = exports.validateLegend = exports.validatePoints = exports.validateThresholds = exports.validateYRange = exports.validateColors = exports.validateAxisCenter = void 0;
20
20
  // Prepares parameters by parsing JSON inputs and merging with optional settings
21
21
  // Define ANSI color types for validation
22
22
  var ANSI_COLORS = new Set([
@@ -82,6 +82,24 @@ var validateThresholds = function (thresholds) {
82
82
  .filter(function (threshold) { return threshold !== undefined; });
83
83
  };
84
84
  exports.validateThresholds = validateThresholds;
85
+ // Helper function to validate and format thresholds as Threshold[]
86
+ var validatePoints = function (points) {
87
+ if (!Array.isArray(points))
88
+ return undefined;
89
+ return points
90
+ .map(function (item) {
91
+ if (typeof item === 'object' && item !== null) {
92
+ var point = item;
93
+ var x = point.x;
94
+ var y = point.y;
95
+ var color = typeof point.color === 'string' ? point.color : undefined;
96
+ return x !== undefined && y !== undefined ? { x: x, y: y, color: color } : undefined;
97
+ }
98
+ return undefined;
99
+ })
100
+ .filter(function (point) { return point !== undefined; });
101
+ };
102
+ exports.validatePoints = validatePoints;
85
103
  // Helper function to validate and parse legend as Legend
86
104
  var validateLegend = function (legend) {
87
105
  if (!legend)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "simple-ascii-chart-cli",
3
- "version": "2.0.0",
3
+ "version": "2.2.0",
4
4
  "description": "Simple ascii chart generator CLI",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -15,13 +15,13 @@
15
15
  "test:watch": "jest --watch",
16
16
  "build": "tsc -p tsconfig.build.json",
17
17
  "build:watch": "tsc -p tsconfig.build.json -w",
18
- "prepare": "npm test && npm run lint && npm run build"
18
+ "prepare": "npm run lint && npm run build && npm test"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@types/jest": "^29.5.14",
22
22
  "@types/node": "^22.15.17",
23
- "@typescript-eslint/eslint-plugin": "^8.32.0",
24
- "@typescript-eslint/parser": "^8.32.0",
23
+ "@typescript-eslint/eslint-plugin": "^8.32.1",
24
+ "@typescript-eslint/parser": "^8.32.1",
25
25
  "eslint": "^9.26.0",
26
26
  "eslint-config-prettier": "^10.1.5",
27
27
  "eslint-plugin-import": "^2.31.0",
@@ -52,7 +52,7 @@
52
52
  "dist/**/*"
53
53
  ],
54
54
  "dependencies": {
55
- "simple-ascii-chart": "^5.0.0",
55
+ "simple-ascii-chart": "^5.2.0",
56
56
  "yargs": "^17.7.2"
57
57
  }
58
58
  }