Package Exports
- curl-wrap-ciff
- curl-wrap-ciff/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (curl-wrap-ciff) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
curl-wrap-ciff
Nodejs library that wraps curl command line
Install
npm install curl-wrap-ciff
# OR
yarn add curl-wrap-ciffUsage
const {Curl} = require('curl-wrap-ciff');
const response = await Curl.get('https://www.google.com');
console.log(response.body);
console.log(response.statusCode);Creating a Curl Instance
const response = await Curl.url('https://www.example.com')
.post()
.header('Accept', 'application/json')
.followRedirect(true)
.timeout(30);
// you can also use
const curl = new Curl();
curl.url('https://www.example.com');
curl.post();
curl.header('Accept', 'application/json');
curl.followRedirect(true);
curl.timeout(30);
const res = await curl;Setting Headers
curl.header('Content-Type', 'application/json');
curl.headers({
'User-Agent': 'curl-wrap/1.0',
'Accept': 'application/json'
});Setting Cookies
curl.cookie('sessionId', 'abc123');
curl.cookies({
'sessionId': 'abc123',
'userId': 'user456'
});
// enable in memory cookie storage for all requests
curl.globalCookies();
// use a cookie file to store and read cookies
curl.cookieFile('cookies.json');Setting Proxy
curl.proxy('http://proxy.example.com:8080');
curl.proxy({
address: 'proxy.example.com',
port: 8080,
type: 'http',
auth: {
username: 'user',
password: 'pass'
}
});Authentication
curl.httpAuth('username', 'password');
curl.bearerToken('your-token');
curl.apiToken('your-api-token');Impersonating a Browser
NOTE: it will use curl-impersonate-chrome and curl-impersonate-ff if they are in PATH
curl.impersonate('chrome');
curl.impersonate('chromeMobile');
curl.impersonate('firefox');
curl.impersonate('safari');
curl.impersonate('edge');Setting Request Method
curl.method('POST');
curl.get();
curl.post();
curl.put();Setting Request Body
curl.body({key: 'value'});
curl.body('any data');
curl.json({key: 'value'});Setting POST/PUT Fields
curl.field('key', 'value');
curl.fields({
key1: value1,
key2: value2,
});Setting Query Parameters
curl.query('search', 'term');
curl.query({
search: 'term',
page: 1
});Setting Timeout
curl.timeout(30); // in seconds
curl.timeoutMs(30000); // in millisecondsHandling Responses
try {
const response = await curl;
console.log(response.body);
console.log(response.statusCode);
}
catch (error) {
console.error(error);
}Verbose Output
curl.verbose(true);
const response = await curl;
console.log(response.stderr);Method Chaining
Curl.url('https://www.example.com')
.method('GET')
.header('Accept', 'application/json')
.followRedirect(true)
.maxRedirects(5)
.timeout(30)
.then(response => {
console.log(response.body);
})
.catch(error => {
console.error(error);
})
.finally(() => {
console.log('Request completed');
});