From a1f51db29d15acd478c7f3124cc601b3c8ec8a7f Mon Sep 17 00:00:00 2001 From: tpoisseau <22891227+tpoisseau@users.noreply.github.com> Date: Mon, 16 Jun 2025 09:09:37 +0200 Subject: [PATCH 1/5] fix: make tests works with ts autoupdate --- package.json | 2 +- tsconfig.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 8dc6d66..b852028 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "prettier": "^3.3.3", "rimraf": "^6.0.1", "ts-jest": "^29.2.5", - "typescript": "^5.6.3", + "typescript": "^5.8.3", "typescript-json-schema": "^0.65.1", "vitest": "^2.1.4" }, diff --git a/tsconfig.json b/tsconfig.json index a3045c8..6e9f810 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,7 +8,7 @@ "outDir": "lib", "sourceMap": true, "strict": true, - "target": "es2020" + "target": "es2023" }, "include": ["./src/**/*"] } From 25a2c23c657b16c9efad8119c2915fdfba3ba2fb Mon Sep 17 00:00:00 2001 From: tpoisseau <22891227+tpoisseau@users.noreply.github.com> Date: Mon, 16 Jun 2025 10:50:36 +0200 Subject: [PATCH 2/5] refactor!: esm only Refs: https://github.com/cheminfo/generator-cheminfo/blob/main/ts-migration.md#configure-eslint --- .github/workflows/typedoc.yml | 6 +-- .prettierignore | 5 ++ FilterXYSchema.d.ts | 2 +- eslint.config.mjs | 12 ++--- package.json | 26 +++++---- scripts/create_js_schema.mjs | 5 +- src/FilterMatrixType.ts | 6 +-- src/FilterXYType.ts | 6 +-- src/__tests__/data/{linear.js => linear.ts} | 0 src/__tests__/filterMatrix.test.ts | 4 +- src/__tests__/filterXY.test.ts | 6 +-- src/filterMatrix.ts | 6 +-- src/filterXY.ts | 6 +-- .../data/{baseline.js => baseline.ts} | 0 .../__tests__/data/{linear.js => linear.ts} | 0 .../baseline/__tests__/airPLSBaseline.test.ts | 7 +-- .../iterativePolynomialBaseline.test.ts | 7 +-- .../__tests__/rollingAverageBaseline.test.ts | 7 +-- .../__tests__/rollingBallBaseline.test.ts | 7 +-- .../__tests__/rollingMedianBaseline.test.ts | 7 +-- src/filters/baseline/airPLSBaseline.ts | 2 +- .../baseline/iterativePolynomialBaseline.ts | 2 +- .../baseline/rollingAverageBaseline.ts | 2 +- src/filters/baseline/rollingBallBaseline.ts | 2 +- src/filters/baseline/rollingMedianBaseline.ts | 2 +- src/filters/filters.ts | 54 +++++++++---------- .../scaling/__tests__/centerMean.test.ts | 7 +-- .../scaling/__tests__/centerMedian.test.ts | 7 +-- .../scaling/__tests__/divideBySD.test.ts | 7 +-- src/filters/scaling/__tests__/normed.test.ts | 7 +-- .../__tests__/paretoNormalization.test.ts | 5 +- src/filters/scaling/__tests__/rescale.test.ts | 7 +-- .../scaling/__tests__/yFunction.test.ts | 7 +-- src/filters/scaling/centerMean.ts | 2 +- src/filters/scaling/centerMedian.ts | 2 +- src/filters/scaling/divideBySD.ts | 2 +- src/filters/scaling/normed.ts | 2 +- src/filters/scaling/paretoNormalization.ts | 2 +- src/filters/scaling/rescale.ts | 2 +- src/filters/scaling/yFunction.ts | 2 +- .../sg/__tests__/firstDerivative.test.ts | 7 +-- .../sg/__tests__/savitzkyGolay.test.ts | 7 +-- .../sg/__tests__/secondDerivative.test.ts | 7 +-- .../sg/__tests__/thirdDerivate.test.ts | 7 +-- src/filters/sg/firstDerivative.ts | 5 +- src/filters/sg/savitzkyGolay.ts | 5 +- src/filters/sg/secondDerivative.ts | 5 +- src/filters/sg/thirdDerivative.ts | 5 +- src/filters/x/__tests__/calibrateX.test.ts | 5 +- .../data/{nonGrowing.js => nonGrowing.ts} | 0 src/filters/x/__tests__/ensureGrowing.test.ts | 7 +-- src/filters/x/__tests__/equallySpaced.test.ts | 7 +-- src/filters/x/__tests__/filterX.test.ts | 7 +-- src/filters/x/__tests__/fromTo.test.ts | 7 +-- src/filters/x/__tests__/setMaxX.test.ts | 2 +- src/filters/x/__tests__/setMinX.test.ts | 2 +- src/filters/x/__tests__/xFunction.test.ts | 7 +-- src/filters/x/calibrateX.ts | 5 +- src/filters/x/ensureGrowing.ts | 2 +- src/filters/x/equallySpaced.ts | 2 +- src/filters/x/filterX.ts | 2 +- src/filters/x/fromTo.ts | 2 +- src/filters/x/reverseIfNeeded.ts | 2 +- src/filters/x/setMaxX.ts | 2 +- src/filters/x/setMinX.ts | 2 +- src/filters/x/xFunction.ts | 2 +- src/filters/y/__tests__/setMaxY.test.ts | 2 +- src/filters/y/__tests__/setMinY.test.ts | 2 +- src/filters/y/setMaxY.ts | 2 +- src/filters/y/setMinY.ts | 2 +- src/index.ts | 10 ++-- src/matrixFilters/centerZMean.ts | 3 +- src/matrixFilters/matrixFilters.ts | 6 +-- src/matrixFilters/pqn.ts | 3 +- src/matrixFilters/zRescale.ts | 3 +- tsconfig.build.json | 4 ++ tsconfig.cjs.json | 9 ---- tsconfig.esm.json | 7 --- tsconfig.json | 12 ++--- vitest.config.ts | 10 ++++ vitest.setup.ts | 4 ++ 81 files changed, 192 insertions(+), 250 deletions(-) create mode 100644 .prettierignore rename src/__tests__/data/{linear.js => linear.ts} (100%) rename src/filters/__tests__/data/{baseline.js => baseline.ts} (100%) rename src/filters/__tests__/data/{linear.js => linear.ts} (100%) rename src/filters/x/__tests__/data/{nonGrowing.js => nonGrowing.ts} (100%) create mode 100644 tsconfig.build.json delete mode 100644 tsconfig.cjs.json delete mode 100644 tsconfig.esm.json create mode 100644 vitest.config.ts create mode 100644 vitest.setup.ts diff --git a/.github/workflows/typedoc.yml b/.github/workflows/typedoc.yml index 395d8f4..4805f61 100644 --- a/.github/workflows/typedoc.yml +++ b/.github/workflows/typedoc.yml @@ -6,15 +6,15 @@ on: types: [published] env: - NODE_VERSION: 16.x + NODE_VERSION: 22.x ENTRY_FILE: 'src/index.ts' jobs: deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - name: Install dependencies diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..df16c0b --- /dev/null +++ b/.prettierignore @@ -0,0 +1,5 @@ +CHANGELOG.md +lib +coverage +FilterXYSchema.json +FilterXYSchema.js \ No newline at end of file diff --git a/FilterXYSchema.d.ts b/FilterXYSchema.d.ts index a782705..d8230f2 100644 --- a/FilterXYSchema.d.ts +++ b/FilterXYSchema.d.ts @@ -1,2 +1,2 @@ -declare const schema: typeof import('./FilterXYSchema.json') +declare const schema: typeof import('./FilterXYSchema.json'); export = schema; diff --git a/eslint.config.mjs b/eslint.config.mjs index 9ced323..1c14ed9 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,9 +1,7 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; import cheminfo from 'eslint-config-cheminfo-typescript'; -export default [ - ...cheminfo, - { - languageOptions: {}, - rules: {}, - }, -]; +export default defineConfig( + globalIgnores(['coverage', 'lib', 'FilterXYSchema.*']), + cheminfo, +); diff --git a/package.json b/package.json index b852028..5b8ffc9 100644 --- a/package.json +++ b/package.json @@ -2,35 +2,32 @@ "name": "ml-signal-processing", "version": "1.2.0", "description": "Process data in the form of {x:[], y:[]}", - "main": "./lib/index.js", - "module": "./lib-esm/index.js", - "types": "./lib/index.d.ts", + "type": "module", + "exports": "./lib/index.js", "keywords": [], "author": "Luc Patiny", "license": "MIT", "files": [ "src", "lib", - "lib-esm", "FilterXYSchema.d.ts", "FilterXYSchema.js", "FilterXYSchema.json" ], "scripts": { "check-types": "tsc --noEmit", - "clean": "rimraf lib lib-esm", + "clean": "rimraf lib", "createSchema": "typescript-json-schema --refs false ./tsconfig.json FilterXYType > FilterXYSchema.json", "postcreateSchema": "node scripts/create_js_schema.mjs", - "eslint": "eslint src --cache", - "eslint-fix": "npm run eslint -- --fix", + "eslint": "eslint . --cache", + "eslint-fix": "node --run eslint -- --fix", "prepack": "npm run createSchema && npm run tsc", - "prettier": "prettier --check src", - "prettier-write": "prettier --write src", + "prettier": "prettier --check .", + "prettier-write": "prettier --write .", "test": "npm run test-only && npm run eslint && npm run prettier && npm run check-types", "test-only": "vitest run --coverage", - "tsc": "npm run clean && npm run tsc-cjs && npm run tsc-esm", - "tsc-cjs": "tsc --project tsconfig.cjs.json", - "tsc-esm": "tsc --project tsconfig.esm.json" + "tsc": "npm run clean && npm run tsc-build", + "tsc-build": "tsc --project tsconfig.build.json" }, "repository": { "type": "git", @@ -42,8 +39,9 @@ "homepage": "https://github.com/mljs/signal-processing#readme", "devDependencies": { "@vitest/coverage-v8": "^2.1.4", - "eslint": "^9.14.0", - "eslint-config-cheminfo-typescript": "^16.0.0", + "@zakodium/tsconfig": "^1.0.1", + "eslint": "^9.29.0", + "eslint-config-cheminfo-typescript": "^18.0.1", "jest-matcher-deep-close-to": "^3.0.2", "prettier": "^3.3.3", "rimraf": "^6.0.1", diff --git a/scripts/create_js_schema.mjs b/scripts/create_js_schema.mjs index 24e669f..2cf535c 100644 --- a/scripts/create_js_schema.mjs +++ b/scripts/create_js_schema.mjs @@ -1,6 +1,9 @@ import fs from 'node:fs'; -const schema = fs.readFileSync(new URL('../FilterXYSchema.json', import.meta.url), 'utf8'); +const schema = fs.readFileSync( + new URL('../FilterXYSchema.json', import.meta.url), + 'utf8', +); const schemaJs = `'use strict'; diff --git a/src/FilterMatrixType.ts b/src/FilterMatrixType.ts index 76bd3cb..6683b2e 100644 --- a/src/FilterMatrixType.ts +++ b/src/FilterMatrixType.ts @@ -1,6 +1,6 @@ -import { MatrixCenterZMeanFilter } from './matrixFilters/centerZMean'; -import { PQNFilter } from './matrixFilters/pqn'; -import { MatrixZRescaleFilter } from './matrixFilters/zRescale'; +import type { MatrixCenterZMeanFilter } from './matrixFilters/centerZMean.ts'; +import type { PQNFilter } from './matrixFilters/pqn.ts'; +import type { MatrixZRescaleFilter } from './matrixFilters/zRescale.ts'; export type FilterMatrixType = | MatrixCenterZMeanFilter diff --git a/src/FilterXYType.ts b/src/FilterXYType.ts index b8377e9..b717d0b 100644 --- a/src/FilterXYType.ts +++ b/src/FilterXYType.ts @@ -1,4 +1,4 @@ -import { +import type { AirPLSBaselineFilter, CenterMeanFilter, CenterMedianFilter, @@ -21,8 +21,8 @@ import { YFunctionFilter, CalibrateFilter, ParetoNormalizationFilter, -} from './filters/filters'; -import { ReverseIfNeededFilter } from './filters/x/reverseIfNeeded'; +} from './filters/filters.ts'; +import type { ReverseIfNeededFilter } from './filters/x/reverseIfNeeded.ts'; export type FilterXYType = | AirPLSBaselineFilter diff --git a/src/__tests__/data/linear.js b/src/__tests__/data/linear.ts similarity index 100% rename from src/__tests__/data/linear.js rename to src/__tests__/data/linear.ts diff --git a/src/__tests__/filterMatrix.test.ts b/src/__tests__/filterMatrix.test.ts index 928f8d1..8728cbd 100644 --- a/src/__tests__/filterMatrix.test.ts +++ b/src/__tests__/filterMatrix.test.ts @@ -1,7 +1,7 @@ import { test, expect } from 'vitest'; -import { filterMatrix } from '..'; -import { FilterMatrixType } from '../FilterMatrixType'; +import type { FilterMatrixType } from '../FilterMatrixType.ts'; +import { filterMatrix } from '../index.ts'; test('filterMatrix', () => { const filters: FilterMatrixType[] = [ diff --git a/src/__tests__/filterXY.test.ts b/src/__tests__/filterXY.test.ts index f35d4de..3d48de5 100644 --- a/src/__tests__/filterXY.test.ts +++ b/src/__tests__/filterXY.test.ts @@ -1,8 +1,8 @@ import { describe, it, expect } from 'vitest'; -import { filterXY } from '..'; -import { FilterXYType } from '../FilterXYType'; -import linear from '../filters/__tests__/data/linear'; +import type { FilterXYType } from '../FilterXYType.ts'; +import linear from '../filters/__tests__/data/linear.ts'; +import { filterXY } from '../index.ts'; describe('filterXY', () => { it('filters', () => { diff --git a/src/filterMatrix.ts b/src/filterMatrix.ts index 0a604d7..ccd9127 100644 --- a/src/filterMatrix.ts +++ b/src/filterMatrix.ts @@ -1,8 +1,8 @@ -import { DoubleMatrix } from 'ml-spectra-processing'; +import type { DoubleMatrix } from 'ml-spectra-processing'; -import { FilterMatrixType } from './FilterMatrixType'; -//import * as Filters from './matrixFilters/matrixFilters'; +import type { FilterMatrixType } from './FilterMatrixType.ts'; +// eslint-disable-next-line jsdoc/require-jsdoc export function filterMatrix( matrix: DoubleMatrix, // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/src/filterXY.ts b/src/filterXY.ts index b7e985e..f82dfc4 100644 --- a/src/filterXY.ts +++ b/src/filterXY.ts @@ -1,8 +1,8 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xEnsureFloat64, xyGrowingX } from 'ml-spectra-processing'; -import { FilterXYType } from './FilterXYType'; -import * as Filters from './filters/filters'; +import type { FilterXYType } from './FilterXYType.ts'; +import * as Filters from './filters/filters.ts'; /** * Apply filters on {x:[], y:[]} diff --git a/src/filters/__tests__/data/baseline.js b/src/filters/__tests__/data/baseline.ts similarity index 100% rename from src/filters/__tests__/data/baseline.js rename to src/filters/__tests__/data/baseline.ts diff --git a/src/filters/__tests__/data/linear.js b/src/filters/__tests__/data/linear.ts similarity index 100% rename from src/filters/__tests__/data/linear.js rename to src/filters/__tests__/data/linear.ts diff --git a/src/filters/baseline/__tests__/airPLSBaseline.test.ts b/src/filters/baseline/__tests__/airPLSBaseline.test.ts index 8aefa09..cdb4c7d 100644 --- a/src/filters/baseline/__tests__/airPLSBaseline.test.ts +++ b/src/filters/baseline/__tests__/airPLSBaseline.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { test, expect } from 'vitest'; -import baseline from '../../__tests__/data/baseline'; -import { airPLSBaseline } from '../airPLSBaseline'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import baseline from '../../__tests__/data/baseline.ts'; +import { airPLSBaseline } from '../airPLSBaseline.ts'; test('airPLSBaseline', () => { const result = airPLSBaseline(baseline); diff --git a/src/filters/baseline/__tests__/iterativePolynomialBaseline.test.ts b/src/filters/baseline/__tests__/iterativePolynomialBaseline.test.ts index 752746f..1fa9b28 100644 --- a/src/filters/baseline/__tests__/iterativePolynomialBaseline.test.ts +++ b/src/filters/baseline/__tests__/iterativePolynomialBaseline.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { test, expect } from 'vitest'; -import baseline from '../../__tests__/data/baseline'; -import { iterativePolynomialBaseline } from '../iterativePolynomialBaseline'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import baseline from '../../__tests__/data/baseline.ts'; +import { iterativePolynomialBaseline } from '../iterativePolynomialBaseline.ts'; test('iterativePolynomialBaseline', () => { const result = iterativePolynomialBaseline(baseline); diff --git a/src/filters/baseline/__tests__/rollingAverageBaseline.test.ts b/src/filters/baseline/__tests__/rollingAverageBaseline.test.ts index aaeda21..4a58e47 100644 --- a/src/filters/baseline/__tests__/rollingAverageBaseline.test.ts +++ b/src/filters/baseline/__tests__/rollingAverageBaseline.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { test, expect } from 'vitest'; -import baseline from '../../__tests__/data/baseline'; -import { rollingAverageBaseline } from '../rollingAverageBaseline'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import baseline from '../../__tests__/data/baseline.ts'; +import { rollingAverageBaseline } from '../rollingAverageBaseline.ts'; test('rollingAverageBaseline', () => { const result = rollingAverageBaseline(baseline); diff --git a/src/filters/baseline/__tests__/rollingBallBaseline.test.ts b/src/filters/baseline/__tests__/rollingBallBaseline.test.ts index 38c7e9b..f94c1db 100644 --- a/src/filters/baseline/__tests__/rollingBallBaseline.test.ts +++ b/src/filters/baseline/__tests__/rollingBallBaseline.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { test, expect } from 'vitest'; -import baseline from '../../__tests__/data/baseline'; -import { rollingBallBaseline } from '../rollingBallBaseline'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import baseline from '../../__tests__/data/baseline.ts'; +import { rollingBallBaseline } from '../rollingBallBaseline.ts'; test('rollingBallBaseline', () => { const result = rollingBallBaseline(baseline); diff --git a/src/filters/baseline/__tests__/rollingMedianBaseline.test.ts b/src/filters/baseline/__tests__/rollingMedianBaseline.test.ts index 326da1e..50505c7 100644 --- a/src/filters/baseline/__tests__/rollingMedianBaseline.test.ts +++ b/src/filters/baseline/__tests__/rollingMedianBaseline.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { test, expect } from 'vitest'; -import baseline from '../../__tests__/data/baseline'; -import { rollingMedianBaseline } from '../rollingMedianBaseline'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import baseline from '../../__tests__/data/baseline.ts'; +import { rollingMedianBaseline } from '../rollingMedianBaseline.ts'; test('rollingMedianBaseline', () => { const result = rollingMedianBaseline(baseline); diff --git a/src/filters/baseline/airPLSBaseline.ts b/src/filters/baseline/airPLSBaseline.ts index c78182b..65f3c8b 100644 --- a/src/filters/baseline/airPLSBaseline.ts +++ b/src/filters/baseline/airPLSBaseline.ts @@ -1,6 +1,6 @@ //@ts-expect-error no type definition for baselines import { airPLSBaseline as baselineFct } from 'baselines'; -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; export interface AirPLSBaselineFilter { name: 'airPLSBaseline'; diff --git a/src/filters/baseline/iterativePolynomialBaseline.ts b/src/filters/baseline/iterativePolynomialBaseline.ts index 36c42fc..f0d10bc 100644 --- a/src/filters/baseline/iterativePolynomialBaseline.ts +++ b/src/filters/baseline/iterativePolynomialBaseline.ts @@ -1,6 +1,6 @@ //@ts-expect-error no type definition for baselines import { iterativePolynomialBaseline as baselineFct } from 'baselines'; -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; export interface IterativePolynomialBaselineFilter { name: 'iterativePolynomialBaseline'; diff --git a/src/filters/baseline/rollingAverageBaseline.ts b/src/filters/baseline/rollingAverageBaseline.ts index e7fe65d..ba7b8f1 100644 --- a/src/filters/baseline/rollingAverageBaseline.ts +++ b/src/filters/baseline/rollingAverageBaseline.ts @@ -1,6 +1,6 @@ //@ts-expect-error no type definition for baselines import { rollingAverageBaseline as baselineFct } from 'baselines'; -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; export interface RollingAverageBaselineFilter { name: 'rollingAverageBaseline'; diff --git a/src/filters/baseline/rollingBallBaseline.ts b/src/filters/baseline/rollingBallBaseline.ts index 9ba0bf7..9f8de17 100644 --- a/src/filters/baseline/rollingBallBaseline.ts +++ b/src/filters/baseline/rollingBallBaseline.ts @@ -1,6 +1,6 @@ //@ts-expect-error no type definition for baselines import { rollingBallBaseline as baselineFct } from 'baselines'; -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; export interface RollingBallBaselineFilter { name: 'rollingBallBaseline'; diff --git a/src/filters/baseline/rollingMedianBaseline.ts b/src/filters/baseline/rollingMedianBaseline.ts index a6f7911..8cb8c03 100644 --- a/src/filters/baseline/rollingMedianBaseline.ts +++ b/src/filters/baseline/rollingMedianBaseline.ts @@ -1,6 +1,6 @@ //@ts-expect-error no type definition for baselines import { rollingMedianBaseline as baselineFct } from 'baselines'; -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; export interface RollingMedianBaselineFilter { name: 'rollingMedianBaseline'; diff --git a/src/filters/filters.ts b/src/filters/filters.ts index d636bc5..a207508 100644 --- a/src/filters/filters.ts +++ b/src/filters/filters.ts @@ -1,31 +1,31 @@ -export * from './scaling/centerMean'; -export * from './scaling/centerMedian'; -export * from './x/fromTo'; -export * from './scaling/normed'; -export * from './scaling/divideBySD'; -export * from './scaling/rescale'; -export * from './scaling/paretoNormalization'; +export * from './scaling/centerMean.ts'; +export * from './scaling/centerMedian.ts'; +export * from './x/fromTo.ts'; +export * from './scaling/normed.ts'; +export * from './scaling/divideBySD.ts'; +export * from './scaling/rescale.ts'; +export * from './scaling/paretoNormalization.ts'; -export * from './baseline/airPLSBaseline'; -export * from './baseline/iterativePolynomialBaseline'; -export * from './baseline/rollingAverageBaseline'; -export * from './baseline/rollingBallBaseline'; -export * from './baseline/rollingMedianBaseline'; +export * from './baseline/airPLSBaseline.ts'; +export * from './baseline/iterativePolynomialBaseline.ts'; +export * from './baseline/rollingAverageBaseline.ts'; +export * from './baseline/rollingBallBaseline.ts'; +export * from './baseline/rollingMedianBaseline.ts'; -export * from './sg/firstDerivative'; -export * from './sg/secondDerivative'; -export * from './sg/thirdDerivative'; -export * from './sg/savitzkyGolay'; +export * from './sg/firstDerivative.ts'; +export * from './sg/secondDerivative.ts'; +export * from './sg/thirdDerivative.ts'; +export * from './sg/savitzkyGolay.ts'; -export * from './x/ensureGrowing'; -export * from './x/reverseIfNeeded'; -export * from './x/equallySpaced'; -export * from './x/filterX'; -export * from './x/setMaxX'; -export * from './x/setMinX'; -export * from './x/calibrateX'; -export * from './x/xFunction'; +export * from './x/ensureGrowing.ts'; +export * from './x/reverseIfNeeded.ts'; +export * from './x/equallySpaced.ts'; +export * from './x/filterX.ts'; +export * from './x/setMaxX.ts'; +export * from './x/setMinX.ts'; +export * from './x/calibrateX.ts'; +export * from './x/xFunction.ts'; -export * from './scaling/yFunction'; -export * from './y/setMaxY'; -export * from './y/setMinY'; +export * from './scaling/yFunction.ts'; +export * from './y/setMaxY.ts'; +export * from './y/setMinY.ts'; diff --git a/src/filters/scaling/__tests__/centerMean.test.ts b/src/filters/scaling/__tests__/centerMean.test.ts index f6e8c9d..9f2f5fd 100644 --- a/src/filters/scaling/__tests__/centerMean.test.ts +++ b/src/filters/scaling/__tests__/centerMean.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { test, expect } from 'vitest'; -import linear from '../../__tests__/data/linear'; -import { centerMean } from '../centerMean'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import linear from '../../__tests__/data/linear.ts'; +import { centerMean } from '../centerMean.ts'; test('centerMean', () => { const result = centerMean(linear); diff --git a/src/filters/scaling/__tests__/centerMedian.test.ts b/src/filters/scaling/__tests__/centerMedian.test.ts index ff70f1d..d87a6d7 100644 --- a/src/filters/scaling/__tests__/centerMedian.test.ts +++ b/src/filters/scaling/__tests__/centerMedian.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { test, expect } from 'vitest'; -import linear from '../../__tests__/data/linear'; -import { centerMedian } from '../centerMedian'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import linear from '../../__tests__/data/linear.ts'; +import { centerMedian } from '../centerMedian.ts'; test('centerMedian', () => { const result = centerMedian(linear); diff --git a/src/filters/scaling/__tests__/divideBySD.test.ts b/src/filters/scaling/__tests__/divideBySD.test.ts index d8d37c0..906b2fd 100644 --- a/src/filters/scaling/__tests__/divideBySD.test.ts +++ b/src/filters/scaling/__tests__/divideBySD.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { test, expect } from 'vitest'; -import linear from '../../__tests__/data/linear'; -import { divideBySD } from '../divideBySD'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import linear from '../../__tests__/data/linear.ts'; +import { divideBySD } from '../divideBySD.ts'; test('divideBySD', () => { const result = divideBySD(linear); diff --git a/src/filters/scaling/__tests__/normed.test.ts b/src/filters/scaling/__tests__/normed.test.ts index c32e3a9..41daa9a 100644 --- a/src/filters/scaling/__tests__/normed.test.ts +++ b/src/filters/scaling/__tests__/normed.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { test, expect } from 'vitest'; -import linear from '../../__tests__/data/linear'; -import { normed } from '../normed'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import linear from '../../__tests__/data/linear.ts'; +import { normed } from '../normed.ts'; test('normed', () => { const result = normed(linear, { algorithm: 'max', value: 10 }); diff --git a/src/filters/scaling/__tests__/paretoNormalization.test.ts b/src/filters/scaling/__tests__/paretoNormalization.test.ts index 71f338b..eb63838 100644 --- a/src/filters/scaling/__tests__/paretoNormalization.test.ts +++ b/src/filters/scaling/__tests__/paretoNormalization.test.ts @@ -1,9 +1,6 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { test, expect } from 'vitest'; -import { paretoNormalization } from '../paretoNormalization'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import { paretoNormalization } from '../paretoNormalization.ts'; test('paretoNormalization', () => { const data = { diff --git a/src/filters/scaling/__tests__/rescale.test.ts b/src/filters/scaling/__tests__/rescale.test.ts index 20db968..0d82a48 100644 --- a/src/filters/scaling/__tests__/rescale.test.ts +++ b/src/filters/scaling/__tests__/rescale.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { test, expect } from 'vitest'; -import linear from '../../__tests__/data/linear'; -import { rescale } from '../rescale'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import linear from '../../__tests__/data/linear.ts'; +import { rescale } from '../rescale.ts'; test('rescale', () => { const result = rescale(linear, { min: 1, max: 2 }); diff --git a/src/filters/scaling/__tests__/yFunction.test.ts b/src/filters/scaling/__tests__/yFunction.test.ts index a23c48e..ddedc3a 100644 --- a/src/filters/scaling/__tests__/yFunction.test.ts +++ b/src/filters/scaling/__tests__/yFunction.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { describe, it, expect } from 'vitest'; -import linear from '../../__tests__/data/linear'; -import { yFunction } from '../yFunction'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import linear from '../../__tests__/data/linear.ts'; +import { yFunction } from '../yFunction.ts'; describe('yFunction', () => { it('nothing to do', () => { diff --git a/src/filters/scaling/centerMean.ts b/src/filters/scaling/centerMean.ts index 6209dda..4d705ad 100644 --- a/src/filters/scaling/centerMean.ts +++ b/src/filters/scaling/centerMean.ts @@ -1,4 +1,4 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xMean } from 'ml-spectra-processing'; export interface CenterMeanFilter { diff --git a/src/filters/scaling/centerMedian.ts b/src/filters/scaling/centerMedian.ts index 35cd11e..a2a29e6 100644 --- a/src/filters/scaling/centerMedian.ts +++ b/src/filters/scaling/centerMedian.ts @@ -1,4 +1,4 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xMedian } from 'ml-spectra-processing'; export interface CenterMedianFilter { diff --git a/src/filters/scaling/divideBySD.ts b/src/filters/scaling/divideBySD.ts index 7fdfa57..a866be2 100644 --- a/src/filters/scaling/divideBySD.ts +++ b/src/filters/scaling/divideBySD.ts @@ -1,4 +1,4 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xStandardDeviation } from 'ml-spectra-processing'; export interface DivideBySDFilter { diff --git a/src/filters/scaling/normed.ts b/src/filters/scaling/normed.ts index 9133ba2..e1d9325 100644 --- a/src/filters/scaling/normed.ts +++ b/src/filters/scaling/normed.ts @@ -1,4 +1,4 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xNormed } from 'ml-spectra-processing'; export interface NormedFilter { diff --git a/src/filters/scaling/paretoNormalization.ts b/src/filters/scaling/paretoNormalization.ts index 6174255..c44fb22 100644 --- a/src/filters/scaling/paretoNormalization.ts +++ b/src/filters/scaling/paretoNormalization.ts @@ -1,4 +1,4 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xParetoNormalization } from 'ml-spectra-processing'; export interface ParetoNormalizationFilter { diff --git a/src/filters/scaling/rescale.ts b/src/filters/scaling/rescale.ts index 803c230..550f49f 100644 --- a/src/filters/scaling/rescale.ts +++ b/src/filters/scaling/rescale.ts @@ -1,4 +1,4 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xRescale } from 'ml-spectra-processing'; export interface RescaleFilter { diff --git a/src/filters/scaling/yFunction.ts b/src/filters/scaling/yFunction.ts index d1ef3a2..96ced41 100644 --- a/src/filters/scaling/yFunction.ts +++ b/src/filters/scaling/yFunction.ts @@ -1,4 +1,4 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xApplyFunctionStr } from 'ml-spectra-processing'; export interface YFunctionFilter { diff --git a/src/filters/sg/__tests__/firstDerivative.test.ts b/src/filters/sg/__tests__/firstDerivative.test.ts index 0265d71..f4468a6 100644 --- a/src/filters/sg/__tests__/firstDerivative.test.ts +++ b/src/filters/sg/__tests__/firstDerivative.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { test, expect } from 'vitest'; -import linear from '../../__tests__/data/linear'; -import { firstDerivative } from '../firstDerivative'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import linear from '../../__tests__/data/linear.ts'; +import { firstDerivative } from '../firstDerivative.ts'; test('firstDerivative', () => { const result = firstDerivative(linear); diff --git a/src/filters/sg/__tests__/savitzkyGolay.test.ts b/src/filters/sg/__tests__/savitzkyGolay.test.ts index 2e55abe..0ca8137 100644 --- a/src/filters/sg/__tests__/savitzkyGolay.test.ts +++ b/src/filters/sg/__tests__/savitzkyGolay.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { test, expect } from 'vitest'; -import linear from '../../__tests__/data/linear'; -import { savitzkyGolay } from '../savitzkyGolay'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import linear from '../../__tests__/data/linear.ts'; +import { savitzkyGolay } from '../savitzkyGolay.ts'; test('savitzkyGolay', () => { const result = savitzkyGolay(linear, { diff --git a/src/filters/sg/__tests__/secondDerivative.test.ts b/src/filters/sg/__tests__/secondDerivative.test.ts index 39b1b23..374c9ef 100644 --- a/src/filters/sg/__tests__/secondDerivative.test.ts +++ b/src/filters/sg/__tests__/secondDerivative.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { test, expect } from 'vitest'; -import linear from '../../__tests__/data/linear'; -import { secondDerivative } from '../secondDerivative'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import linear from '../../__tests__/data/linear.ts'; +import { secondDerivative } from '../secondDerivative.ts'; test('secondDerivative', () => { const result = secondDerivative(linear); diff --git a/src/filters/sg/__tests__/thirdDerivate.test.ts b/src/filters/sg/__tests__/thirdDerivate.test.ts index 552f58c..94b3d9d 100644 --- a/src/filters/sg/__tests__/thirdDerivate.test.ts +++ b/src/filters/sg/__tests__/thirdDerivate.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { test, expect } from 'vitest'; -import linear from '../../__tests__/data/linear'; -import { thirdDerivative } from '../thirdDerivative'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import linear from '../../__tests__/data/linear.ts'; +import { thirdDerivative } from '../thirdDerivative.ts'; test('thirdDerivative', () => { const result = thirdDerivative(linear); diff --git a/src/filters/sg/firstDerivative.ts b/src/filters/sg/firstDerivative.ts index df72f1b..8bf2d8e 100644 --- a/src/filters/sg/firstDerivative.ts +++ b/src/filters/sg/firstDerivative.ts @@ -1,5 +1,6 @@ -import { DataXY } from 'cheminfo-types'; -import { sgg, SGGOptions } from 'ml-savitzky-golay-generalized'; +import type { DataXY } from 'cheminfo-types'; +import type { SGGOptions } from 'ml-savitzky-golay-generalized'; +import { sgg } from 'ml-savitzky-golay-generalized'; export interface FirstDerivativeFilter { name: 'firstDerivative'; diff --git a/src/filters/sg/savitzkyGolay.ts b/src/filters/sg/savitzkyGolay.ts index b106bdf..62db39c 100644 --- a/src/filters/sg/savitzkyGolay.ts +++ b/src/filters/sg/savitzkyGolay.ts @@ -1,5 +1,6 @@ -import { DataXY } from 'cheminfo-types'; -import { sgg, SGGOptions } from 'ml-savitzky-golay-generalized'; +import type { DataXY } from 'cheminfo-types'; +import type { SGGOptions } from 'ml-savitzky-golay-generalized'; +import { sgg } from 'ml-savitzky-golay-generalized'; export interface SavitzkyGolayFilter { name: 'savitzkyGolay'; diff --git a/src/filters/sg/secondDerivative.ts b/src/filters/sg/secondDerivative.ts index 4447ba9..96a810c 100644 --- a/src/filters/sg/secondDerivative.ts +++ b/src/filters/sg/secondDerivative.ts @@ -1,5 +1,6 @@ -import { DataXY } from 'cheminfo-types'; -import { sgg, SGGOptions } from 'ml-savitzky-golay-generalized'; +import type { DataXY } from 'cheminfo-types'; +import type { SGGOptions } from 'ml-savitzky-golay-generalized'; +import { sgg } from 'ml-savitzky-golay-generalized'; export interface SecondDerivativeFilter { name: 'secondDerivative'; diff --git a/src/filters/sg/thirdDerivative.ts b/src/filters/sg/thirdDerivative.ts index 8e7e6f5..efcfcf2 100644 --- a/src/filters/sg/thirdDerivative.ts +++ b/src/filters/sg/thirdDerivative.ts @@ -1,5 +1,6 @@ -import { DataXY } from 'cheminfo-types'; -import { sgg, SGGOptions } from 'ml-savitzky-golay-generalized'; +import type { DataXY } from 'cheminfo-types'; +import type { SGGOptions } from 'ml-savitzky-golay-generalized'; +import { sgg } from 'ml-savitzky-golay-generalized'; export interface ThirdDerivativeFilter { name: 'thirdDerivative'; diff --git a/src/filters/x/__tests__/calibrateX.test.ts b/src/filters/x/__tests__/calibrateX.test.ts index 2b1ea72..7e32e08 100644 --- a/src/filters/x/__tests__/calibrateX.test.ts +++ b/src/filters/x/__tests__/calibrateX.test.ts @@ -1,9 +1,6 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { describe, it, expect } from 'vitest'; -import { calibrateX } from '../calibrateX'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import { calibrateX } from '../calibrateX.ts'; describe('calibrateX', () => { it('undefined params', () => { diff --git a/src/filters/x/__tests__/data/nonGrowing.js b/src/filters/x/__tests__/data/nonGrowing.ts similarity index 100% rename from src/filters/x/__tests__/data/nonGrowing.js rename to src/filters/x/__tests__/data/nonGrowing.ts diff --git a/src/filters/x/__tests__/ensureGrowing.test.ts b/src/filters/x/__tests__/ensureGrowing.test.ts index 057100a..40e5513 100644 --- a/src/filters/x/__tests__/ensureGrowing.test.ts +++ b/src/filters/x/__tests__/ensureGrowing.test.ts @@ -1,11 +1,8 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { describe, it, expect } from 'vitest'; -import { ensureGrowing } from '../ensureGrowing'; +import { ensureGrowing } from '../ensureGrowing.ts'; -import linear from './data/nonGrowing'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import linear from './data/nonGrowing.ts'; describe('ensureGrowing', () => { it('nothing to do', () => { diff --git a/src/filters/x/__tests__/equallySpaced.test.ts b/src/filters/x/__tests__/equallySpaced.test.ts index 0ee043f..605c8ca 100644 --- a/src/filters/x/__tests__/equallySpaced.test.ts +++ b/src/filters/x/__tests__/equallySpaced.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { describe, it, expect } from 'vitest'; -import linear from '../../__tests__/data/linear'; -import { equallySpaced } from '../equallySpaced'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import linear from '../../__tests__/data/linear.ts'; +import { equallySpaced } from '../equallySpaced.ts'; describe('equallySpaced', () => { it('nothing to do', () => { diff --git a/src/filters/x/__tests__/filterX.test.ts b/src/filters/x/__tests__/filterX.test.ts index 127025b..45e3189 100644 --- a/src/filters/x/__tests__/filterX.test.ts +++ b/src/filters/x/__tests__/filterX.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { describe, it, expect } from 'vitest'; -import linear from '../../__tests__/data/linear'; -import { filterX } from '../filterX'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import linear from '../../__tests__/data/linear.ts'; +import { filterX } from '../filterX.ts'; describe('filterX', () => { it('nothing to do', () => { diff --git a/src/filters/x/__tests__/fromTo.test.ts b/src/filters/x/__tests__/fromTo.test.ts index a76e302..d0099d7 100644 --- a/src/filters/x/__tests__/fromTo.test.ts +++ b/src/filters/x/__tests__/fromTo.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { describe, it, expect } from 'vitest'; -import linear from '../../__tests__/data/linear'; -import { fromTo } from '../fromTo'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import linear from '../../__tests__/data/linear.ts'; +import { fromTo } from '../fromTo.ts'; describe('fromTo', () => { it('nothing to do', () => { diff --git a/src/filters/x/__tests__/setMaxX.test.ts b/src/filters/x/__tests__/setMaxX.test.ts index 6acef60..58f8cf8 100644 --- a/src/filters/x/__tests__/setMaxX.test.ts +++ b/src/filters/x/__tests__/setMaxX.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect } from 'vitest'; -import { setMaxX } from '../setMaxX'; +import { setMaxX } from '../setMaxX.ts'; describe('setMaxX', () => { it('default values', () => { diff --git a/src/filters/x/__tests__/setMinX.test.ts b/src/filters/x/__tests__/setMinX.test.ts index 8b30912..7e08300 100644 --- a/src/filters/x/__tests__/setMinX.test.ts +++ b/src/filters/x/__tests__/setMinX.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect } from 'vitest'; -import { setMinX } from '../setMinX'; +import { setMinX } from '../setMinX.ts'; describe('setMinX', () => { it('default values', () => { diff --git a/src/filters/x/__tests__/xFunction.test.ts b/src/filters/x/__tests__/xFunction.test.ts index 0181295..0d1ce90 100644 --- a/src/filters/x/__tests__/xFunction.test.ts +++ b/src/filters/x/__tests__/xFunction.test.ts @@ -1,10 +1,7 @@ -import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; import { describe, it, expect } from 'vitest'; -import linear from '../../__tests__/data/linear'; -import { xFunction } from '../xFunction'; - -expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); +import linear from '../../__tests__/data/linear.ts'; +import { xFunction } from '../xFunction.ts'; describe('xFunction', () => { it('nothing to do', () => { diff --git a/src/filters/x/calibrateX.ts b/src/filters/x/calibrateX.ts index 4707a88..7105b80 100644 --- a/src/filters/x/calibrateX.ts +++ b/src/filters/x/calibrateX.ts @@ -1,5 +1,6 @@ -import { DataXY } from 'cheminfo-types'; -import { gsd, GSDOptions } from 'ml-gsd'; +import type { DataXY } from 'cheminfo-types'; +import type { GSDOptions } from 'ml-gsd'; +import { gsd } from 'ml-gsd'; import { xFindClosestIndex, xMean, xAdd } from 'ml-spectra-processing'; export interface CalibrateFilter { diff --git a/src/filters/x/ensureGrowing.ts b/src/filters/x/ensureGrowing.ts index 848e608..537d391 100644 --- a/src/filters/x/ensureGrowing.ts +++ b/src/filters/x/ensureGrowing.ts @@ -1,4 +1,4 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xyEnsureGrowingX } from 'ml-spectra-processing'; export interface EnsureGrowingFilter { diff --git a/src/filters/x/equallySpaced.ts b/src/filters/x/equallySpaced.ts index 6c4e9a4..59beda9 100644 --- a/src/filters/x/equallySpaced.ts +++ b/src/filters/x/equallySpaced.ts @@ -1,4 +1,4 @@ -import { DataXY, FromTo } from 'cheminfo-types'; +import type { DataXY, FromTo } from 'cheminfo-types'; import { xyEquallySpaced } from 'ml-spectra-processing'; export interface EquallySpacedFilter { diff --git a/src/filters/x/filterX.ts b/src/filters/x/filterX.ts index 654517f..c07c2d0 100644 --- a/src/filters/x/filterX.ts +++ b/src/filters/x/filterX.ts @@ -1,4 +1,4 @@ -import { DataXY, FromTo } from 'cheminfo-types'; +import type { DataXY, FromTo } from 'cheminfo-types'; import { xyFilterX } from 'ml-spectra-processing'; export interface FilterXFilter { diff --git a/src/filters/x/fromTo.ts b/src/filters/x/fromTo.ts index 69d93b2..724e651 100644 --- a/src/filters/x/fromTo.ts +++ b/src/filters/x/fromTo.ts @@ -1,4 +1,4 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xGetFromToIndex } from 'ml-spectra-processing'; export interface FromToFilter { diff --git a/src/filters/x/reverseIfNeeded.ts b/src/filters/x/reverseIfNeeded.ts index 7d762a8..d7b20a8 100644 --- a/src/filters/x/reverseIfNeeded.ts +++ b/src/filters/x/reverseIfNeeded.ts @@ -1,4 +1,4 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xyGrowingX } from 'ml-spectra-processing'; export interface ReverseIfNeededFilter { diff --git a/src/filters/x/setMaxX.ts b/src/filters/x/setMaxX.ts index d559d76..31d91d3 100644 --- a/src/filters/x/setMaxX.ts +++ b/src/filters/x/setMaxX.ts @@ -1,4 +1,4 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xAdd, xMaxValue } from 'ml-spectra-processing'; export interface SetMaxXFilter { diff --git a/src/filters/x/setMinX.ts b/src/filters/x/setMinX.ts index 67b3f70..c3f3b41 100644 --- a/src/filters/x/setMinX.ts +++ b/src/filters/x/setMinX.ts @@ -1,4 +1,4 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xAdd, xMinValue } from 'ml-spectra-processing'; export interface SetMinXFilter { diff --git a/src/filters/x/xFunction.ts b/src/filters/x/xFunction.ts index df1c901..a451cb1 100644 --- a/src/filters/x/xFunction.ts +++ b/src/filters/x/xFunction.ts @@ -1,4 +1,4 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xApplyFunctionStr } from 'ml-spectra-processing'; export interface XFunctionFilter { diff --git a/src/filters/y/__tests__/setMaxY.test.ts b/src/filters/y/__tests__/setMaxY.test.ts index bd45bc4..5ca267c 100644 --- a/src/filters/y/__tests__/setMaxY.test.ts +++ b/src/filters/y/__tests__/setMaxY.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect } from 'vitest'; -import { setMaxY } from '../setMaxY'; +import { setMaxY } from '../setMaxY.ts'; describe('setMaxY', () => { it('default values', () => { diff --git a/src/filters/y/__tests__/setMinY.test.ts b/src/filters/y/__tests__/setMinY.test.ts index d1ad45b..3a5fbfa 100644 --- a/src/filters/y/__tests__/setMinY.test.ts +++ b/src/filters/y/__tests__/setMinY.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect } from 'vitest'; -import { setMinY } from '../setMinY'; +import { setMinY } from '../setMinY.ts'; describe('setMinY', () => { it('default values', () => { diff --git a/src/filters/y/setMaxY.ts b/src/filters/y/setMaxY.ts index e1679a1..3356161 100644 --- a/src/filters/y/setMaxY.ts +++ b/src/filters/y/setMaxY.ts @@ -1,4 +1,4 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xAdd, xMaxValue } from 'ml-spectra-processing'; export interface SetMaxYFilter { diff --git a/src/filters/y/setMinY.ts b/src/filters/y/setMinY.ts index 75becab..7d25454 100644 --- a/src/filters/y/setMinY.ts +++ b/src/filters/y/setMinY.ts @@ -1,4 +1,4 @@ -import { DataXY } from 'cheminfo-types'; +import type { DataXY } from 'cheminfo-types'; import { xAdd, xMinValue } from 'ml-spectra-processing'; export interface SetMinYFilter { diff --git a/src/index.ts b/src/index.ts index e7924eb..e91ba53 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,6 @@ -export * from './filterXY'; -export * from './FilterXYType'; -export * from './filterMatrix'; -export * from './FilterMatrixType'; +export * from './filterXY.ts'; +export * from './FilterXYType.ts'; +export * from './filterMatrix.ts'; +export * from './FilterMatrixType.ts'; -export * from './filters/filters'; +export * from './filters/filters.ts'; diff --git a/src/matrixFilters/centerZMean.ts b/src/matrixFilters/centerZMean.ts index 405b16c..514b4a1 100644 --- a/src/matrixFilters/centerZMean.ts +++ b/src/matrixFilters/centerZMean.ts @@ -1,4 +1,5 @@ -import { matrixCenterZMean, DoubleMatrix } from 'ml-spectra-processing'; +import type { DoubleMatrix } from 'ml-spectra-processing'; +import { matrixCenterZMean } from 'ml-spectra-processing'; export interface MatrixCenterZMeanFilter { name: 'matrixCenterZMean'; diff --git a/src/matrixFilters/matrixFilters.ts b/src/matrixFilters/matrixFilters.ts index a4b579d..a1949d5 100644 --- a/src/matrixFilters/matrixFilters.ts +++ b/src/matrixFilters/matrixFilters.ts @@ -1,3 +1,3 @@ -export * from './zRescale'; -export * from './centerZMean'; -export * from './pqn'; +export * from './zRescale.ts'; +export * from './centerZMean.ts'; +export * from './pqn.ts'; diff --git a/src/matrixFilters/pqn.ts b/src/matrixFilters/pqn.ts index ed84c92..30bd331 100644 --- a/src/matrixFilters/pqn.ts +++ b/src/matrixFilters/pqn.ts @@ -1,4 +1,5 @@ -import { DoubleMatrix, matrixPQN } from 'ml-spectra-processing'; +import type { DoubleMatrix } from 'ml-spectra-processing'; +import { matrixPQN } from 'ml-spectra-processing'; export interface PQNFilter { name: 'pqn'; diff --git a/src/matrixFilters/zRescale.ts b/src/matrixFilters/zRescale.ts index 9a57c87..6c294c7 100644 --- a/src/matrixFilters/zRescale.ts +++ b/src/matrixFilters/zRescale.ts @@ -1,4 +1,5 @@ -import { matrixZRescale, DoubleMatrix } from 'ml-spectra-processing'; +import type { DoubleMatrix } from 'ml-spectra-processing'; +import { matrixZRescale } from 'ml-spectra-processing'; export interface MatrixZRescaleFilter { name: 'matrixZRecale'; diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 0000000..7fb5f79 --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["**/__tests__", "**/*.test.ts", "vite*.ts"] +} diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json deleted file mode 100644 index 3b9e100..0000000 --- a/tsconfig.cjs.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "module": "commonjs", - "declaration": true, - "declarationMap": true - }, - "exclude": ["./src/**/__tests__"] -} diff --git a/tsconfig.esm.json b/tsconfig.esm.json deleted file mode 100644 index 050b45d..0000000 --- a/tsconfig.esm.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "./tsconfig.cjs.json", - "compilerOptions": { - "module": "es2020", - "outDir": "lib-esm" - } -} diff --git a/tsconfig.json b/tsconfig.json index 6e9f810..e4f3895 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,14 +1,8 @@ { + "extends": "@zakodium/tsconfig", "compilerOptions": { - "allowJs": true, - "checkJs": true, - "esModuleInterop": true, - "skipLibCheck": true, - "moduleResolution": "node", "outDir": "lib", - "sourceMap": true, - "strict": true, - "target": "es2023" + "noUncheckedIndexedAccess": false }, - "include": ["./src/**/*"] + "include": ["src", "vite*.ts"] } diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 0000000..63fe258 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + coverage: { + include: ['src/**'], + }, + setupFiles: ['vitest.setup.ts'], + }, +}); diff --git a/vitest.setup.ts b/vitest.setup.ts new file mode 100644 index 0000000..1c80963 --- /dev/null +++ b/vitest.setup.ts @@ -0,0 +1,4 @@ +import { toBeDeepCloseTo, toMatchCloseTo } from 'jest-matcher-deep-close-to'; +import { expect } from 'vitest'; + +expect.extend({ toBeDeepCloseTo, toMatchCloseTo }); From adfe18643c47f6acdb488a7ef462b0c17e77a046 Mon Sep 17 00:00:00 2001 From: tpoisseau <22891227+tpoisseau@users.noreply.github.com> Date: Mon, 16 Jun 2025 10:55:41 +0200 Subject: [PATCH 3/5] chore: update deps Closes: https://github.com/mljs/signal-processing/issues/24 --- package.json | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 5b8ffc9..696fdf9 100644 --- a/package.json +++ b/package.json @@ -38,23 +38,22 @@ }, "homepage": "https://github.com/mljs/signal-processing#readme", "devDependencies": { - "@vitest/coverage-v8": "^2.1.4", + "@vitest/coverage-v8": "^3.2.3", "@zakodium/tsconfig": "^1.0.1", "eslint": "^9.29.0", "eslint-config-cheminfo-typescript": "^18.0.1", "jest-matcher-deep-close-to": "^3.0.2", - "prettier": "^3.3.3", + "prettier": "^3.5.3", "rimraf": "^6.0.1", - "ts-jest": "^29.2.5", "typescript": "^5.8.3", "typescript-json-schema": "^0.65.1", - "vitest": "^2.1.4" + "vitest": "^3.2.3" }, "dependencies": { "baselines": "^1.1.9", "cheminfo-types": "^1.8.1", - "ml-gsd": "^12.1.8", + "ml-gsd": "^13.0.1", "ml-savitzky-golay-generalized": "^4.2.0", - "ml-spectra-processing": "^14.6.2" + "ml-spectra-processing": "^14.12.0" } } From e0e14dd7844fbc8235567b4ff65204dd2016070e Mon Sep 17 00:00:00 2001 From: tpoisseau <22891227+tpoisseau@users.noreply.github.com> Date: Mon, 16 Jun 2025 11:06:03 +0200 Subject: [PATCH 4/5] chore: future-proof typedoc --- .github/workflows/typedoc.yml | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/.github/workflows/typedoc.yml b/.github/workflows/typedoc.yml index 4805f61..f9c54f5 100644 --- a/.github/workflows/typedoc.yml +++ b/.github/workflows/typedoc.yml @@ -1,32 +1,15 @@ -name: Deploy TypeDoc on GitHub pages +name: TypeDoc on: workflow_dispatch: release: types: [published] -env: - NODE_VERSION: 22.x - ENTRY_FILE: 'src/index.ts' - jobs: - deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: ${{ env.NODE_VERSION }} - - name: Install dependencies - run: npm install - - name: Build documentation - uses: zakodium/typedoc-action@v2 - with: - entry: ${{ env.ENTRY_FILE }} - - name: Deploy to GitHub pages - uses: JamesIves/github-pages-deploy-action@releases/v4 - with: - token: ${{ secrets.BOT_TOKEN }} - branch: gh-pages - folder: docs - clean: true + typedoc: + # Documentation: https://github.com/zakodium/workflows#typedoc + uses: zakodium/workflows/.github/workflows/typedoc.yml@typedoc-v1 + with: + entry: 'src/index.ts' + secrets: + github-token: ${{ secrets.BOT_TOKEN }} \ No newline at end of file From 5bf84c5de4bdd5e57da79e5563e2c4dad655a918 Mon Sep 17 00:00:00 2001 From: tpoisseau <22891227+tpoisseau@users.noreply.github.com> Date: Mon, 16 Jun 2025 11:24:25 +0200 Subject: [PATCH 5/5] build: add `allowImportingTsExtensions` flag to tsconfig It seems it 's needed at least for `typescript-json-schema` Refs: https://github.com/mljs/signal-processing/actions/runs/15676577857/job/44158196408?pr=25 --- .github/workflows/typedoc.yml | 2 +- tsconfig.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/typedoc.yml b/.github/workflows/typedoc.yml index f9c54f5..81c1ff6 100644 --- a/.github/workflows/typedoc.yml +++ b/.github/workflows/typedoc.yml @@ -12,4 +12,4 @@ jobs: with: entry: 'src/index.ts' secrets: - github-token: ${{ secrets.BOT_TOKEN }} \ No newline at end of file + github-token: ${{ secrets.BOT_TOKEN }} diff --git a/tsconfig.json b/tsconfig.json index e4f3895..79b37a0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,8 @@ "extends": "@zakodium/tsconfig", "compilerOptions": { "outDir": "lib", - "noUncheckedIndexedAccess": false + "noUncheckedIndexedAccess": false, + "allowImportingTsExtensions": true }, "include": ["src", "vite*.ts"] }