Major fixes

* Fixed type of url property
* Improved README file
This commit is contained in:
minicx 2023-09-04 22:57:44 +03:00
parent 8cd436f4ba
commit 579ed52c43
4 changed files with 40 additions and 12 deletions

View File

@ -6,6 +6,10 @@
</a>
<a href="https://www.npmjs.com/package/flaresolverr.js">
<img src="https://badge.fury.io/js/flaresolverr.js.svg" style="width: 100%; height: auto;" alt="npm version">
<img src="https://img.shields.io/npm/types/flaresolverr.js" style="width: 100%; height: auto;" alt="type definitions">
</a>
<a href="https://www.npmjs.com/package/flaresolverr.js?activeTab=dependents">
<img src="https://img.shields.io/librariesio/dependents/npm/flaresolverr.js" style="width: 100%; height: auto;" alt="dependents">
</a>
</p>
@ -46,7 +50,7 @@ console.log(challengeResult);
status: 'ok',
message: 'Challenge solved!',
solution: {
url: 'http://example.com',
url: URL { href:"http://example.com", ... },
status: 200,
cookies: [ [Object], [Object], [Object], [Object], [Object] ],
userAgent: 'Mozilla/5.0 (X11; Linux x86_64) ...'
@ -74,4 +78,5 @@ This project is licensed under the MIT License - see the LICENSE file for detail
Note: FlareSolverr.js is a third-party tool and is not affiliated with or endorsed by Cloudflare.
## Contributing
Feel free to contribute to this project!

View File

@ -1,6 +1,6 @@
{
"name": "flaresolverr.js",
"version": "0.1.1",
"version": "0.2.0",
"description": "Api for bypassing cloudflare via dockered FlareSolverr",
"files": [
"dist",

View File

@ -14,6 +14,7 @@ import {
IRequestGetOptions,
IRequestPostOptions,
IRequestAnswer,
IRawRequestAnswer,
} from './Interfaces.js';
export class FlareSolverr {
@ -191,7 +192,7 @@ export class FlareSolverr {
* @returns Promise that is resolved to an object of type IRequestAnswer.
*/
async get(options: IRequestGetOptions): Promise<IRequestAnswer> {
return await this._makeRequest({
const response = await this._makeRequest<IRawRequestAnswer>({
cmd: 'request.get',
...options,
proxy:
@ -199,6 +200,13 @@ export class FlareSolverr {
? undefined
: this._getProxyFromURL(options.proxy),
});
return {
...response,
solution: {
...response.solution,
url: new URL(response.solution.url),
},
};
}
/**
@ -207,7 +215,7 @@ export class FlareSolverr {
* @returns Promise that is resolved to an object of type IRequestAnswer.
*/
async post(options: IRequestPostOptions): Promise<IRequestAnswer> {
return await this._makeRequest({
const response = await this._makeRequest<IRawRequestAnswer>({
cmd: 'request.post',
...options,
proxy:
@ -223,5 +231,13 @@ export class FlareSolverr {
)
.join('&'),
});
return {
...response,
solution: {
...response.solution,
url: new URL(response.solution.url),
},
};
}
}

View File

@ -143,15 +143,8 @@ export interface IRequestPostOptions extends IRequestGetOptions {
postData: Record<string, string | number | boolean>;
}
/**
* The interface representing the response object from the sessions.create or sessions.post API method.
*/
export interface IRequestAnswer extends IBaseAnswer {
export interface IBaseRequestAnswer extends IBaseAnswer {
solution: {
/**
* The target URL.
*/
url: string;
/**
* The status code of the response from target url.
*/
@ -174,3 +167,17 @@ export interface IRequestAnswer extends IBaseAnswer {
userAgent: string;
};
}
/**
* The raw interface representing a response object from the sessions.create or sessions.post API method.
*/
export interface IRawRequestAnswer extends IBaseRequestAnswer {
solution: IBaseRequestAnswer['solution'] & { url: string };
}
/**
* The interface representing a response object from the sessions.create or sessions.post API method.
*/
export interface IRequestAnswer extends IBaseRequestAnswer {
solution: IBaseRequestAnswer['solution'] & { url: URL };
}