diff --git a/.gitignore b/.gitignore
index 8248143..ab05030 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,2 @@
node_modules
-*.js
-*.js.map
-*.d.ts
-*.log
+*.log
\ No newline at end of file
diff --git a/dist/index.d.ts b/dist/index.d.ts
new file mode 100644
index 0000000..8f46821
--- /dev/null
+++ b/dist/index.d.ts
@@ -0,0 +1,198 @@
+///
+import * as http from 'http';
+import * as _stream from 'stream';
+import { Url } from 'url';
+export declare var throwResponseError: boolean;
+export declare function get(uri: string, options?: RequestOptions): Promise>;
+export declare function post(uri: string, options?: RequestOptions, content?: any): Promise>;
+export declare function put(uri: string, options?: RequestOptions, content?: any): Promise>;
+export declare function patch(uri: string, options?: RequestOptions, content?: any): Promise>;
+export declare function head(uri: string, options?: RequestOptions): Promise>;
+export declare function del(uri: string, options?: RequestOptions): Promise>;
+export declare function json(uri: string, options?: RequestOptions): Promise;
+export { del as delete };
+export declare function create(uri: string, options?: RequestOptions, content?: any): Request;
+export declare function stream(uri: string, options?: RequestOptions, content?: any): Request;
+export declare function defaults(options: RequestOptions): void;
+export declare function debug(value?: boolean): boolean;
+export interface AuthOptions {
+ user?: string;
+ username?: string;
+ pass?: string;
+ password?: string;
+ sendImmediately?: boolean;
+ bearer?: string;
+}
+export interface AWSOptions {
+ secret: string;
+ bucket?: string;
+}
+export interface Cookie extends Array {
+ str: string;
+ expires: Date;
+ path: string;
+ domain: string;
+ toString(): string;
+}
+export interface CookieJar {
+ setCookie(cookie: Cookie, uri: string | Url, options?: any): void;
+ getCookieString(uri: string | Url): string;
+ getCookies(uri: string | Url): Cookie[];
+}
+export interface CookieValue {
+ name: string;
+ value: any;
+ httpOnly: boolean;
+}
+export interface Headers {
+ [key: string]: any;
+}
+export interface HttpArchiveRequest {
+ url?: string;
+ method?: string;
+ headers?: NameValuePair[];
+ postData?: {
+ mimeType?: string;
+ params?: NameValuePair[];
+ };
+}
+export interface Multipart {
+ chunked?: boolean;
+ data?: {
+ 'content-type'?: string;
+ body: string;
+ }[];
+}
+export interface NameValuePair {
+ name: string;
+ value: string;
+}
+export interface RequestPart {
+ headers?: Headers;
+ body: any;
+}
+export interface OAuthOptions {
+ callback?: string;
+ consumer_key?: string;
+ consumer_secret?: string;
+ token?: string;
+ token_secret?: string;
+ verifier?: string;
+}
+export interface Request extends _stream.Stream {
+ headers: Headers;
+ method: string;
+ readable: boolean;
+ uri: Url;
+ writable: boolean;
+ getAgent(): http.Agent;
+ pipeDest(dest: any): void;
+ setHeader(name: string, value: string, clobber?: boolean): this;
+ setHeaders(headers: Headers): this;
+ qs(q: Object, clobber?: boolean): this;
+ form(): any;
+ form(form: any): this;
+ multipart(multipart: RequestPart[]): this;
+ json(val: any): this;
+ aws(opts: AWSOptions, now?: boolean): this;
+ auth(username: string, password: string, sendImmediately?: boolean, bearer?: string): this;
+ oauth(oauth: OAuthOptions): this;
+ jar(jar: CookieJar): this;
+ on(event: string, listener: Function): this;
+ on(event: 'request', listener: (req: http.ClientRequest) => void): this;
+ on(event: 'response', listener: (resp: http.IncomingMessage) => void): this;
+ on(event: 'data', listener: (data: Buffer | string) => void): this;
+ on(event: 'error', listener: (err: Error) => void): this;
+ on(event: 'complete', listener: (resp: http.IncomingMessage, body?: string | Buffer) => void): this;
+ write(buffer: Buffer, cb?: Function): boolean;
+ write(str: string, cb?: Function): boolean;
+ write(str: string, encoding: string, cb?: Function): boolean;
+ write(str: string, encoding?: string, fd?: string): boolean;
+ end(): void;
+ end(chunk: Buffer, cb?: Function): void;
+ end(chunk: string, cb?: Function): void;
+ end(chunk: string, encoding: string, cb?: Function): void;
+ pause(): void;
+ resume(): void;
+ abort(): void;
+ destroy(): void;
+ toJSON(): Object;
+ options: RequestOptions;
+ response: Promise>;
+}
+export interface RequestOptions {
+ baseUrl?: string;
+ jar?: CookieJar | boolean;
+ formData?: Object;
+ form?: Object | string;
+ auth?: AuthOptions;
+ oauth?: OAuthOptions;
+ aws?: {
+ secret: string;
+ bucket?: string;
+ };
+ hawk?: {
+ credentials: any;
+ };
+ qs?: any;
+ json?: any;
+ multipart?: RequestPart[] | Multipart;
+ agentOptions?: any;
+ agentClass?: any;
+ forever?: any;
+ host?: string;
+ port?: number;
+ method?: string;
+ headers?: Headers;
+ body?: any;
+ followRedirect?: boolean | ((response: http.IncomingMessage) => boolean);
+ followAllRedirects?: boolean;
+ maxRedirects?: number;
+ encoding?: string | null;
+ pool?: any;
+ timeout?: number;
+ proxy?: any;
+ strictSSL?: boolean;
+ rejectUnauthorized?: boolean;
+ gzip?: boolean;
+ preambleCRLF?: boolean;
+ postambleCRLF?: boolean;
+ key?: Buffer;
+ cert?: Buffer;
+ passphrase?: string;
+ ca?: Buffer;
+ har?: HttpArchiveRequest;
+ useQuerystring?: boolean;
+ uri?: string;
+ throwResponseError?: boolean;
+ family?: number;
+}
+export declare class RequestError extends Error {
+ request: Request;
+ innerError: Error;
+ constructor(err: Error, request: Request);
+}
+export declare class Response {
+ request: Request;
+ message: http.IncomingMessage;
+ private body;
+ constructor(request: Request, message: http.IncomingMessage, body: T);
+ get charset(): string;
+ get content(): T;
+ get contentLength(): number;
+ get contentType(): string;
+ get cookies(): Cookie[];
+ get headers(): Headers;
+ get httpVersion(): string;
+ get lastModified(): Date;
+ get method(): string;
+ get server(): string;
+ get statusCode(): number;
+ get statusMessage(): string;
+ get uri(): Url;
+}
+export declare class ResponseError extends Error {
+ response: Response;
+ statusCode: number;
+ constructor(response: Response);
+}
diff --git a/dist/index.js b/dist/index.js
new file mode 100644
index 0000000..881e40b
--- /dev/null
+++ b/dist/index.js
@@ -0,0 +1,147 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var request = require('request');
+exports.throwResponseError = false;
+async function get(uri, options) { return await create(uri, Object.assign({}, options, { method: 'GET' })).response; }
+exports.get = get;
+async function post(uri, options, content) { return await create(uri, Object.assign({}, options, { method: 'POST' }), content).response; }
+exports.post = post;
+async function put(uri, options, content) { return await create(uri, Object.assign({}, options, { method: 'PUT' }), content).response; }
+exports.put = put;
+async function patch(uri, options, content) { return await create(uri, Object.assign({}, options, { method: 'PATCH' }), content).response; }
+exports.patch = patch;
+async function head(uri, options) { return await create(uri, Object.assign({}, options, { method: 'HEAD' })).response; }
+exports.head = head;
+async function del(uri, options) { return await create(uri, Object.assign({}, options, { method: 'DELETE' })).response; }
+exports.del = del;
+exports.delete = del;
+async function json(uri, options) { return (await create(uri, Object.assign({}, options, { json: true })).response).content; }
+exports.json = json;
+function create(uri, options, content) {
+ options = Object.assign({}, options, { uri: uri });
+ if (options.jar === true)
+ options.jar = request.jar();
+ if (content !== undefined)
+ options.body = content;
+ var throwEnabled = exports.throwResponseError;
+ if (options.throwResponseError !== undefined)
+ throwEnabled = options.throwResponseError;
+ var instance;
+ var promise = new Promise((resolve, reject) => {
+ instance = request(options, (err, message, body) => {
+ if (!err) {
+ var response = new Response(instance, message, body);
+ if (message.statusCode < 400 || !throwEnabled)
+ resolve(response);
+ else
+ reject(new ResponseError(response));
+ }
+ else {
+ reject(new RequestError(err, instance));
+ }
+ });
+ });
+ instance.options = options;
+ instance.response = promise;
+ return instance;
+}
+exports.create = create;
+function stream(uri, options, content) {
+ options = Object.assign({}, options, { uri: uri });
+ if (options.jar === true)
+ options.jar = request.jar();
+ if (content !== undefined)
+ options.body = content;
+ var instance = request(options);
+ instance.options = options;
+ instance.response = new Promise((resolve, reject) => instance
+ .on('complete', message => {
+ var response = new Response(instance, message, null);
+ if (message.statusCode < 400 || !exports.throwResponseError)
+ resolve(response);
+ else
+ reject(new ResponseError(response));
+ })
+ .on('error', err => reject(new RequestError(err, instance))));
+ return instance;
+}
+exports.stream = stream;
+function defaults(options) {
+ if (options.throwResponseError !== undefined)
+ exports.throwResponseError = options.throwResponseError;
+ request.defaults(options);
+}
+exports.defaults = defaults;
+function debug(value) {
+ if (value === undefined)
+ return request.debug;
+ else
+ request.debug = value;
+}
+exports.debug = debug;
+class RequestError extends Error {
+ constructor(err, request) {
+ super(err.message);
+ this.request = request;
+ this.innerError = err;
+ }
+}
+exports.RequestError = RequestError;
+class Response {
+ constructor(request, message, body) {
+ this.request = request;
+ this.message = message;
+ this.body = body;
+ }
+ get charset() { return parseContentType(this.message.headers['content-type']).charset; }
+ get content() {
+ return this.body;
+ }
+ get contentLength() {
+ if ('content-length' in this.message.headers)
+ return parseInt(this.message.headers['content-length']);
+ else if (typeof this.body === 'string')
+ return this.body.length;
+ }
+ get contentType() { return parseContentType(this.message.headers['content-type']).contentType; }
+ get cookies() {
+ if (typeof this.request.options.jar === 'object') {
+ var jar = this.request.options.jar;
+ return jar.getCookies(this.request.options.uri);
+ }
+ }
+ get headers() { return this.message.headers; }
+ get httpVersion() { return this.message.httpVersion; }
+ get lastModified() { return new Date(this.message.headers['last-modified']); }
+ get method() { return this.message.method || this.message.request.method; }
+ get server() { return this.message.headers['server']; }
+ get statusCode() { return this.message.statusCode; }
+ get statusMessage() { return this.message.statusMessage; }
+ get uri() { return this.message.request.uri; }
+}
+exports.Response = Response;
+class ResponseError extends Error {
+ constructor(response) {
+ super(response.statusMessage);
+ this.response = response;
+ this.statusCode = response.statusCode;
+ }
+}
+exports.ResponseError = ResponseError;
+function parseKeyValue(text) {
+ var i = text.indexOf('=');
+ return {
+ key: i > 0 ? text.substring(0, i) : text,
+ value: i > 0 ? text.substring(i + 1) : null
+ };
+}
+function parseContentType(text) {
+ var list = text ? text.split('; ') : [];
+ var tuple1 = list.length > 0 ? parseKeyValue(list[0]) : null;
+ var tuple2 = list.length > 1 ? parseKeyValue(list[1]) : null;
+ return {
+ contentType: tuple1 ? tuple1.key : null,
+ charset: tuple2 && tuple2.key.toLowerCase() === 'charset' ? tuple2.value : null
+ };
+}
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/dist/index.js.map b/dist/index.js.map
new file mode 100644
index 0000000..c4cd98a
--- /dev/null
+++ b/dist/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main.d.ts b/dist/main.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/dist/main.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/dist/main.js b/dist/main.js
new file mode 100644
index 0000000..1b2ebd0
--- /dev/null
+++ b/dist/main.js
@@ -0,0 +1,9 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const WebRequest = require("./index");
+(async function () {
+ var result = await WebRequest.get('http://www.google.com/');
+ console.log(result.content);
+ process.exit();
+})();
+//# sourceMappingURL=main.js.map
\ No newline at end of file
diff --git a/dist/main.js.map b/dist/main.js.map
new file mode 100644
index 0000000..ce3b453
--- /dev/null
+++ b/dist/main.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAKA,sCAAsC;AAEtC,CAAC,KAAK;IACF,IAAI,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,IAAI,EAAE,CAAC;AACnB,CAAC,CAAC,EAAE,CAAC"}
\ No newline at end of file
diff --git a/dist/test.d.ts b/dist/test.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/dist/test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/dist/test.js b/dist/test.js
new file mode 100644
index 0000000..de3b660
--- /dev/null
+++ b/dist/test.js
@@ -0,0 +1,72 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const fs = require("fs");
+const chai_1 = require("chai");
+const WebRequest = require("./index");
+describe('all', function () {
+ it('get', async function () {
+ var response = await WebRequest.get('http://www.google.com/');
+ chai_1.assert(response.contentType === 'text/html', 'contentType');
+ chai_1.assert(response.charset === 'ISO-8859-1', 'charset');
+ chai_1.assert(response.statusCode === 200, 'statusCode');
+ chai_1.assert(response.statusMessage === 'OK', 'statusMessage');
+ chai_1.assert(response.method === 'GET', 'method');
+ chai_1.assert(response.headers['content-type'] === 'text/html; charset=ISO-8859-1', 'headers');
+ chai_1.assert(response.uri.protocol === 'http:', 'uri.protocol');
+ chai_1.assert(response.uri.host === 'www.google.com', 'uri.host');
+ chai_1.assert(response.uri.path === '/', 'uri.path');
+ chai_1.assert(response.contentLength > 1000, 'contentLength');
+ chai_1.assert(response.content.indexOf('') === 0, 'content');
+ });
+ it('404', async function () {
+ var response = await WebRequest.get('http://www.google.com/invalid');
+ chai_1.assert(response.statusCode === 404);
+ });
+ it('error', async function () {
+ try {
+ var response = await WebRequest.get('');
+ chai_1.assert(false, 'Expected exception did not occur');
+ }
+ catch (err) {
+ chai_1.assert(err instanceof WebRequest.RequestError, 'instanceof');
+ chai_1.assert(err.message === 'options.uri is a required argument', 'message');
+ }
+ });
+ it('json1', async function () {
+ var result = await WebRequest.json('http://query.yahooapis.com/v1/public/yql?q=select+*+from+yahoo.finance.quotes+where+symbol+IN+(%22YHOO%22,%22AAPL%22)&format=json&env=http://datatables.org/alltables.env');
+ chai_1.assert(result.query.results.quote[0].Symbol === 'YHOO', 'YHOO');
+ chai_1.assert(result.query.results.quote[1].Symbol === 'AAPL', 'AAPL');
+ });
+ it('json2', async function () {
+ var result = await WebRequest.json('http://query.yahooapis.com/v1/public/yql?q=select+*+from+yahoo.finance.quotes+where+symbol+IN+(%22YHOO%22,%22AAPL%22)&format=json&env=http://datatables.org/alltables.env');
+ chai_1.assert(result.query.results.quote[0].Symbol === 'YHOO', 'YHOO');
+ chai_1.assert(result.query.results.quote[1].Symbol === 'AAPL', 'AAPL');
+ });
+ it('cookies', async function () {
+ var response = await WebRequest.get('http://www.google.com/', { jar: true });
+ chai_1.assert(response.cookies.length > 0, response.cookies.length.toString() + ' cookies');
+ });
+ it('stream', async function () {
+ var file = 'google.png';
+ var request = WebRequest.stream('https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png');
+ var w = fs.createWriteStream(file);
+ request.pipe(w);
+ var response = await request.response;
+ await new Promise(resolve => w.on('finish', () => resolve()));
+ var stat = fs.statSync(file);
+ chai_1.assert(stat.size > 10000, 'file-size');
+ chai_1.assert(response.content === null, 'null content');
+ fs.unlinkSync(file);
+ });
+ it('throwResponseError', async function () {
+ try {
+ await WebRequest.get('http://xyzzy.com/123', { throwResponseError: true });
+ chai_1.assert(false, 'Expected exception did not occur');
+ }
+ catch (err) {
+ chai_1.assert(err instanceof WebRequest.ResponseError, 'instanceof');
+ chai_1.assert(err.response.statusCode === 404, 'statusCode');
+ }
+ });
+});
+//# sourceMappingURL=test.js.map
\ No newline at end of file
diff --git a/dist/test.js.map b/dist/test.js.map
new file mode 100644
index 0000000..1881592
--- /dev/null
+++ b/dist/test.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..5b245cf
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,567 @@
+{
+ "name": "web-request",
+ "version": "1.1.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@types/caseless": {
+ "version": "0.12.1",
+ "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.1.tgz",
+ "integrity": "sha512-FhlMa34NHp9K5MY1Uz8yb+ZvuX0pnvn3jScRSNAb75KHGB8d3rEU6hqMs3Z2vjuytcMfRg6c5CHMc3wtYyD2/A==",
+ "dev": true
+ },
+ "@types/chai": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.4.tgz",
+ "integrity": "sha512-h6+VEw2Vr3ORiFCyyJmcho2zALnUq9cvdB/IO8Xs9itrJVCenC7o26A6+m7D0ihTTr65eS259H5/Ghl/VjYs6g==",
+ "dev": true
+ },
+ "@types/form-data": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz",
+ "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/mocha": {
+ "version": "2.2.48",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz",
+ "integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "13.7.0",
+ "resolved": "https://nexus.tundra-shared.com/repository/npm-group/@types/node/-/node-13.7.0.tgz",
+ "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==",
+ "dev": true
+ },
+ "@types/request": {
+ "version": "2.47.1",
+ "resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.1.tgz",
+ "integrity": "sha512-TV3XLvDjQbIeVxJ1Z3oCTDk/KuYwwcNKVwz2YaT0F5u86Prgc4syDAp6P96rkTQQ4bIdh+VswQIC9zS6NjY7/g==",
+ "dev": true,
+ "requires": {
+ "@types/caseless": "*",
+ "@types/form-data": "*",
+ "@types/node": "*",
+ "@types/tough-cookie": "*"
+ }
+ },
+ "@types/tough-cookie": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.3.tgz",
+ "integrity": "sha512-MDQLxNFRLasqS4UlkWMSACMKeSm1x4Q3TxzUC7KQUsh6RK1ZrQ0VEyE3yzXcBu+K8ejVj4wuX32eUG02yNp+YQ==",
+ "dev": true
+ },
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "requires": {
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
+ }
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ },
+ "assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
+ },
+ "aws4": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz",
+ "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w=="
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+ "optional": true,
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ },
+ "chai": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz",
+ "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=",
+ "dev": true,
+ "requires": {
+ "assertion-error": "^1.0.1",
+ "deep-eql": "^0.1.3",
+ "type-detect": "^1.0.0"
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
+ },
+ "combined-stream": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
+ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz",
+ "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "debug": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
+ "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
+ "dev": true,
+ "requires": {
+ "ms": "0.7.1"
+ }
+ },
+ "deep-eql": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
+ "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=",
+ "dev": true,
+ "requires": {
+ "type-detect": "0.1.1"
+ },
+ "dependencies": {
+ "type-detect": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
+ "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=",
+ "dev": true
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "diff": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
+ "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=",
+ "dev": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz",
+ "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=",
+ "dev": true
+ },
+ "extend": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+ },
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "form-data": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
+ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
+ "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
+ "dev": true,
+ "requires": {
+ "inherits": "2",
+ "minimatch": "0.3"
+ }
+ },
+ "growl": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
+ "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=",
+ "dev": true
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
+ },
+ "har-validator": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
+ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
+ "requires": {
+ "ajv": "^5.1.0",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ },
+ "jade": {
+ "version": "0.26.3",
+ "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz",
+ "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=",
+ "dev": true,
+ "requires": {
+ "commander": "0.6.1",
+ "mkdirp": "0.3.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz",
+ "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
+ "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=",
+ "dev": true
+ }
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "optional": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "lru-cache": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
+ "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
+ "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ=="
+ },
+ "mime-types": {
+ "version": "2.1.18",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
+ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
+ "requires": {
+ "mime-db": "~1.33.0"
+ }
+ },
+ "minimatch": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
+ "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "2",
+ "sigmund": "~1.0.0"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "mocha": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz",
+ "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=",
+ "dev": true,
+ "requires": {
+ "commander": "2.3.0",
+ "debug": "2.2.0",
+ "diff": "1.4.0",
+ "escape-string-regexp": "1.0.2",
+ "glob": "3.2.11",
+ "growl": "1.9.2",
+ "jade": "0.26.3",
+ "mkdirp": "0.5.1",
+ "supports-color": "1.2.0",
+ "to-iso-string": "0.0.2"
+ }
+ },
+ "ms": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
+ "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ },
+ "request": {
+ "version": "2.87.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
+ "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.6.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.1",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.1",
+ "har-validator": "~5.0.3",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.17",
+ "oauth-sign": "~0.8.2",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.1",
+ "safe-buffer": "^5.1.1",
+ "tough-cookie": "~2.3.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.1.0"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "sigmund": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
+ "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.14.2",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
+ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ }
+ },
+ "supports-color": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz",
+ "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=",
+ "dev": true
+ },
+ "to-iso-string": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz",
+ "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=",
+ "dev": true
+ },
+ "tough-cookie": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
+ "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
+ "requires": {
+ "punycode": "^1.4.1"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "optional": true
+ },
+ "type-detect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz",
+ "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
+ "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA=="
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
index a3694f8..c7ad6f6 100644
--- a/package.json
+++ b/package.json
@@ -1,14 +1,17 @@
{
"name": "web-request",
- "version": "1.0.8",
+ "version": "1.1.4",
"description": "Simplifies making web requests with TypeScript async/await",
- "main": "index.js",
+ "main": "dist/index.js",
+ "types": "dist/index.d.ts",
"scripts": {
- "test": "mocha"
+ "prepublish": "npm run build",
+ "test": "mocha",
+ "build": "tsc"
},
"repository": {
"type": "git",
- "url": "git+https://github.com/davetemplin/web-request.git"
+ "url": "git+https://github.com/mbharanya/web-request.git"
},
"keywords": [
"async",
@@ -37,11 +40,14 @@
"@types/chai": "^4.0.3",
"@types/mocha": "^2.2.41",
"chai": "^3.4.1",
- "mocha": "^2.3.4"
+ "mocha": "^2.3.4",
+ "@types/node": "^13.7.0",
+ "@types/request": "^2.0.1"
},
"dependencies": {
- "@types/node": "^8.0.22",
- "@types/request": "^2.0.1",
"request": "^2.69.0"
- }
+ },
+ "files": [
+ "dist"
+ ]
}
diff --git a/index.ts b/src/index.ts
similarity index 99%
rename from index.ts
rename to src/index.ts
index 16f1be6..c437e0d 100644
--- a/index.ts
+++ b/src/index.ts
@@ -248,6 +248,7 @@ export interface RequestOptions {
useQuerystring?: boolean;
uri?: string; // extension
throwResponseError?: boolean; // extension
+ family?:number;
}
export class RequestError extends Error {
diff --git a/main.ts b/src/main.ts
similarity index 100%
rename from main.ts
rename to src/main.ts
diff --git a/test.ts b/src/test.ts
similarity index 100%
rename from test.ts
rename to src/test.ts
diff --git a/tsconfig.json b/tsconfig.json
index d2d485e..8fdf560 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -6,17 +6,12 @@
"preserveConstEnums": false,
"sourceMap": true,
"declaration": true,
- "target": "es5",
- "lib": ["es6", "es2015"]
+ "target": "es2018",
+ "lib": ["ES2018","esnext.asynciterable" ],
+ "outDir": "dist",
+ "rootDir": "./src",
},
- "files": [
- "node_modules/@types/chai/index.d.ts",
- "node_modules/@types/form-data/index.d.ts",
- "node_modules/@types/mocha/index.d.ts",
- "node_modules/@types/node/index.d.ts",
- "node_modules/@types/request/index.d.ts",
- "index.ts",
- "main.ts",
- "test.ts"
+ "include": [
+ "src/**/*"
]
}
\ No newline at end of file