Skip to content

Commit

Permalink
feat: add .d.ts (#41)
Browse files Browse the repository at this point in the history
  • Loading branch information
paranoidjk authored and fengmk2 committed Aug 7, 2018
1 parent 1f76280 commit ea75ed5
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 8 deletions.
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -153,7 +153,7 @@ fs.readFileSync = function (...args) {
};
```

## .syncEmpty
### .syncEmpty

```js
mm.syncEmpty(fs, 'readFileSync');
Expand Down Expand Up @@ -213,7 +213,7 @@ https.get({
});
```

### .http.requestError(mockUrl, reqError, resError)
### .http.requestError(mockUrl, reqError, resError) and .https.requestError(mockUrl, reqError, resError)

```js
var mm = require('mm');
Expand Down
77 changes: 77 additions & 0 deletions index.d.ts
@@ -0,0 +1,77 @@
declare function mm(target: any, key: string, prop: any): void;

declare namespace mm {
/**
* Mock async function error.
*/
function error(mod: any, method: string, error?: string | Error, props?: object, timeout?: number): typeof mm;

/**
* mock return callback(null, data).
*/
function data(mod: any, method: string, data: any, timeout?: number): typeof mm;

/**
* mock return callback(null, null).
*/
function empty(mod: any, method: string, timeout?: number): typeof mm;

/**
* mock return callback(null, data1, data2).
*/
function datas(mod: any, method: string, datas: any, timeout?: number): typeof mm;

/**
* mock function sync throw error
*/
function syncError(mod: any, method: string, error?: string | Error, props?: object): void;

/**
* mock function sync return data
*/
function syncData(mod: any, method: string, data?: any): void;

/**
* mock function sync return nothing
*/
function syncEmpty(mod: any, method: string): void;

/**
* remove all mock effects.
*/
function restore(): typeof mm;

const http: {
request: (
url: string | RegExp | { url: string, host: string},
data: any,
headers?: object,
delay?: number,
) => typeof mm,
requestError: (
url: string | RegExp | { url: string, host: string},
reqError: string | Error,
resError: string | Error,
delay?: number
) => typeof mm,
}

const https: {
request: (
url: string | RegExp | { url: string, host: string},
data: any,
headers?: object,
delay?: number,
) => typeof mm,
requestError: (
url: string | RegExp | { url: string, host: string},
reqError: string | Error,
resError: string | Error,
delay?: number
) => typeof mm,
}

}

export default mm;

12 changes: 6 additions & 6 deletions lib/mm.js
Expand Up @@ -69,7 +69,7 @@ exports._createError = function(error, props) {
* @param {String} method, mock module object method name.
* @param {String|Error} error, error string message or error instance.
* @param {Object} props, error properties
* @param {Number} timeout, mock async callback timeout, default is 10.
* @param {Number} timeout, mock async callback timeout, default is 0.
* @return {mm} this - mm
*/
exports.error = function(mod, method, error, props, timeout) {
Expand Down Expand Up @@ -124,7 +124,7 @@ exports.datas = function(mod, method, datas, timeout) {
* @param {Object} mod, module object
* @param {String} method, mock module object method name.
* @param {Object} data, return data.
* @param {Number} timeout, mock async callback timeout, default is 10.
* @param {Number} timeout, mock async callback timeout, default is 0.
* @return {mm} this - mm
*/
exports.data = function(mod, method, data, timeout) {
Expand All @@ -136,7 +136,7 @@ exports.data = function(mod, method, data, timeout) {
*
* @param {Object} mod, module object
* @param {String} method, mock module object method name.
* @param {Number} [timeout], mock async callback timeout, default is 10.
* @param {Number} [timeout], mock async callback timeout, default is 0.
* @return {mm} this - mm
*/
exports.empty = function(mod, method, timeout) {
Expand Down Expand Up @@ -246,7 +246,7 @@ exports.http.request = function(url, data, headers, delay) {
* @param {String|Buffer|ReadStream} data, mock response data.
* If data is Array, then res will emit `data` event many times.
* @param {Object} headers, mock response headers.
* @param {Number} [delay], response delay time, default is 10.
* @param {Number} [delay], response delay time, default is 0.
* @return {mm} this - mm
*/
exports.https.request = function(url, data, headers, delay) {
Expand Down Expand Up @@ -356,7 +356,7 @@ function _request(mod, url, data, headers, delay) {
* @param {String|RegExp} url, request url path.
* @param {String|Error} reqError, request error.
* @param {String|Error} resError, response error.
* @param {Number} [delay], request error delay time, default is 10.
* @param {Number} [delay], request error delay time, default is 0.
*/
exports.http.requestError = function(url, reqError, resError, delay) {
backupOriginalRequest(http);
Expand All @@ -368,7 +368,7 @@ exports.http.requestError = function(url, reqError, resError, delay) {
* @param {String|RegExp} url, request url path.
* @param {String|Error} reqError, request error.
* @param {String|Error} resError, response error.
* @param {Number} [delay], request error delay time, default is 10.
* @param {Number} [delay], request error delay time, default is 0.
*/
exports.https.requestError = function(url, reqError, resError, delay) {
backupOriginalRequest(https);
Expand Down
1 change: 1 addition & 0 deletions package.json
Expand Up @@ -5,6 +5,7 @@
"main": "index.js",
"files": [
"index.js",
"index.d.ts",
"lib"
],
"scripts": {
Expand Down

0 comments on commit ea75ed5

Please sign in to comment.