Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modernize ES5 to ES6 with lebab #607

Merged
merged 18 commits into from
May 8, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ module.exports = {
'accessor-pairs': 'error',
'array-bracket-spacing': ['error', 'never'],
'array-callback-return': 'off',
'arrow-body-style': 'error',
'arrow-parens': 'error',
'arrow-spacing': 'error',
'block-scoped-var': 'off',
Expand Down Expand Up @@ -43,7 +42,7 @@ module.exports = {
'func-call-spacing': 'error',
'func-name-matching': 'error',
'func-names': 'off',
'func-style': ['error', 'declaration'],
'func-style': ['error', 'declaration', {allowArrowFunctions: true}],
'generator-star-spacing': 'error',
'global-require': 'off',
'guard-for-in': 'off',
Expand Down
2 changes: 1 addition & 1 deletion examples/webhook-signing/express.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ app.post(
}
);

app.listen(3000, function() {
app.listen(3000, () => {
console.log('Example app listening on port 3000!');
});
10 changes: 5 additions & 5 deletions lib/Error.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
'use strict';

var utils = require('./utils');
const utils = require('./utils');

module.exports = _Error;

/**
* Generic Error klass to wrap any errors returned by stripe-node
*/
function _Error(raw) {
this.populate.apply(this, arguments);
this.populate(...arguments);
this.stack = new Error(this.message).stack;
}

Expand All @@ -27,9 +27,9 @@ _Error.extend = utils.protoExtend;
* Create subclass of internal Error klass
* (Specifically for errors returned from Stripe's REST API)
*/
var StripeError = (_Error.StripeError = _Error.extend({
const StripeError = (_Error.StripeError = _Error.extend({
type: 'StripeError',
populate: function(raw) {
populate(raw) {
// Move from prototype def (so it appears in stringified obj)
this.type = this.type;

Expand All @@ -49,7 +49,7 @@ var StripeError = (_Error.StripeError = _Error.extend({
/**
* Helper factory which takes raw stripe errors and outputs wrapping instances
*/
StripeError.generate = function(rawStripeError) {
StripeError.generate = (rawStripeError) => {
switch (rawStripeError.type) {
case 'card_error':
return new _Error.StripeCardError(rawStripeError);
Expand Down
35 changes: 17 additions & 18 deletions lib/MultipartDataGenerator.js
Original file line number Diff line number Diff line change
@@ -1,51 +1,50 @@
'use strict';

var Buffer = require('safe-buffer').Buffer;
var utils = require('./utils');
const Buffer = require('safe-buffer').Buffer;
const utils = require('./utils');

// Method for formatting HTTP body for the multipart/form-data specification
// Mostly taken from Fermata.js
// https://github.com/natevw/fermata/blob/5d9732a33d776ce925013a265935facd1626cc88/fermata.js#L315-L343
function multipartDataGenerator(method, data, headers) {
var segno = (
const segno = (
Math.round(Math.random() * 1e16) + Math.round(Math.random() * 1e16)
).toString();
headers['Content-Type'] = 'multipart/form-data; boundary=' + segno;
var buffer = Buffer.alloc(0);
headers['Content-Type'] = `multipart/form-data; boundary=${segno}`;
let buffer = Buffer.alloc(0);

function push(l) {
var prevBuffer = buffer;
var newBuffer = l instanceof Buffer ? l : Buffer.from(l);
const prevBuffer = buffer;
const newBuffer = l instanceof Buffer ? l : Buffer.from(l);
buffer = Buffer.alloc(prevBuffer.length + newBuffer.length + 2);
prevBuffer.copy(buffer);
newBuffer.copy(buffer, prevBuffer.length);
buffer.write('\r\n', buffer.length - 2);
}

function q(s) {
return '"' + s.replace(/"|"/g, '%22').replace(/\r\n|\r|\n/g, ' ') + '"';
return `"${s.replace(/"|"/g, '%22').replace(/\r\n|\r|\n/g, ' ')}"`;
}

for (var k in utils.flattenAndStringify(data)) {
var v = data[k];
push('--' + segno);
for (const k in utils.flattenAndStringify(data)) {
const v = data[k];
push(`--${segno}`);
if (v.hasOwnProperty('data')) {
push(
'Content-Disposition: form-data; name=' +
q(k) +
'; filename=' +
q(v.name || 'blob')
`Content-Disposition: form-data; name=${q(k)}; filename=${q(
v.name || 'blob'
)}`
);
push('Content-Type: ' + (v.type || 'application/octet-stream'));
push(`Content-Type: ${v.type || 'application/octet-stream'}`);
push('');
push(v.data);
} else {
push('Content-Disposition: form-data; name=' + q(k));
push(`Content-Disposition: form-data; name=${q(k)}`);
push('');
push(v);
}
}
push('--' + segno + '--');
push(`--${segno}--`);

return buffer;
}
Expand Down
6 changes: 3 additions & 3 deletions lib/ResourceNamespace.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
// It also works recursively, so you could do i.e. `stripe.billing.invoicing.pay`.

function ResourceNamespace(stripe, resources) {
for (var name in resources) {
var camelCaseName = name[0].toLowerCase() + name.substring(1);
for (const name in resources) {
const camelCaseName = name[0].toLowerCase() + name.substring(1);

var resource = new resources[name](stripe);
const resource = new resources[name](stripe);

this[camelCaseName] = resource;
}
Expand Down
135 changes: 64 additions & 71 deletions lib/StripeMethod.basic.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
'use strict';

var isPlainObject = require('lodash.isplainobject');
var stripeMethod = require('./StripeMethod');
var utils = require('./utils');
const isPlainObject = require('lodash.isplainobject');
const stripeMethod = require('./StripeMethod');
const utils = require('./utils');

module.exports = {
create: stripeMethod({
Expand Down Expand Up @@ -33,12 +33,12 @@ module.exports = {
urlParams: ['id'],
}),

setMetadata: function(id, key, value, auth, cb) {
var self = this;
var data = key;
var isObject = isPlainObject(key);
setMetadata(id, key, value, auth, cb) {
const self = this;
const data = key;
const isObject = isPlainObject(key);
// We assume null for an empty object
var isNull = data === null || (isObject && !Object.keys(data).length);
const isNull = data === null || (isObject && !Object.keys(data).length);

// Allow optional passing of auth & cb:
if ((isNull || isObject) && typeof value == 'string') {
Expand All @@ -50,85 +50,78 @@ module.exports = {
auth = null;
}

var urlData = this.createUrlData();
var path = this.createFullPath('/' + id, urlData);
const urlData = this.createUrlData();
const path = this.createFullPath(`/${id}`, urlData);

return utils.callbackifyPromiseWithTimeout(
new Promise(
function(resolve, reject) {
if (isNull) {
// Reset metadata:
sendMetadata(null, auth);
} else if (!isObject) {
// Set individual metadata property:
var metadata = {};
metadata[key] = value;
sendMetadata(metadata, auth);
} else {
// Set entire metadata object after resetting it:
this._request(
'POST',
null,
path,
{metadata: null},
auth,
{},
function(err, response) {
if (err) {
return reject(err);
}
sendMetadata(data, auth);
new Promise((resolve, reject) => {
if (isNull) {
// Reset metadata:
sendMetadata(null, auth);
} else if (!isObject) {
// Set individual metadata property:
const metadata = {};
metadata[key] = value;
sendMetadata(metadata, auth);
} else {
// Set entire metadata object after resetting it:
this._request(
'POST',
null,
path,
{metadata: null},
auth,
{},
(err, response) => {
if (err) {
return reject(err);
}
);
}
sendMetadata(data, auth);
}
);
}

function sendMetadata(metadata, auth) {
self._request(
'POST',
null,
path,
{metadata: metadata},
auth,
{},
function(err, response) {
if (err) {
reject(err);
} else {
resolve(response.metadata);
}
function sendMetadata(metadata, auth) {
self._request(
'POST',
null,
path,
{metadata},
auth,
{},
(err, response) => {
if (err) {
reject(err);
} else {
resolve(response.metadata);
}
);
}
}.bind(this)
),
}
);
}
}),
cb
);
},

getMetadata: function(id, auth, cb) {
getMetadata(id, auth, cb) {
if (!cb && typeof auth == 'function') {
cb = auth;
auth = null;
}

var urlData = this.createUrlData();
var path = this.createFullPath('/' + id, urlData);
const urlData = this.createUrlData();
const path = this.createFullPath(`/${id}`, urlData);

return utils.callbackifyPromiseWithTimeout(
new Promise(
function(resolve, reject) {
this._request('GET', null, path, {}, auth, {}, function(
err,
response
) {
if (err) {
reject(err);
} else {
resolve(response.metadata);
}
});
}.bind(this)
),
new Promise((resolve, reject) => {
this._request('GET', null, path, {}, auth, {}, (err, response) => {
if (err) {
reject(err);
} else {
resolve(response.metadata);
}
});
}),
cb
);
},
Expand Down
16 changes: 8 additions & 8 deletions lib/StripeMethod.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
'use strict';

var utils = require('./utils');
var makeRequest = require('./makeRequest');
var makeAutoPaginationMethods = require('./autoPagination')
const utils = require('./utils');
const makeRequest = require('./makeRequest');
const makeAutoPaginationMethods = require('./autoPagination')
.makeAutoPaginationMethods;

/**
Expand All @@ -21,18 +21,18 @@ var makeAutoPaginationMethods = require('./autoPagination')
*/
function stripeMethod(spec) {
return function() {
var self = this;
var args = [].slice.call(arguments);
const self = this;
const args = [].slice.call(arguments);

var callback = typeof args[args.length - 1] == 'function' && args.pop();
const callback = typeof args[args.length - 1] == 'function' && args.pop();

var requestPromise = utils.callbackifyPromiseWithTimeout(
const requestPromise = utils.callbackifyPromiseWithTimeout(
makeRequest(self, args, spec, {}),
callback
);

if (spec.methodType === 'list') {
var autoPaginationMethods = makeAutoPaginationMethods(
const autoPaginationMethods = makeAutoPaginationMethods(
self,
args,
spec,
Expand Down
Loading