Skip to content

Commit

Permalink
Add TS types (#43)
Browse files Browse the repository at this point in the history
* Add TS types

* Fix npm script

* Replaces `files` with `.npmignore`
  • Loading branch information
kibertoad authored Sep 22, 2020
1 parent 3b773bc commit 5a985ba
Show file tree
Hide file tree
Showing 6 changed files with 102 additions and 2 deletions.
2 changes: 2 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
types/index.d.ts
types/index.test-d.ts
10 changes: 10 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.editorconfig
.gitattributes
.git
.DS_Store
.gitignore
.github
.dependabot
.clinic
tsconfig.json
types/index.test-d.ts
13 changes: 11 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,11 @@
"version": "1.1.0",
"description": "Extremely fast utf8 only stream implementation",
"main": "index.js",
"type": "commonjs",
"types": "types/index.d.ts",
"scripts": {
"test": "standard && tap --no-ts --no-jsx --no-esm -t 120 test.js"
"test": "npm run test:types && standard && tap --no-ts --no-jsx --no-esm -t 120 test.js",
"test:types": "tsc && tsd"
},
"repository": {
"type": "git",
Expand All @@ -26,11 +29,14 @@
},
"homepage": "https://github.com/mcollina/sonic-boom#readme",
"devDependencies": {
"@types/node": "^14.11.1",
"fastbench": "^1.0.1",
"husky": "^4.2.3",
"proxyquire": "^2.1.0",
"standard": "^14.0.0",
"tap": "^14.0.0"
"tap": "^14.0.0",
"tsd": "^0.13.1",
"typescript": "^4.0.3"
},
"dependencies": {
"atomic-sleep": "^1.0.0",
Expand All @@ -40,5 +46,8 @@
"hooks": {
"pre-commit": "npm test"
}
},
"tsd": {
"directory": "./types"
}
}
13 changes: 13 additions & 0 deletions tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"compilerOptions": {
"target": "es6",
"lib": [ "es2015" ],
"module": "commonjs",
"noEmit": true,
"strict": true
},
"include": [
"./types/index.test-d.ts",
"./types/index.d.ts"
]
}
48 changes: 48 additions & 0 deletions types/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
// Type definitions for sonic-boom 0.7
// Definitions by: Alex Ferrando <https://github.com/alferpal>
// Igor Savin <https://github.com/kibertoad>
/// <reference types="node"/>

import { EventEmitter } from 'events';

export default SonicBoom;

declare class SonicBoom extends EventEmitter {
/**
* @param [fileDescriptor] File path or numerical file descriptor
* relative protocol is enabled. Default: process.stdout
* @returns a new sonic-boom instance
*/
constructor(fileDescriptor: string | number, minLength?: number, sync?: boolean)

/**
* Writes the string to the file. It will return false to signal the producer to slow down.
*/
write(string: string): void;

/**
* Writes the current buffer to the file if a write was not in progress.
* Do nothing if minLength is zero or if it is already writing.
*/
flush(): void;

/**
* Reopen the file in place, useful for log rotation.
*/
reopen(fileDescriptor?: string | number): void;

/**
* Flushes the buffered data synchronously. This is a costly operation.
*/
flushSync(): void;

/**
* Closes the stream, the data will be flushed down asynchronously
*/
end(): void;

/**
* Closes the stream immediately, the data is not flushed.
*/
destroy(): void;
}
18 changes: 18 additions & 0 deletions types/index.test-d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import SonicBoom from '../';
const sonic = new SonicBoom(1);

sonic.write('hello sonic\n');

sonic.flush();

sonic.flushSync();

sonic.reopen();

sonic.end();

sonic.destroy();

const extraSonic = new SonicBoom(1, 0, true);

extraSonic.write('extra sonic\n');

0 comments on commit 5a985ba

Please sign in to comment.