Socket
Socket
Sign inDemoInstall

gangway

Package Overview
Dependencies
Maintainers
2
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gangway - npm Package Compare versions

Comparing version 0.13.0 to 1.0.0

.babelrc

15

package.json
{
"name": "gangway",
"version": "0.13.0",
"version": "1.0.0",
"description": "A client-side API abstraction layer",
"main": "src/api.js",
"scripts": {
"test": "istanbul cover _mocha -- -R dot",
"test:watch": "mocha -w -R dot"
},
"author": "Nate Hunzaker",

@@ -13,5 +17,10 @@ "license": "MIT",

"dependencies": {
"promise": "~7.0",
"superagent": "~1.2"
"promise": "~7.1",
"superagent": "~1.6"
},
"devDependencies": {
"faux-jax": "4.2.1",
"istanbul": "0.4.1",
"mocha": "2.3.4"
}
}

4

README.md

@@ -17,5 +17,5 @@ # Gangway

```javascript
let Gangway = require('../src')
var Gangway = require('../src')
let API = Gangway({
var API = Gangway({
baseURL: 'http://example.com',

@@ -22,0 +22,0 @@ headers: {

@@ -1,50 +0,30 @@

'use strict';
var Mock = require('./mock')
var Promise = require('promise')
var Request = require('superagent')
var prepare = require('./prepare')
var url = require('./url')
var assign = require('./assign')
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
module.exports = function AJAX (options) {
options = prepare(options)
var Promise = require('promise');
var Request = require('superagent');
var url = require('./url');
var result = require('./result');
var defaults = {
body: undefined,
params: undefined,
headers: {},
method: 'GET',
path: '',
type: 'application/json',
beforeSend: function beforeSend(ajax) {
return ajax;
},
onResponse: function onResponse(response) {
return response.body;
},
onError: function onError(error) {
return error;
}
};
module.exports = function (routeConfig, requestConfig) {
var options = _extends({}, defaults, routeConfig, requestConfig);
if ('mock' in options) {
return Promise.resolve(result(options.mock, options));
return Mock(options)
}
var location = url(options.baseURL, options.path, options.params || options.body);
var message = Request(options.method, location);
var location = url(options.baseURL, options.path, assign(options.body, options.params))
var message = Request(options.method, location)
message.send(options.body) // body parameters
.query(options.query) // query parameters
.set(options.headers) // headers
.type(options.type); // content type
message.type(options.type)
.send(options.body)
.query(options.query)
.set(options.headers)
options.beforeSend(message);
options.beforeSend(message)
return new Promise(function (resolve, reject) {
message.end(function (err, response) {
return err ? reject(options.onError(err)) : resolve(options.onResponse(response));
});
});
};
return new Promise(function(resolve, reject) {
message.end(function(err, response) {
return err ? reject(options.onError(err)) : resolve(options.onResponse(response))
})
})
}

@@ -1,14 +0,12 @@

'use strict';
var ajax = require('./ajax')
var route = require('./route')
var ajax = require('./ajax');
var _route = require('./route');
module.exports = function (config, routes) {
if (!config) {
throw new TypeError('Please provide a configuration object as the first argument.');
throw new TypeError('Please provide a configuration object as the first argument.')
}
if ('baseURL' in config === false) {
throw new TypeError('baseURL configuration option is required');
throw new TypeError('baseURL configuration option is required')
}

@@ -20,13 +18,13 @@

toString: function toString() {
return config.baseURL;
toString: function () {
return config.baseURL
},
route: function route(routes) {
return _route(API, routes);
route: function (routes) {
return route(API, routes)
}
};
}
return API.route(routes);
};
return API.route(routes)
}
// This is taken from Call, hapi's routing logic:
// https://github.com/hapijs/call/blob/master/lib/regex.js
'use strict';
var pattern = new RegExp('(?:\\{(\\w+)(?:(\\*)(\\d+)?)?(\\?)?\\})', 'g')
var pattern = new RegExp('(?:\\{(\\w+)(?:(\\*)(\\d+)?)?(\\?)?\\})', 'g');
module.exports = function (string, params) {
params = params || {}
module.exports = function (string) {
var params = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
return string.replace(pattern, function (match, key, isWildcard, _, isOptional) {
if (isWildcard) {
throw TypeError('Gangway does not support Hapi wildcard routes within ' + string);
throw TypeError("Gangway does not support Hapi wildcard routes within " + string)
}
if (key in params === false && !isOptional) {
throw TypeError('"' + key + '" was not provided in the given params for ' + string);
throw TypeError(key + " was not provided in the given params for " + string)
}
return params[key] || '';
});
};
return key in params ? params[key] : ''
})
}

@@ -10,12 +10,10 @@ /**

"use strict";
module.exports = function (obj, transform, map) {
map = map || {}
module.exports = function (obj, transform) {
var map = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
for (var key in obj) {
map[key] = transform(obj[key], key, obj);
map[key] = transform(obj[key], key, obj)
}
return map;
};
return map
}

@@ -1,25 +0,22 @@

'use strict';
var remap = require('./remap')
var prepare = require('./prepare')
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
module.exports = function route(API, routes) {
var remap = require('./remap');
return remap(routes || {}, function(resource) {
module.exports = function route(API) {
var routes = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
// For each endpoint (create, read, update, delete...)
return remap(resource, function(options) {
var config = prepare(API.config, options)
return remap(routes, function (resource) {
var request = function (overrides) {
return API.ajax(prepare(config, overrides))
}
// For each endpoint (create, read, update, delete...)
return remap(resource, function (options) {
var config = _extends({}, API.config, options);
var request = function request(overrides) {
return API.ajax(config, overrides);
};
// Make the config for this route available under 'config'
request.config = config;
request.config = config
return request;
});
}, API);
};
return request
})
}, API)
}

@@ -1,12 +0,10 @@

'use strict';
var parameterizeRoute = require('./parameterizeRoute')
var trimRight = /\/$/
var trimLeft = /^\//
var parameterizeRoute = require('./parameterizeRoute');
var trimRight = /\/$/;
var trimLeft = /^\//;
module.exports = function (base, path, params) {
base = base.replace(trimRight, '');
path = path.replace(trimLeft, '');
base = base.replace(trimRight, '')
path = path.replace(trimLeft, '')
return parameterizeRoute(base + '/' + path, params).replace(trimRight, '');
};
return parameterizeRoute(base + '/' + path, params).replace(trimRight, '')
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc