1 | ;
|
2 |
|
3 | // ResourceNamespace allows you to create nested resources, i.e. `stripe.issuing.cards`.
|
4 | // It also works recursively, so you could do i.e. `stripe.billing.invoicing.pay`.
|
5 |
|
6 | function ResourceNamespace(stripe, resources) {
|
7 | for (const name in resources) {
|
8 | const camelCaseName = name[0].toLowerCase() + name.substring(1);
|
9 |
|
10 | const resource = new resources[name](stripe);
|
11 |
|
12 | this[camelCaseName] = resource;
|
13 | }
|
14 | }
|
15 |
|
16 | module.exports = function(namespace, resources) {
|
17 | return function(stripe) {
|
18 | return new ResourceNamespace(stripe, resources);
|
19 | };
|
20 | };
|
21 |
|
22 | module.exports.ResourceNamespace = ResourceNamespace;
|