From 41af796414adf2e77e737a4d13fa8df65861c786 Mon Sep 17 00:00:00 2001 From: ClaudiaGivan Date: Tue, 18 Feb 2025 17:27:07 +0100 Subject: [PATCH] Build changeS: - replace export default with export for classes - change the entry point to the dist built file - preserve the names of the classes and functions --- package-lock.json | 72 +++++++------------ package.json | 4 +- src/graphs/ObservationLoggingService.js | 4 +- src/graphs/Renderer.js | 2 +- src/graphs/UIControlsRenderer.js | 4 +- src/graphs/cfd/CFDGraph.js | 14 ++-- src/graphs/cfd/CFDRenderer.js | 6 +- src/graphs/control-chart/ControlRenderer.js | 6 +- src/graphs/histogram/HistogramRenderer.js | 6 +- src/graphs/moving-range/MovingRangeGraph.js | 4 +- .../moving-range/MovingRangeRenderer.js | 5 +- src/graphs/scatterplot/ScatterplotGraph.js | 4 +- src/graphs/scatterplot/ScatterplotRenderer.js | 6 +- .../scatterplot/SimpleScatterplotRenderer.js | 6 +- src/graphs/work-item-age/WorkItemAgeGraph.js | 4 +- .../work-item-age/WorkItemAgeRenderer.js | 6 +- src/index.js | 24 +++---- test/graphs/cfd/CFDGraph.test.js | 2 +- test/graphs/cfd/CFDRenderer.test.js | 2 +- .../scatterplot/ScatterplotGraph.test.js | 2 +- webpack.config.cjs | 16 +++++ 21 files changed, 85 insertions(+), 114 deletions(-) diff --git a/package-lock.json b/package-lock.json index 470be69..9481567 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,7 @@ "babel-loader": "^9.2.1", "d3": "^7.9.0", "imports-loader": "^4.0.1", + "terser-webpack-plugin": "^5.3.11", "webpack": "^5.96.1", "webpack-cli": "^5.1.4" }, @@ -7952,9 +7953,10 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -7962,7 +7964,7 @@ "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", @@ -8262,15 +8264,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", + "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -8315,23 +8318,6 @@ "node": ">= 10.13.0" } }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/terser-webpack-plugin/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -14544,9 +14530,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", "requires": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -14782,15 +14768,15 @@ } }, "terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", + "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", "requires": { - "@jridgewell/trace-mapping": "^0.3.20", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "dependencies": { "has-flag": { @@ -14808,16 +14794,6 @@ "supports-color": "^8.0.0" } }, - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", diff --git a/package.json b/package.json index 32b38c0..c51c29b 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,8 @@ "name": "graphs-renderer", "version": "1.0.0", "description": "A library for rendering the graphs: CFD, Scatterplot and Histogram with d3.js", - "main": "./src/index.js", + "main": "./dist/graphs-renderer.js", + "module": "./dist/graphs-renderer.js", "type": "module", "scripts": { "build:dev": "webpack --mode development", @@ -24,6 +25,7 @@ "babel-loader": "^9.2.1", "d3": "^7.9.0", "imports-loader": "^4.0.1", + "terser-webpack-plugin": "^5.3.11", "webpack": "^5.96.1", "webpack-cli": "^5.1.4" }, diff --git a/src/graphs/ObservationLoggingService.js b/src/graphs/ObservationLoggingService.js index 854516d..40efd70 100644 --- a/src/graphs/ObservationLoggingService.js +++ b/src/graphs/ObservationLoggingService.js @@ -1,4 +1,4 @@ -class ObservationLoggingService { +export class ObservationLoggingService { observationsByService = { data: { rows: [] } }; btoaToken = ''; serviceId = ''; @@ -68,5 +68,3 @@ class ObservationLoggingService { return observation; } } - -export default ObservationLoggingService; diff --git a/src/graphs/Renderer.js b/src/graphs/Renderer.js index e5d6717..cb51b7c 100644 --- a/src/graphs/Renderer.js +++ b/src/graphs/Renderer.js @@ -3,7 +3,7 @@ import * as d3 from 'd3'; /** * Represents a generic graphs renderer */ -export default class Renderer { +export class Renderer { margin = { top: 30, right: 40, bottom: 70, left: 40 }; width = 1040 - this.margin.left - this.margin.right; height = 460 - this.margin.top - this.margin.bottom; diff --git a/src/graphs/UIControlsRenderer.js b/src/graphs/UIControlsRenderer.js index 486867a..873ad38 100644 --- a/src/graphs/UIControlsRenderer.js +++ b/src/graphs/UIControlsRenderer.js @@ -1,11 +1,11 @@ import { addDaysToDate, calculateDaysBetweenDates, readJsonFile } from '../utils/utils.js'; -import Renderer from './Renderer.js'; +import { Renderer } from './Renderer.js'; import * as d3 from 'd3'; /** * Extends Renderer to manage UI controls the graphs */ -export default class UIControlsRenderer extends Renderer { +export class UIControlsRenderer extends Renderer { selectedTimeRange; preventEventLoop; chartName; diff --git a/src/graphs/cfd/CFDGraph.js b/src/graphs/cfd/CFDGraph.js index 4031745..b076a63 100644 --- a/src/graphs/cfd/CFDGraph.js +++ b/src/graphs/cfd/CFDGraph.js @@ -3,7 +3,7 @@ import * as d3 from 'd3'; /** * Class representing a Cumulative Flow Diagram (CFD) Graph Data */ -class CFDGraph { +export class CFDGraph { /** * Creates a new CFDGraph instance. * @constructor @@ -83,7 +83,7 @@ class CFDGraph { date: currentDate, }; this.states.forEach((state, index) => { - dataEntry[state] = this.#getNoOfTicketsInState(this.states[index], currentTimestamp); + dataEntry[state] = this.getNoOfTicketsInState(this.states[index], currentTimestamp); }); dataSet.push(dataEntry); } @@ -100,14 +100,14 @@ class CFDGraph { * @param {number} timestamp - The timestamp at which to check the ticket state. * @returns {number} noOfTickets - The count of tickets in the specified state for the given timestamp. */ - #getNoOfTicketsInState(state, timestamp) { + getNoOfTicketsInState(state, timestamp) { return this.data.filter((d) => { if (!d[state]) { return false; } - let nextState = this.#getNextState(state); + let nextState = this.getNextState(state); while (nextState !== null && !d[nextState]) { - nextState = this.#getNextState(nextState); + nextState = this.getNextState(nextState); } if (!d[nextState]) { return d[state] <= timestamp; @@ -123,10 +123,8 @@ class CFDGraph { * @param {string} state - The current state of the ticket. * @returns {string|null} nextState - The next state in the ticket lifecycle, or null if there is no next state. */ - #getNextState(state) { + getNextState(state) { const index = this.states.indexOf(state); return index >= 0 && index < this.states.length - 1 ? this.states[index + 1] : null; } } - -export default CFDGraph; diff --git a/src/graphs/cfd/CFDRenderer.js b/src/graphs/cfd/CFDRenderer.js index b6db6d3..93eb1f9 100644 --- a/src/graphs/cfd/CFDRenderer.js +++ b/src/graphs/cfd/CFDRenderer.js @@ -1,12 +1,12 @@ import { calculateDaysBetweenDates, areDatesEqual, formatDateToLocalString } from '../../utils/utils.js'; -import UIControlsRenderer from '../UIControlsRenderer.js'; +import { UIControlsRenderer } from '../UIControlsRenderer.js'; import styles from '../tooltipStyles.module.css'; import * as d3 from 'd3'; /** * Class representing a Cumulative Flow Diagram (CFD) graph renderer */ -class CFDRenderer extends UIControlsRenderer { +export class CFDRenderer extends UIControlsRenderer { #colorPalette = ['#22c55e', '#bbf7d0', '#8b5cf6', '#ddd6fe', '#0ea5e9', '#bae6fd']; #statesColors; #leadTimeColor = 'yellow'; @@ -893,5 +893,3 @@ class CFDRenderer extends UIControlsRenderer { //endregion } - -export default CFDRenderer; diff --git a/src/graphs/control-chart/ControlRenderer.js b/src/graphs/control-chart/ControlRenderer.js index 30736fd..6f05706 100644 --- a/src/graphs/control-chart/ControlRenderer.js +++ b/src/graphs/control-chart/ControlRenderer.js @@ -1,7 +1,7 @@ -import ScatterplotRenderer from '../scatterplot/ScatterplotRenderer.js'; +import { ScatterplotRenderer } from '../scatterplot/ScatterplotRenderer.js'; import * as d3 from 'd3'; -class ControlRenderer extends ScatterplotRenderer { +export class ControlRenderer extends ScatterplotRenderer { color = '#0ea5e9'; timeScale = 'linear'; connectDots = false; @@ -114,5 +114,3 @@ class ControlRenderer extends ScatterplotRenderer { this.displayObservationMarkers(this.observations); } } - -export default ControlRenderer; diff --git a/src/graphs/histogram/HistogramRenderer.js b/src/graphs/histogram/HistogramRenderer.js index a8992a0..ab9fd61 100644 --- a/src/graphs/histogram/HistogramRenderer.js +++ b/src/graphs/histogram/HistogramRenderer.js @@ -1,10 +1,10 @@ -import Renderer from '../Renderer.js'; +import { Renderer } from '../Renderer.js'; import * as d3 from 'd3'; /** * Class representing a Histogram graph renderer */ -class HistogramRenderer extends Renderer { +export class HistogramRenderer extends Renderer { #color = '#0ea5e9'; #padding = 3; #binnedData; @@ -295,5 +295,3 @@ class HistogramRenderer extends Renderer { //endregion } - -export default HistogramRenderer; diff --git a/src/graphs/moving-range/MovingRangeGraph.js b/src/graphs/moving-range/MovingRangeGraph.js index d6fae0c..cf1011c 100644 --- a/src/graphs/moving-range/MovingRangeGraph.js +++ b/src/graphs/moving-range/MovingRangeGraph.js @@ -1,4 +1,4 @@ -class MovingRangeGraph { +export class MovingRangeGraph { dataSet = []; constructor(data) { @@ -30,5 +30,3 @@ class MovingRangeGraph { return Math.ceil(filteredData.reduce((acc, curr) => acc + curr.leadTime, 0) / filteredData.length); } } - -export default MovingRangeGraph; diff --git a/src/graphs/moving-range/MovingRangeRenderer.js b/src/graphs/moving-range/MovingRangeRenderer.js index 7b733b8..971ded2 100644 --- a/src/graphs/moving-range/MovingRangeRenderer.js +++ b/src/graphs/moving-range/MovingRangeRenderer.js @@ -1,7 +1,7 @@ -import ScatterplotRenderer from '../scatterplot/ScatterplotRenderer.js'; +import { ScatterplotRenderer } from '../scatterplot/ScatterplotRenderer.js'; import * as d3 from 'd3'; -class MovingRangeRenderer extends ScatterplotRenderer { +export class MovingRangeRenderer extends ScatterplotRenderer { color = '#0ea5e9'; timeScale = 'linear'; @@ -98,4 +98,3 @@ class MovingRangeRenderer extends ScatterplotRenderer { this.drawGraphLimits(this.currentYScale); } } -export default MovingRangeRenderer; diff --git a/src/graphs/scatterplot/ScatterplotGraph.js b/src/graphs/scatterplot/ScatterplotGraph.js index c32b103..b68be95 100644 --- a/src/graphs/scatterplot/ScatterplotGraph.js +++ b/src/graphs/scatterplot/ScatterplotGraph.js @@ -3,7 +3,7 @@ import { calculateDaysBetweenDates } from '../../utils/utils.js'; /** * Class representing a Scatterplot Graph Data */ -class ScatterplotGraph { +export class ScatterplotGraph { /** * Creates a new ScatterplotGraph instance. * @constructor @@ -91,5 +91,3 @@ class ScatterplotGraph { return dataSet; } } - -export default ScatterplotGraph; diff --git a/src/graphs/scatterplot/ScatterplotRenderer.js b/src/graphs/scatterplot/ScatterplotRenderer.js index f59e9ad..c5b8b9c 100644 --- a/src/graphs/scatterplot/ScatterplotRenderer.js +++ b/src/graphs/scatterplot/ScatterplotRenderer.js @@ -1,5 +1,5 @@ import { calculateDaysBetweenDates } from '../../utils/utils.js'; -import UIControlsRenderer from '../UIControlsRenderer.js'; +import { UIControlsRenderer } from '../UIControlsRenderer.js'; import styles from '../tooltipStyles.module.css'; import * as d3 from 'd3'; @@ -7,7 +7,7 @@ import * as d3 from 'd3'; /** * Class representing a Scatterplot graph renderer */ -class ScatterplotRenderer extends UIControlsRenderer { +export class ScatterplotRenderer extends UIControlsRenderer { color = '#0ea5e9'; currentXScale; currentYScale; @@ -654,5 +654,3 @@ class ScatterplotRenderer extends UIControlsRenderer { //endregion } - -export default ScatterplotRenderer; diff --git a/src/graphs/scatterplot/SimpleScatterplotRenderer.js b/src/graphs/scatterplot/SimpleScatterplotRenderer.js index cde22f1..838a453 100644 --- a/src/graphs/scatterplot/SimpleScatterplotRenderer.js +++ b/src/graphs/scatterplot/SimpleScatterplotRenderer.js @@ -1,9 +1,9 @@ -import ScatterplotRenderer from './ScatterplotRenderer.js'; +import { ScatterplotRenderer } from './ScatterplotRenderer.js'; /** * Class representing a Scatterplot graph renderer */ -class SimpleScatterplotRenderer extends ScatterplotRenderer { +export class SimpleScatterplotRenderer extends ScatterplotRenderer { currentXScale; currentYScale; timeScale = 'logarithmic'; @@ -84,5 +84,3 @@ class SimpleScatterplotRenderer extends ScatterplotRenderer { percentile1 && this.drawHorizontalLine(y, percentile4, 'red', 'p4', '95%'); } } - -export default SimpleScatterplotRenderer; diff --git a/src/graphs/work-item-age/WorkItemAgeGraph.js b/src/graphs/work-item-age/WorkItemAgeGraph.js index 4e53b27..b39db6a 100644 --- a/src/graphs/work-item-age/WorkItemAgeGraph.js +++ b/src/graphs/work-item-age/WorkItemAgeGraph.js @@ -3,7 +3,7 @@ import { calculateDaysBetweenDates } from '../../utils/utils.js'; /** * Class representing a Work Item Graph Data */ -class WorkItemAgeGraph { +export class WorkItemAgeGraph { constructor(data, states = ['analysis_active', 'analysis_done', 'in_progress', 'dev_complete', 'verification_start', 'delivered']) { this.data = data; this.states = states; @@ -46,5 +46,3 @@ class WorkItemAgeGraph { return ticketStates; } } - -export default WorkItemAgeGraph; diff --git a/src/graphs/work-item-age/WorkItemAgeRenderer.js b/src/graphs/work-item-age/WorkItemAgeRenderer.js index b7657b1..7e8a582 100644 --- a/src/graphs/work-item-age/WorkItemAgeRenderer.js +++ b/src/graphs/work-item-age/WorkItemAgeRenderer.js @@ -1,8 +1,8 @@ import * as d3 from 'd3'; import styles from '../tooltipStyles.module.css'; -import Renderer from '../Renderer.js'; +import { Renderer } from '../Renderer.js'; -class WorkItemAgeRenderer extends Renderer { +export class WorkItemAgeRenderer extends Renderer { color = '#0ea5e9'; xAxisLabel = 'Work item states'; yAxisLabel = 'Age(days)'; @@ -319,5 +319,3 @@ class WorkItemAgeRenderer extends Renderer { .attr('stroke-width', '2px'); } } - -export default WorkItemAgeRenderer; diff --git a/src/index.js b/src/index.js index 202d483..240d89d 100644 --- a/src/index.js +++ b/src/index.js @@ -1,17 +1,17 @@ -import CFDRenderer from './graphs/cfd/CFDRenderer.js'; -import CFDGraph from './graphs/cfd/CFDGraph.js'; -import ScatterplotGraph from './graphs/scatterplot/ScatterplotGraph.js'; -import ScatterplotRenderer from './graphs/scatterplot/ScatterplotRenderer.js'; -import SimpleScatterplotRenderer from './graphs/scatterplot/SimpleScatterplotRenderer.js'; -import MovingRangeGraph from './graphs/moving-range/MovingRangeGraph.js'; -import MovingRangeRenderer from './graphs/moving-range/MovingRangeRenderer.js'; -import ControlRenderer from './graphs/control-chart/ControlRenderer.js'; -import HistogramRenderer from './graphs/histogram/HistogramRenderer.js'; -import WorkItemAgeGraph from './graphs/work-item-age/WorkItemAgeGraph.js'; -import WorkItemAgeRenderer from './graphs/work-item-age/WorkItemAgeRenderer.js'; +import { CFDRenderer } from './graphs/cfd/CFDRenderer.js'; +import { CFDGraph } from './graphs/cfd/CFDGraph.js'; +import { ScatterplotGraph } from './graphs/scatterplot/ScatterplotGraph.js'; +import { ScatterplotRenderer } from './graphs/scatterplot/ScatterplotRenderer.js'; +import { SimpleScatterplotRenderer } from './graphs/scatterplot/SimpleScatterplotRenderer.js'; +import { MovingRangeGraph } from './graphs/moving-range/MovingRangeGraph.js'; +import { MovingRangeRenderer } from './graphs/moving-range/MovingRangeRenderer.js'; +import { ControlRenderer } from './graphs/control-chart/ControlRenderer.js'; +import { HistogramRenderer } from './graphs/histogram/HistogramRenderer.js'; +import { WorkItemAgeGraph } from './graphs/work-item-age/WorkItemAgeGraph.js'; +import { WorkItemAgeRenderer } from './graphs/work-item-age/WorkItemAgeRenderer.js'; import { eventBus } from './utils/EventBus.js'; import { processServiceData } from './data-processor.js'; -import ObservationLoggingService from './graphs/ObservationLoggingService.js'; +import { ObservationLoggingService } from './graphs/ObservationLoggingService.js'; export { CFDGraph, diff --git a/test/graphs/cfd/CFDGraph.test.js b/test/graphs/cfd/CFDGraph.test.js index 77e276e..1867f7b 100644 --- a/test/graphs/cfd/CFDGraph.test.js +++ b/test/graphs/cfd/CFDGraph.test.js @@ -1,4 +1,4 @@ -import CFDGraph from '../../../src/graphs/cfd/CFDGraph.js'; +import {CFDGraph} from '../../../src/graphs/cfd/CFDGraph.js'; import graphsTestData from '../../testData/GraphTestData.js'; import cfdGraphOutput from '../../testData/CFDGraphExpectedOutput.js'; diff --git a/test/graphs/cfd/CFDRenderer.test.js b/test/graphs/cfd/CFDRenderer.test.js index 9274bfa..4f1a70e 100644 --- a/test/graphs/cfd/CFDRenderer.test.js +++ b/test/graphs/cfd/CFDRenderer.test.js @@ -1,4 +1,4 @@ -import CFDRenderer from '../../../src/graphs/cfd/CFDRenderer.js'; +import {CFDRenderer} from '../../../src/graphs/cfd/CFDRenderer.js'; import cfdGraphOutput from '../../testData/CFDGraphExpectedOutput.js'; import metricsOutput from '../../testData/CFDRendererExpectedOutput.js'; diff --git a/test/graphs/scatterplot/ScatterplotGraph.test.js b/test/graphs/scatterplot/ScatterplotGraph.test.js index 6cde5f9..64dec93 100644 --- a/test/graphs/scatterplot/ScatterplotGraph.test.js +++ b/test/graphs/scatterplot/ScatterplotGraph.test.js @@ -1,4 +1,4 @@ -import ScatterplotGraph from '../../../src/graphs/scatterplot/ScatterplotGraph.js'; +import {ScatterplotGraph} from '../../../src/graphs/scatterplot/ScatterplotGraph.js'; import graphsTestData from '../../testData/GraphTestData.js'; import scatterplotGraphOutput from '../../testData/ScatterplotGraphExpectedOutput.js'; diff --git a/webpack.config.cjs b/webpack.config.cjs index 26ca7c8..a982f83 100644 --- a/webpack.config.cjs +++ b/webpack.config.cjs @@ -1,10 +1,25 @@ const path = require('path'); const { version } = require('./package.json'); const webpack = require('webpack'); +const TerserPlugin = require('terser-webpack-plugin'); module.exports = (env, argv) => { const isDevelopment = argv.mode === 'development'; return { + optimization: { + minimize: true, + minimizer: [ + new TerserPlugin({ + terserOptions: { + mangle: { + // This ensures class names are preserved. + keep_classnames: true, + }, + keep_fnames: true, + }, + }), + ], + }, entry: './src/index.js', devtool: isDevelopment ? 'source-map' : false, experiments: { @@ -22,6 +37,7 @@ module.exports = (env, argv) => { }, output: { filename: 'graphs-renderer.js', + // eslint-disable-next-line no-undef path: path.resolve(__dirname, 'dist'), // library: 'graphs-renderer', libraryTarget: 'module',