Skip to content

Commit

Permalink
Merge pull request #87 from sgratzl/release/v4.4.2
Browse files Browse the repository at this point in the history
Release v4.4.2
  • Loading branch information
sgratzl authored Sep 29, 2024
2 parents f4bcccc + 6c92d03 commit aceb79d
Show file tree
Hide file tree
Showing 17 changed files with 2,911 additions and 7,028 deletions.
25 changes: 0 additions & 25 deletions .eslintrc.cjs

This file was deleted.

19 changes: 19 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
version: 2

updates:
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'monthly'
target-branch: 'dev'
labels:
- 'dependencies'
- 'chore'
- package-ecosystem: 'npm'
directory: '/'
schedule:
interval: 'monthly'
target-branch: 'dev'
labels:
- 'dependencies'
- 'chore'
894 changes: 0 additions & 894 deletions .yarn/releases/yarn-4.2.2.cjs

This file was deleted.

925 changes: 925 additions & 0 deletions .yarn/releases/yarn-4.5.0.cjs

Large diffs are not rendered by default.

7 changes: 1 addition & 6 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1 @@
packageExtensions:
eslint-module-utils@*:
dependencies:
eslint-import-resolver-node: "*"

yarnPath: .yarn/releases/yarn-4.2.2.cjs
yarnPath: .yarn/releases/yarn-4.5.0.cjs
61 changes: 61 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// @ts-check

import eslint from '@eslint/js';
import tseslint from 'typescript-eslint';
import prettier from 'eslint-plugin-prettier';

export default tseslint.config(eslint.configs.recommended, ...tseslint.configs.recommended, {
plugins: { prettier },
rules: {
'@typescript-eslint/no-explicit-any': 'off',
'max-classes-per-file': 'off',
'no-underscore-dangle': 'off',
'import/extensions': 'off',
},
});

// import path from "node:path";
// import { fileURLToPath } from "node:url";
// import js from "@eslint/js";
// import { FlatCompat } from "@eslint/eslintrc";

// const __filename = fileURLToPath(import.meta.url);
// const __dirname = path.dirname(__filename);
// const compat = new FlatCompat({
// baseDirectory: __dirname,
// recommendedConfig: js.configs.recommended,
// allConfig: js.configs.all
// });

// export default [...fixupConfigRules(compat.extends(
// "airbnb-typescript",
// "react-app",
// "plugin:prettier/recommended",
// "prettier",
// )), {
// plugins: {
// prettier: fixupPluginRules(prettier),
// },

// languageOptions: {
// ecmaVersion: 5,
// sourceType: "script",

// parserOptions: {
// project: "./tsconfig.eslint.json",
// },
// },

// settings: {
// react: {
// version: "99.99.99",
// },
// },

// rules: {
// "@typescript-eslint/no-explicit-any": "off",
// "max-classes-per-file": "off",
// "no-underscore-dangle": "off",
// "import/extensions": "off",
// },
// }];
6 changes: 0 additions & 6 deletions jest.config.cjs

This file was deleted.

70 changes: 29 additions & 41 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "chartjs-chart-wordcloud",
"description": "Chart.js module for word clouds",
"version": "4.4.1",
"version": "4.4.2",
"author": {
"name": "Samuel Gratzl",
"email": "[email protected]",
Expand Down Expand Up @@ -54,65 +54,53 @@
],
"devDependencies": {
"@chiogen/rollup-plugin-terser": "^7.1.3",
"@rollup/plugin-commonjs": "^26.0.1",
"@rollup/plugin-node-resolve": "^15.2.3",
"@rollup/plugin-replace": "^5.0.7",
"@rollup/plugin-typescript": "^11.1.6",
"@types/jest": "^29.5.12",
"@eslint/js": "^9.11.1",
"@rollup/plugin-commonjs": "^28.0.0",
"@rollup/plugin-node-resolve": "^15.3.0",
"@rollup/plugin-replace": "^6.0.1",
"@rollup/plugin-typescript": "^12.1.0",
"@types/jest-image-snapshot": "^6.4.0",
"@types/node": "^20.14.2",
"@typescript-eslint/eslint-plugin": "^7.12.0",
"@typescript-eslint/parser": "^7.12.0",
"@yarnpkg/sdks": "^3.1.2",
"@types/node": "^22.7.4",
"@yarnpkg/sdks": "^3.2.0",
"canvas": "^2.11.2",
"canvas-5-polyfill": "^0.1.5",
"chart.js": "^4.4.3",
"eslint": "^8.57.0",
"eslint-config-airbnb-typescript": "^18.0.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-react-app": "^7.0.1",
"eslint-plugin-flowtype": "^8.0.3",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsx-a11y": "^6.8.0",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-react": "^7.34.2",
"eslint-plugin-react-hooks": "^4.6.2",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"chart.js": "^4.4.4",
"eslint": "^9.11.1",
"eslint-plugin-prettier": "^5.2.1",
"jest-image-snapshot": "^6.4.0",
"prettier": "^3.3.1",
"rimraf": "^5.0.7",
"rollup": "^4.18.0",
"jsdom": "^25.0.1",
"prettier": "^3.3.3",
"rimraf": "^6.0.1",
"rollup": "^4.22.5",
"rollup-plugin-cleanup": "^3.2.1",
"rollup-plugin-dts": "^6.1.1",
"ts-jest": "^29.1.4",
"tslib": "^2.6.3",
"typedoc": "^0.25.13",
"typedoc-plugin-markdown": "^4.0.3",
"typedoc-vitepress-theme": "^1.0.0",
"typescript": "^5.4.5",
"vitepress": "^1.2.3",
"vue": "^3.4.27",
"ts-jest": "^29.2.5",
"tslib": "^2.7.0",
"typedoc": "^0.26.7",
"typedoc-plugin-markdown": "^4.2.8",
"typedoc-vitepress-theme": "^1.0.1",
"typescript": "^5.6.2",
"typescript-eslint": "^8.7.0",
"vite": "^5.4.8",
"vitepress": "^1.3.4",
"vitest": "^2.1.1",
"vue": "^3.5.10",
"vue-chartjs": "^5.3.1"
},
"resolutions": {
"@typescript-eslint/eslint-plugin": "^7.2.0",
"@typescript-eslint/parser": "^7.2.0"
},
"scripts": {
"clean": "rimraf --glob build node_modules \"*.tgz\" \"*.tsbuildinfo\"",
"compile": "tsc -b tsconfig.c.json",
"start": "yarn run watch",
"watch": "rollup -c -w",
"build": "rollup -c",
"test": "yarn node --experimental-vm-modules $(yarn bin jest) --passWithNoTests --detectOpenHandles --forceExit",
"test": "vitest --passWithNoTests",
"test:watch": "yarn run test --watch",
"test:coverage": "yarn run test --coverage",
"lint": "yarn run eslint && yarn run prettier",
"fix": "yarn run eslint:fix && yarn run prettier:write",
"prettier:write": "prettier \"*\" \"*/**\" --write",
"prettier": "prettier \"*\" \"*/**\" --check",
"eslint": "eslint src --ext .ts,.tsx --cache",
"eslint": "eslint src --cache",
"eslint:fix": "yarn run eslint --fix",
"prepare": "yarn run build",
"docs:api": "typedoc --options typedoc.json",
Expand All @@ -124,5 +112,5 @@
"@types/d3-cloud": "^1.2.9",
"d3-cloud": "^1.2.7"
},
"packageManager": "yarn@4.2.2"
"packageManager": "yarn@4.5.0"
}
14 changes: 7 additions & 7 deletions src/__tests__/createChart.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/// <reference types="jest" />
/// <reference types="node" />

import { expect } from 'vitest';
import { Chart, ChartConfiguration, defaults, ChartType, DefaultDataPoint } from 'chart.js';
import { toMatchImageSnapshot, MatchImageSnapshotOptions } from 'jest-image-snapshot';
import 'canvas-5-polyfill';
Expand All @@ -12,7 +12,7 @@ function toBuffer(canvas: HTMLCanvasElement) {
canvas.toBlob((b) => {
const file = new FileReader();
file.onload = () => resolve(Buffer.from(file.result as ArrayBuffer));
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion

file.readAsArrayBuffer(b!);
});
});
Expand All @@ -34,13 +34,13 @@ export default function createChart<
TYPE extends ChartType,
DATA extends unknown[] = DefaultDataPoint<TYPE>,
LABEL = string,
>(config: ChartConfiguration<TYPE, DATA, LABEL>, width = 300, height = 300): ChartHelper<TYPE, DATA, LABEL> {
>(config: ChartConfiguration<TYPE, DATA, LABEL>, width = 800, height = 600): ChartHelper<TYPE, DATA, LABEL> {
const canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
Object.assign(defaults.font, { family: 'Courier New' });
defaults.color = 'transparent';
// eslint-disable-next-line no-param-reassign
Object.assign(defaults.font, { family: "'Courier New', sans-serif" });
// defaults.color = 'transparent';

config.options = {
responsive: false,
animation: {
Expand All @@ -56,7 +56,7 @@ export default function createChart<
},
...(config.options || {}),
} as any;
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion

const ctx = canvas.getContext('2d')!;

const t = new Chart<TYPE, DATA, LABEL>(ctx, config);
Expand Down
9 changes: 6 additions & 3 deletions src/controllers/WordCloudController.spec.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
/// <reference types="jest" />
import { LinearScale, registry } from 'chart.js';
import { WordCloudController } from './WordCloudController';
import { WordElement } from '../elements';
import createChart from '../__tests__/createChart';

import { describe, beforeAll, test } from 'vitest';
describe('default', () => {
beforeAll(() => {
registry.addControllers(WordCloudController);
Expand All @@ -18,6 +17,7 @@ describe('default', () => {
{
label: '',
data: words.map((_, i) => 10 + (i / words.length) * 90),
randomRotationSeed: 'x',
},
],
};
Expand All @@ -31,6 +31,9 @@ describe('default', () => {
500
);

return chart.toMatchImageSnapshot();
return chart.toMatchImageSnapshot({
failureThreshold: 1.85,
failureThresholdType: 'percent',
});
});
});
4 changes: 2 additions & 2 deletions src/controllers/WordCloudController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,8 @@ export class WordCloudController extends DatasetController<'wordCloud', WordElem
run(f, tries - 1);
return;
}
// eslint-disable-next-line no-console
console.warn('cannot fit all text elements in three tries');

console.warn(`cannot fit all text elements in ${growOptions.maxTries} tries`);
}
const wb = bounds[1].x - bounds[0].x;
const hb = bounds[1].y - bounds[0].y;
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/elements/WordElement.ts
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ export class WordElement extends Element<IWordElementProps, IWordElementOptions>
ctx.save();
const f = toFont({ ...options, size: options.size * props.scale });
ctx.font = f.string;
// console.log(ctx.font);
ctx.fillStyle = options.color;
ctx.textAlign = 'center';
// ctx.textBaseline = 'top';
Expand Down
4 changes: 0 additions & 4 deletions tsconfig.eslint.json

This file was deleted.

6 changes: 4 additions & 2 deletions tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,17 @@
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"moduleResolution": "node",
"moduleResolution": "Bundler",
"jsx": "react",
"esModuleInterop": true,
"rootDir": "./src",
"baseUrl": "./",
"noEmit": true,
"paths": {
"@": ["./src"],
"*": ["*", "node_modules/*"]
"*": ["*", "node_modules/*"],
// workaround for: https://github.com/vitest-dev/vitest/issues/4567
"rollup/parseAst": ["./node_modules/rollup/dist/parseAst"]
}
},
"include": ["src/**/*.ts", "src/**/*.tsx", "docs/**/*.tsx"]
Expand Down
9 changes: 9 additions & 0 deletions vitest.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/// <reference types="vitest/config" />
import { defineConfig } from 'vite';

export default defineConfig({
test: {
environment: 'jsdom',
root: './src',
},
});
Loading

0 comments on commit aceb79d

Please sign in to comment.