feat(scope) switch to pushrocks scope

This commit is contained in:
2018-06-18 07:39:42 +02:00
parent 5f8b5f7690
commit 93595a222b
13 changed files with 177 additions and 257 deletions

View File

@@ -1,66 +1,5 @@
import * as https from 'https';
import * as plugins from './smartrequest.plugins';
import * as interfaces from './smartrequest.interfaces';
import { request, extendedIncomingMessage } from './smartrequest.request';
export { request, extendedIncomingMessage } from './smartrequest.request';
export { ISmartRequestOptions } from './smartrequest.interfaces';
export let get = async (domainArg: string, optionsArg: interfaces.ISmartRequestOptions = {}) => {
optionsArg.method = 'GET';
let response = await request(domainArg, optionsArg);
return response;
};
export let getBinary = async (domainArg: string, optionsArg: interfaces.ISmartRequestOptions = {}) => {
const done = plugins.smartq.defer();
const response = await request(domainArg, optionsArg, true);
var data = [];
response.on('data', function(chunk) {
data.push(chunk);
}).on('end', function() {
//at this point data is an array of Buffers
//so Buffer.concat() can make us a new Buffer
//of all of them together
const buffer = Buffer.concat(data);
response.body = buffer.toString('binary');
done.resolve();
});
await done.promise;
return response;
}
export let post = async (domainArg: string, optionsArg: interfaces.ISmartRequestOptions = {}) => {
optionsArg.method = 'POST';
if (
typeof optionsArg.requestBody === 'object' &&
(!optionsArg.headers || !optionsArg.headers['Content-Type'])
) {
// make sure headers exist
if (!optionsArg.headers) {
optionsArg.headers = {};
}
// assign the right Content-Type, leaving all other headers in place
Object.assign(optionsArg.headers, {
'Content-Type': 'application/json'
});
}
let response = await request(domainArg, optionsArg);
return response;
};
export let put = async (domainArg: string, optionsArg: interfaces.ISmartRequestOptions = {}) => {
optionsArg.method = 'PUT';
let response = await request(domainArg, optionsArg);
return response;
};
export let del = async (domainArg: string, optionsArg: interfaces.ISmartRequestOptions = {}) => {
optionsArg.method = 'DELETE';
let response = await request(domainArg, optionsArg);
return response;
};
export * from './smartrequest.json';
export * from './smartrequest.binary';

24
ts/smartrequest.binary.ts Normal file
View File

@@ -0,0 +1,24 @@
// this file implements methods to get and post binary data.
import * as interfaces from './smartrequest.interfaces';
import { request } from './smartrequest.request';
import * as plugins from './smartrequest.plugins';
export const getBinary = async (domainArg: string, optionsArg: interfaces.ISmartRequestOptions = {}) => {
const done = plugins.smartq.defer();
const response = await request(domainArg, optionsArg, true);
const data = [];
response.on('data', function(chunk) {
data.push(chunk);
}).on('end', function() {
//at this point data is an array of Buffers
//so Buffer.concat() can make us a new Buffer
//of all of them together
const buffer = Buffer.concat(data);
response.body = buffer.toString('binary');
done.resolve();
});
await done.promise;
return response;
}

52
ts/smartrequest.json.ts Normal file
View File

@@ -0,0 +1,52 @@
// This file implements methods to get and post JSON in a simple manner.
import * as interfaces from './smartrequest.interfaces';
import { request } from './smartrequest.request';
/**
* gets Json and puts the right headers + handles response aggregation
* @param domainArg
* @param optionsArg
*/
export const getJson = async (domainArg: string, optionsArg: interfaces.ISmartRequestOptions = {}) => {
optionsArg.method = 'GET';
optionsArg.headers = {
...optionsArg.headers,
}
let response = await request(domainArg, optionsArg);
return response;
};
export const postJson = async (domainArg: string, optionsArg: interfaces.ISmartRequestOptions = {}) => {
optionsArg.method = 'POST';
if (
typeof optionsArg.requestBody === 'object' &&
(!optionsArg.headers || !optionsArg.headers['Content-Type'])
) {
// make sure headers exist
if (!optionsArg.headers) {
optionsArg.headers = {};
}
// assign the right Content-Type, leaving all other headers in place
optionsArg.headers = {
...optionsArg.headers,
'Content-Type': 'application/json'
};
}
let response = await request(domainArg, optionsArg);
return response;
};
export const putJson = async (domainArg: string, optionsArg: interfaces.ISmartRequestOptions = {}) => {
optionsArg.method = 'PUT';
let response = await request(domainArg, optionsArg);
return response;
};
export const delJson = async (domainArg: string, optionsArg: interfaces.ISmartRequestOptions = {}) => {
optionsArg.method = 'DELETE';
let response = await request(domainArg, optionsArg);
return response;
};