Skip to content

Commit

Permalink
Improve type definitions and move tests to TS (#37)
Browse files Browse the repository at this point in the history
  • Loading branch information
larabr authored Jan 25, 2024
1 parent ce23f43 commit 2dbfa0e
Show file tree
Hide file tree
Showing 9 changed files with 294 additions and 31 deletions.
17 changes: 14 additions & 3 deletions karma.conf.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,29 @@ module.exports = function(config) {
],

// list of files / patterns to load in the browser
files: [{ pattern: 'test/{browser,common}.test.js', watched: false }],
files: [{ pattern: 'test/{browser,common}.test.ts', watched: false }],

// list of files / patterns to exclude
exclude: [],

// preprocess matching files before serving them to the browser
// available preprocessors: https://www.npmjs.com/search?q=keywords:karma-preprocessor
preprocessors: {
'test/{browser,common}.test.js': 'webpack'
'test/{browser,common}.test.ts': 'webpack'
},

webpack: {},
webpack: {
resolve: {
extensions: ['', '.js', '.ts']
},
module: {
rules: [{
test: /\.ts?$/,
loader: 'ts-loader',
options: { compilerOptions: { noEmit: false } }
}]
}
},

// available reporters: https://www.npmjs.com/search?q=keywords:karma-reporter
reporters: ['mocha'],
Expand Down
17 changes: 16 additions & 1 deletion lib/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,19 @@ export type NodeWebStream<T extends Data> = NodeWebReadableStream<T>;
type Stream<T extends Data> = WebStream<T> | NodeWebStream<T>;
type MaybeStream<T extends Data> = T | Stream<T>;

export function readToEnd<T extends Data, R extends any = T>(input: MaybeStream<T>, join?: (chunks: T[]) => R): Promise<R>;
export function readToEnd<T extends Data, JoinFn extends (chunks: T[]) => any = (chunks: T[]) => T>(
input: MaybeStream<T>,
join?: JoinFn
): Promise<ReturnType<JoinFn>>;

export function toStream<T extends Data, InputType extends MaybeStream<T>>(
input: InputType
): InputType extends T ? Stream<InputType> : InputType;

export function isStream<T extends Data>(input: MaybeStream<T>): input is Stream<T>;

export function slice<T extends Data, InputType extends MaybeStream<T>>(
input: InputType,
begin: number,
end?: number | typeof Infinity
): InputType; // same as 'typeof input'
Loading

0 comments on commit 2dbfa0e

Please sign in to comment.