Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/typedoc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 5 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
CHANGELOG.md
lib
coverage
FilterXYSchema.json
FilterXYSchema.js
2 changes: 1 addition & 1 deletion FilterXYSchema.d.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
declare const schema: typeof import('./FilterXYSchema.json')
declare const schema: typeof import('./FilterXYSchema.json');
export = schema;
12 changes: 5 additions & 7 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -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,
);
39 changes: 18 additions & 21 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -41,22 +38,22 @@
},
"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",
"@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.6.3",
"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"
}
}
5 changes: 4 additions & 1 deletion scripts/create_js_schema.mjs
Original file line number Diff line number Diff line change
@@ -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';

Expand Down
6 changes: 3 additions & 3 deletions src/FilterMatrixType.ts
Original file line number Diff line number Diff line change
@@ -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
Expand Down
6 changes: 3 additions & 3 deletions src/FilterXYType.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {
import type {
AirPLSBaselineFilter,
CenterMeanFilter,
CenterMedianFilter,
Expand All @@ -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
Expand Down
File renamed without changes.
4 changes: 2 additions & 2 deletions src/__tests__/filterMatrix.test.ts
Original file line number Diff line number Diff line change
@@ -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[] = [
Expand Down
6 changes: 3 additions & 3 deletions src/__tests__/filterXY.test.ts
Original file line number Diff line number Diff line change
@@ -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', () => {
Expand Down
6 changes: 3 additions & 3 deletions src/filterMatrix.ts
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -12,7 +12,7 @@
data: matrix,
};

const logs: any = [];

Check warning on line 15 in src/filterMatrix.ts

View workflow job for this annotation

GitHub Actions / nodejs / lint-eslint

Unexpected any. Specify a different type

/**
* todo
Expand Down
6 changes: 3 additions & 3 deletions src/filterXY.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
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:[]}
* @param data

Check warning on line 9 in src/filterXY.ts

View workflow job for this annotation

GitHub Actions / nodejs / lint-eslint

Missing JSDoc @param "data" description
* @param filters

Check warning on line 10 in src/filterXY.ts

View workflow job for this annotation

GitHub Actions / nodejs / lint-eslint

Missing JSDoc @param "filters" description
* @returns A very important number
*/
export function filterXY(data: DataXY, filters: FilterXYType[]) {
Expand Down
7 changes: 2 additions & 5 deletions src/filters/baseline/__tests__/airPLSBaseline.test.ts
Original file line number Diff line number Diff line change
@@ -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);
Expand Down
Original file line number Diff line number Diff line change
@@ -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);
Expand Down
7 changes: 2 additions & 5 deletions src/filters/baseline/__tests__/rollingAverageBaseline.test.ts
Original file line number Diff line number Diff line change
@@ -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);
Expand Down
7 changes: 2 additions & 5 deletions src/filters/baseline/__tests__/rollingBallBaseline.test.ts
Original file line number Diff line number Diff line change
@@ -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);
Expand Down
7 changes: 2 additions & 5 deletions src/filters/baseline/__tests__/rollingMedianBaseline.test.ts
Original file line number Diff line number Diff line change
@@ -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);
Expand Down
2 changes: 1 addition & 1 deletion src/filters/baseline/airPLSBaseline.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
//@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';
}

/**

Check warning on line 9 in src/filters/baseline/airPLSBaseline.ts

View workflow job for this annotation

GitHub Actions / nodejs / lint-eslint

Missing JSDoc @returns declaration

Check warning on line 9 in src/filters/baseline/airPLSBaseline.ts

View workflow job for this annotation

GitHub Actions / nodejs / lint-eslint

Missing JSDoc block description
* @param data

Check warning on line 10 in src/filters/baseline/airPLSBaseline.ts

View workflow job for this annotation

GitHub Actions / nodejs / lint-eslint

Missing JSDoc @param "data" description
*/
export function airPLSBaseline(data: DataXY<Float64Array>) {
data.y = baselineFct(data.y).correctedSpectrum;
Expand Down
2 changes: 1 addition & 1 deletion src/filters/baseline/iterativePolynomialBaseline.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
//@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';
}

/**

Check warning on line 9 in src/filters/baseline/iterativePolynomialBaseline.ts

View workflow job for this annotation

GitHub Actions / nodejs / lint-eslint

Missing JSDoc @returns declaration

Check warning on line 9 in src/filters/baseline/iterativePolynomialBaseline.ts

View workflow job for this annotation

GitHub Actions / nodejs / lint-eslint

Missing JSDoc block description
* @param data

Check warning on line 10 in src/filters/baseline/iterativePolynomialBaseline.ts

View workflow job for this annotation

GitHub Actions / nodejs / lint-eslint

Missing JSDoc @param "data" description
*/
export function iterativePolynomialBaseline(data: DataXY<Float64Array>) {
data.y = baselineFct(data.y).correctedSpectrum;
Expand Down
2 changes: 1 addition & 1 deletion src/filters/baseline/rollingAverageBaseline.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
//@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';
}

/**

Check warning on line 9 in src/filters/baseline/rollingAverageBaseline.ts

View workflow job for this annotation

GitHub Actions / nodejs / lint-eslint

Missing JSDoc block description
* @param data
*/
export function rollingAverageBaseline(data: DataXY<Float64Array>) {
Expand Down
2 changes: 1 addition & 1 deletion src/filters/baseline/rollingBallBaseline.ts
Original file line number Diff line number Diff line change
@@ -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';
Expand Down
2 changes: 1 addition & 1 deletion src/filters/baseline/rollingMedianBaseline.ts
Original file line number Diff line number Diff line change
@@ -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';
Expand Down
54 changes: 27 additions & 27 deletions src/filters/filters.ts
Original file line number Diff line number Diff line change
@@ -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';
7 changes: 2 additions & 5 deletions src/filters/scaling/__tests__/centerMean.test.ts
Original file line number Diff line number Diff line change
@@ -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);
Expand Down
7 changes: 2 additions & 5 deletions src/filters/scaling/__tests__/centerMedian.test.ts
Original file line number Diff line number Diff line change
@@ -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);
Expand Down
Loading
Loading