@stigg/node-server-sdk 0.25.0 → 0.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,7 +21,7 @@ class EntitlementsApi {
21
21
  });
22
22
  return entitlements;
23
23
  }
24
- async createUsageMeasurement(data) {
24
+ createUsageMeasurement(data) {
25
25
  return this.client.mutate({
26
26
  mutation: (0, core_1.gql) `
27
27
  mutation CreateUsageMeasurement($usageMeasurement: UsageMeasurementCreateInput!) {
@@ -69,4 +69,4 @@ class EntitlementsApi {
69
69
  }
70
70
  }
71
71
  exports.default = EntitlementsApi;
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnRzQXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9lbnRpdGxlbWVudHMvZW50aXRsZW1lbnRzQXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsOENBQTRGO0FBZTVGLHVEQUE4RjtBQUU5RixNQUFNLGVBQWU7SUFDbkIsWUFBNkIsTUFBMkM7UUFBM0MsV0FBTSxHQUFOLE1BQU0sQ0FBcUM7SUFBRyxDQUFDO0lBRTVFLEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBd0I7UUFDNUMsTUFBTSxFQUNKLElBQUksRUFBRSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxHQUMzQyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQTREO1lBQ3JGLEtBQUssRUFBRSxJQUFBLFVBQUcsRUFBQTs7Ozs7O1VBTU4sc0NBQW9CO09BQ3ZCO1lBQ0QsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFO1lBQ3BCLFdBQVcsRUFBRSxjQUFjO1NBQzVCLENBQUMsQ0FBQztRQUVILE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsSUFBNEI7UUFDdkQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBMEU7WUFDakcsUUFBUSxFQUFFLElBQUEsVUFBRyxFQUFBOzs7Ozs7T0FNWjtZQUNELFNBQVMsRUFBRSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRTtZQUNyQyxXQUFXLEVBQUUsY0FBYztTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLDBCQUEwQixDQUM5QixTQUFpQixFQUNqQixVQUFrQixFQUNsQixzQkFBOEMsRUFDOUMsY0FBdUI7UUFFdkIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDdEI7WUFDRSxRQUFRLEVBQUUsSUFBQSxVQUFHLEVBQUE7Ozs7U0FJWjtZQUNELFNBQVMsRUFBRTtnQkFDVCx5QkFBeUIsRUFBRTtvQkFDekIsc0JBQXNCO29CQUN0QixVQUFVO29CQUNWLFNBQVM7b0JBQ1QsY0FBYztpQkFDZjthQUNGO1NBQ0YsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELDRCQUE0QixDQUMxQixvQkFBbUYsRUFDbkYsY0FBcUU7UUFFckUsSUFBSSxDQUFDLE1BQU07YUFDUixTQUFTLENBQTRFO1lBQ3BGLEtBQUssRUFBRSxzQ0FBb0I7U0FDNUIsQ0FBQzthQUNELFNBQVMsQ0FBQyxDQUFDLEtBQW1ELEVBQUUsRUFBRTtZQUNqRSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxNQUFNO2FBQ1IsU0FBUyxDQUE4RDtZQUN0RSxLQUFLLEVBQUUsK0JBQWE7U0FDckIsQ0FBQzthQUNELFNBQVMsQ0FBQyxDQUFDLElBQTJDLEVBQUUsRUFBRTtZQUN6RCxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0Y7QUFFRCxrQkFBZSxlQUFlLENBQUMifQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnRzQXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9lbnRpdGxlbWVudHMvZW50aXRsZW1lbnRzQXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsOENBQTRGO0FBZTVGLHVEQUE4RjtBQUU5RixNQUFNLGVBQWU7SUFDbkIsWUFBNkIsTUFBMkM7UUFBM0MsV0FBTSxHQUFOLE1BQU0sQ0FBcUM7SUFBRyxDQUFDO0lBRTVFLEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBd0I7UUFDNUMsTUFBTSxFQUNKLElBQUksRUFBRSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxHQUMzQyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQTREO1lBQ3JGLEtBQUssRUFBRSxJQUFBLFVBQUcsRUFBQTs7Ozs7O1VBTU4sc0NBQW9CO09BQ3ZCO1lBQ0QsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFO1lBQ3BCLFdBQVcsRUFBRSxjQUFjO1NBQzVCLENBQUMsQ0FBQztRQUVILE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxJQUE0QjtRQUNqRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUEwRTtZQUNqRyxRQUFRLEVBQUUsSUFBQSxVQUFHLEVBQUE7Ozs7OztPQU1aO1lBQ0QsU0FBUyxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLFdBQVcsRUFBRSxjQUFjO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsMEJBQTBCLENBQzlCLFNBQWlCLEVBQ2pCLFVBQWtCLEVBQ2xCLHNCQUE4QyxFQUM5QyxjQUF1QjtRQUV2QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUN0QjtZQUNFLFFBQVEsRUFBRSxJQUFBLFVBQUcsRUFBQTs7OztTQUlaO1lBQ0QsU0FBUyxFQUFFO2dCQUNULHlCQUF5QixFQUFFO29CQUN6QixzQkFBc0I7b0JBQ3RCLFVBQVU7b0JBQ1YsU0FBUztvQkFDVCxjQUFjO2lCQUNmO2FBQ0Y7U0FDRixDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsNEJBQTRCLENBQzFCLG9CQUFtRixFQUNuRixjQUFxRTtRQUVyRSxJQUFJLENBQUMsTUFBTTthQUNSLFNBQVMsQ0FBNEU7WUFDcEYsS0FBSyxFQUFFLHNDQUFvQjtTQUM1QixDQUFDO2FBQ0QsU0FBUyxDQUFDLENBQUMsS0FBbUQsRUFBRSxFQUFFO1lBQ2pFLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLE1BQU07YUFDUixTQUFTLENBQThEO1lBQ3RFLEtBQUssRUFBRSwrQkFBYTtTQUNyQixDQUFDO2FBQ0QsU0FBUyxDQUFDLENBQUMsSUFBMkMsRUFBRSxFQUFFO1lBQ3pELGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDRjtBQUVELGtCQUFlLGVBQWUsQ0FBQyJ9
package/dist/client.d.ts CHANGED
@@ -44,7 +44,7 @@ export declare class Stigg implements StiggEntitlementAPI, StiggManagementAPI {
44
44
  * @param {string} customerId
45
45
  * @param {string} featureId
46
46
  * @param {BooleanEntitlementOptions} options
47
- * @return {BooleanEntitlement} boolean entitlement
47
+ * @return {BooleanEntitlement} boolean entitlement.
48
48
  */
49
49
  getBooleanEntitlement({ customerId, featureId, options }: GetBooleanEntitlement): Promise<BooleanEntitlement>;
50
50
  /**
@@ -72,7 +72,7 @@ export declare class Stigg implements StiggEntitlementAPI, StiggManagementAPI {
72
72
  reportUsage({ customerId, featureId, value }: ReportUsage): Promise<void>;
73
73
  /**
74
74
  * Create a Customer.
75
- * @return {Promise<Customer>} Newly created customer.
75
+ * @return {Promise<Customer>} Newly created customer. Throw exception on errors.
76
76
  * @param customerId - optional customer id, if not provided a random one will be generated.
77
77
  * @param email - optional customer email
78
78
  * @param name - optional customer name
@@ -81,7 +81,7 @@ export declare class Stigg implements StiggEntitlementAPI, StiggManagementAPI {
81
81
  createCustomer({ customerId, email, name, billingInfo }: CreateCustomer): Promise<Customer>;
82
82
  /**
83
83
  * Update a Customer.
84
- * @return {Promise<Customer>} Updated customer.
84
+ * @return {Promise<Customer>} Updated customer. Throw exception on errors.
85
85
  * @param customerId - customer id
86
86
  * @param email - optional customer email
87
87
  * @param name - optional customer name
@@ -90,19 +90,19 @@ export declare class Stigg implements StiggEntitlementAPI, StiggManagementAPI {
90
90
  updateCustomer({ customerId, email, name, billingInfo }: UpdateCustomer): Promise<Customer>;
91
91
  /**
92
92
  * Create a Subscription
93
- * @return {Promise<Subscription>} Newly created subscription.
93
+ * @return {Promise<Subscription>} Newly created subscription. Throw exception on errors.
94
94
  * @param {CreateSubscription} createSubscription
95
95
  */
96
96
  createSubscription(createSubscription: CreateSubscription): Promise<Subscription>;
97
97
  /**
98
98
  * Create a Subscription
99
- * @return {Promise<Subscription>} Canceled subscription.
99
+ * @return {Promise<Subscription>} Canceled subscription. Throw exception on errors.
100
100
  * @param cancelSubscription
101
101
  */
102
102
  cancelSubscription(cancelSubscription: CancelSubscription): Promise<Subscription>;
103
103
  /**
104
104
  * Initiate a checkout to purchase a plan
105
- * @return {Promise<Checkout>} Container object for the checkout process.
105
+ * @return {Promise<Checkout>} Container object for the checkout process. Throw exception on errors.
106
106
  * @param initiateCheckout
107
107
  */
108
108
  initiateCheckout(initiateCheckout: InitiateCheckout): Promise<Checkout>;
package/dist/client.js CHANGED
@@ -33,6 +33,7 @@ const inMemoryCacheService_1 = require("./services/cache/inMemoryCacheService");
33
33
  const entitlementsService_1 = require("./services/entitlementsService");
34
34
  const loggerService_1 = require("./services/loggerService");
35
35
  const generateRandomSlug_1 = require("./services/generateRandomSlug");
36
+ const apiErrorHandling_1 = require("./utils/apiErrorHandling");
36
37
  /**
37
38
  * Stigg Node.js SDK client
38
39
  */
@@ -85,18 +86,12 @@ class Stigg {
85
86
  * @param {string} customerId
86
87
  * @param {string} featureId
87
88
  * @param {BooleanEntitlementOptions} options
88
- * @return {BooleanEntitlement} boolean entitlement
89
+ * @return {BooleanEntitlement} boolean entitlement.
89
90
  */
90
91
  async getBooleanEntitlement({ customerId, featureId, options }) {
91
92
  const fallbackEntitlement = Object.assign(Object.assign({}, models_1.BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT), ((options === null || options === void 0 ? void 0 : options.fallback) || {}));
92
- try {
93
- return this.entitlementsService.getBooleanEntitlement(customerId, featureId, fallbackEntitlement, options);
94
- }
95
- catch (err) {
96
- const error = err.graphQLErrors ? JSON.stringify(err.graphQLErrors['0'].extensions) : err;
97
- this.loggerService.error(`Failed to get entitlement: ${error}`);
98
- return fallbackEntitlement;
99
- }
93
+ const entitlement = await (0, apiErrorHandling_1.withErrorHandling)(() => this.entitlementsService.getBooleanEntitlement(customerId, featureId, fallbackEntitlement, options), this.loggerService, { errorMessagePrefix: 'Failed to get boolean entitlement', rethrowError: false });
94
+ return entitlement || fallbackEntitlement;
100
95
  }
101
96
  /**
102
97
  * Get numeric entitlement of feature for a customer
@@ -107,14 +102,8 @@ class Stigg {
107
102
  */
108
103
  async getNumericEntitlement({ customerId, featureId, options }) {
109
104
  const fallbackEntitlement = Object.assign(Object.assign({}, models_1.NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT), ((options === null || options === void 0 ? void 0 : options.fallback) || {}));
110
- try {
111
- return this.entitlementsService.getNumericEntitlement(customerId, featureId, fallbackEntitlement, options);
112
- }
113
- catch (err) {
114
- const error = err.graphQLErrors ? JSON.stringify(err.graphQLErrors['0'].extensions) : err;
115
- this.loggerService.error(`Failed to get entitlement: ${error}`);
116
- return fallbackEntitlement;
117
- }
105
+ const entitlement = await (0, apiErrorHandling_1.withErrorHandling)(() => this.entitlementsService.getNumericEntitlement(customerId, featureId, fallbackEntitlement, options), this.loggerService, { errorMessagePrefix: 'Failed to get numeric entitlement', rethrowError: false });
106
+ return entitlement || fallbackEntitlement;
118
107
  }
119
108
  /**
120
109
  * Get metered entitlement of feature for a customer
@@ -125,14 +114,8 @@ class Stigg {
125
114
  */
126
115
  async getMeteredEntitlement({ customerId, featureId, options }) {
127
116
  const fallbackEntitlement = Object.assign(Object.assign({}, models_1.METERED_DEFAULT_FALLBACK_ENTITLEMENT), ((options === null || options === void 0 ? void 0 : options.fallback) || {}));
128
- try {
129
- return await this.entitlementsService.getMeteredEntitlement(customerId, featureId, fallbackEntitlement, options);
130
- }
131
- catch (err) {
132
- const error = err.graphQLErrors ? JSON.stringify(err.graphQLErrors['0'].extensions) : err;
133
- this.loggerService.error(`Failed to get entitlement: ${error}`);
134
- return fallbackEntitlement;
135
- }
117
+ const entitlement = await (0, apiErrorHandling_1.withErrorHandling)(() => this.entitlementsService.getMeteredEntitlement(customerId, featureId, fallbackEntitlement, options), this.loggerService, { errorMessagePrefix: 'Failed to get metered entitlement', rethrowError: false });
118
+ return entitlement || fallbackEntitlement;
136
119
  }
137
120
  /**
138
121
  * Report usage for metered entitlement
@@ -141,28 +124,24 @@ class Stigg {
141
124
  * @param value - the reported usage value, can be either positive or negative value
142
125
  */
143
126
  async reportUsage({ customerId, featureId, value }) {
144
- try {
127
+ (0, apiErrorHandling_1.withErrorHandling)(async () => {
145
128
  await this.entitlementsService.createUsageMeasurement({
146
129
  featureId,
147
130
  customerId,
148
131
  value,
149
132
  });
150
- }
151
- catch (err) {
152
- const error = err.graphQLErrors ? JSON.stringify(err.graphQLErrors['0'].extensions) : err;
153
- this.loggerService.error(`Failed to report usage: ${error}`);
154
- }
133
+ }, this.loggerService, { errorMessagePrefix: 'Failed to report usage', rethrowError: false });
155
134
  }
156
135
  /**
157
136
  * Create a Customer.
158
- * @return {Promise<Customer>} Newly created customer.
137
+ * @return {Promise<Customer>} Newly created customer. Throw exception on errors.
159
138
  * @param customerId - optional customer id, if not provided a random one will be generated.
160
139
  * @param email - optional customer email
161
140
  * @param name - optional customer name
162
141
  * @param billingInfo - optional billing info
163
142
  */
164
143
  async createCustomer({ customerId, email, name, billingInfo }) {
165
- try {
144
+ return (0, apiErrorHandling_1.withErrorHandling)(async () => {
166
145
  const refId = customerId || `customer-${(0, generateRandomSlug_1.generateRandomSlug)()}`;
167
146
  const { data } = await this.managementApi.createCustomer({
168
147
  refId,
@@ -173,21 +152,18 @@ class Stigg {
173
152
  if (!data)
174
153
  throw new Error('Invalid response');
175
154
  return this.modelMapper.mapCustomer(data);
176
- }
177
- catch (err) {
178
- throw new Error(`Failed to create customer: ${err}`);
179
- }
155
+ }, this.loggerService, { errorMessagePrefix: 'Failed to create customer', rethrowError: true });
180
156
  }
181
157
  /**
182
158
  * Update a Customer.
183
- * @return {Promise<Customer>} Updated customer.
159
+ * @return {Promise<Customer>} Updated customer. Throw exception on errors.
184
160
  * @param customerId - customer id
185
161
  * @param email - optional customer email
186
162
  * @param name - optional customer name
187
163
  * @param billingInfo - optional billing info
188
164
  */
189
165
  async updateCustomer({ customerId, email, name, billingInfo }) {
190
- try {
166
+ return (0, apiErrorHandling_1.withErrorHandling)(async () => {
191
167
  const { data } = await this.managementApi.updateCustomer({
192
168
  refId: customerId,
193
169
  email,
@@ -197,60 +173,48 @@ class Stigg {
197
173
  if (!data)
198
174
  throw new Error('Invalid response');
199
175
  return this.modelMapper.mapUpdatedCustomer(data);
200
- }
201
- catch (err) {
202
- throw new Error(`Failed to update customer: ${err}`);
203
- }
176
+ }, this.loggerService, { errorMessagePrefix: 'Failed to update customer', rethrowError: true });
204
177
  }
205
178
  /**
206
179
  * Create a Subscription
207
- * @return {Promise<Subscription>} Newly created subscription.
180
+ * @return {Promise<Subscription>} Newly created subscription. Throw exception on errors.
208
181
  * @param {CreateSubscription} createSubscription
209
182
  */
210
183
  async createSubscription(createSubscription) {
211
- try {
184
+ return (0, apiErrorHandling_1.withErrorHandling)(async () => {
212
185
  const createSubscriptionInput = Object.assign(Object.assign({}, createSubscription), { startDate: createSubscription.startDate || new Date() });
213
186
  const { data } = await this.managementApi.createSubscription(createSubscriptionInput);
214
187
  if (!data)
215
188
  throw new Error('Invalid response');
216
189
  return this.modelMapper.mapSubscription(data);
217
- }
218
- catch (err) {
219
- throw new Error(`Failed to create subscription: ${err}`);
220
- }
190
+ }, this.loggerService, { errorMessagePrefix: 'Failed to create subscription', rethrowError: true });
221
191
  }
222
192
  /**
223
193
  * Create a Subscription
224
- * @return {Promise<Subscription>} Canceled subscription.
194
+ * @return {Promise<Subscription>} Canceled subscription. Throw exception on errors.
225
195
  * @param cancelSubscription
226
196
  */
227
197
  async cancelSubscription(cancelSubscription) {
228
- try {
198
+ return (0, apiErrorHandling_1.withErrorHandling)(async () => {
229
199
  const { data } = await this.managementApi.cancelSubscription(cancelSubscription);
230
200
  if (!data)
231
201
  throw new Error('Invalid response');
232
202
  return this.modelMapper.mapCanceledSubscription(data);
233
- }
234
- catch (err) {
235
- throw new Error(`Failed to cancel subscription: ${err}`);
236
- }
203
+ }, this.loggerService, { errorMessagePrefix: 'Failed to cancel subscription', rethrowError: true });
237
204
  }
238
205
  /**
239
206
  * Initiate a checkout to purchase a plan
240
- * @return {Promise<Checkout>} Container object for the checkout process.
207
+ * @return {Promise<Checkout>} Container object for the checkout process. Throw exception on errors.
241
208
  * @param initiateCheckout
242
209
  */
243
210
  async initiateCheckout(initiateCheckout) {
244
- try {
211
+ return (0, apiErrorHandling_1.withErrorHandling)(async () => {
245
212
  const { data } = await this.managementApi.initiateCheckout(initiateCheckout);
246
213
  if (!data)
247
214
  throw new Error('Invalid response');
248
215
  return this.modelMapper.mapCheckout(data.initiateCheckout);
249
- }
250
- catch (err) {
251
- throw new Error(`Failed to begin checkout: ${err}`);
252
- }
216
+ }, this.loggerService, { errorMessagePrefix: 'Failed to begin checkout', rethrowError: true });
253
217
  }
254
218
  }
255
219
  exports.Stigg = Stigg;
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBbUJrQjtBQUNsQiwyRUFBbUY7QUFDbkYscURBQWtEO0FBQ2xELHdFQUFnRDtBQUNoRCxtREFBK0Y7QUFDL0YsOEVBQXNEO0FBQ3RELGdGQUE2RTtBQUM3RSx3RUFBcUU7QUFFckUsNERBQXlEO0FBQ3pELHNFQUFtRTtBQWtCbkU7O0dBRUc7QUFDSCxNQUFhLEtBQUs7SUFTaEI7Ozs7Ozs7T0FPRztJQUNILFlBQ0UsV0FBZ0QsRUFDaEQsa0JBQXVELEVBQ3ZELHdCQUFzQyxFQUN0QyxhQUE0QixFQUM1QixhQUFxQjtRQUVyQixJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQztRQUNqQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsa0JBQWtCLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlCQUFXLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLHdCQUF3QixDQUFDO1FBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLHlDQUFtQixDQUNoRCxJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMsb0JBQW9CLEVBQ3pCLElBQUksQ0FBQyxhQUFhLENBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksdUJBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBa0M7UUFDeEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLGdDQUFnQixFQUFDLGFBQWEsQ0FBQyxDQUFDO1FB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
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBbUJrQjtBQUNsQiwyRUFBbUY7QUFDbkYscURBQWtEO0FBQ2xELHdFQUFnRDtBQUNoRCxtREFBK0Y7QUFDL0YsOEVBQXNEO0FBQ3RELGdGQUE2RTtBQUM3RSx3RUFBcUU7QUFFckUsNERBQXlEO0FBQ3pELHNFQUFtRTtBQUduRSwrREFBNkQ7QUFnQjdEOztHQUVHO0FBQ0gsTUFBYSxLQUFLO0lBU2hCOzs7Ozs7O09BT0c7SUFDSCxZQUNFLFdBQWdELEVBQ2hELGtCQUF1RCxFQUN2RCx3QkFBc0MsRUFDdEMsYUFBNEIsRUFDNUIsYUFBcUI7UUFFckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUM7UUFDakMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGtCQUFrQixDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSx5QkFBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyx3QkFBd0IsQ0FBQztRQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSx5Q0FBbUIsQ0FDaEQsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLGFBQWEsRUFDbEIsSUFBSSxDQUFDLG9CQUFvQixFQUN6QixJQUFJLENBQUMsYUFBYSxDQUNuQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLHVCQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGFBQWtDO1FBQ3hELE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSxnQ0FBZ0IsRUFBQyxhQUFh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
@@ -0,0 +1,18 @@
1
+ import { LoggerService } from '../services/loggerService';
2
+ /**
3
+ * Wraps a function that returns a promise with error handling.
4
+ *
5
+ * @param func - function to execute and wrap with error handling
6
+ * @param loggerService - logger service to use for logging
7
+ * @param options.errorMessagePrefix - prefix to use for the error message
8
+ * @param options.rethrowError - if true, the error will be re-thrown otherwise it will be only logged
9
+ */
10
+ declare function withErrorHandling<T>(func: () => Promise<T>, loggerService: LoggerService, { errorMessagePrefix, rethrowError }: {
11
+ errorMessagePrefix: string;
12
+ rethrowError: true;
13
+ }): Promise<T>;
14
+ declare function withErrorHandling<T>(func: () => Promise<T>, loggerService: LoggerService, { errorMessagePrefix, rethrowError }: {
15
+ errorMessagePrefix: string;
16
+ rethrowError: false;
17
+ }): Promise<T | undefined>;
18
+ export { withErrorHandling };
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withErrorHandling = void 0;
4
+ const lodash_1 = require("lodash");
5
+ function extractErrorMessage(err) {
6
+ var _a, _b, _c, _d, _e, _f;
7
+ let errorMessage = 'unknown error';
8
+ if (!(0, lodash_1.isEmpty)(err.graphQLErrors)) {
9
+ errorMessage = err.graphQLErrors[0].message;
10
+ }
11
+ else if (!(0, lodash_1.isEmpty)(err.networkError)) {
12
+ // @ts-expect-error the original error message is on the result object
13
+ const message = ((_b = (_a = err.networkError) === null || _a === void 0 ? void 0 : _a.result) === null || _b === void 0 ? void 0 : _b.errors) && ((_e = (_d = (_c = err.networkError) === null || _c === void 0 ? void 0 : _c.result) === null || _d === void 0 ? void 0 : _d.errors[0]) === null || _e === void 0 ? void 0 : _e.message);
14
+ errorMessage = message || ((_f = err.networkError) === null || _f === void 0 ? void 0 : _f.message) || 'Network error';
15
+ }
16
+ return errorMessage;
17
+ }
18
+ async function withErrorHandling(func, loggerService, { errorMessagePrefix, rethrowError }) {
19
+ try {
20
+ const result = await func();
21
+ return result;
22
+ }
23
+ catch (err) {
24
+ const errorMessage = extractErrorMessage(err);
25
+ if (rethrowError) {
26
+ throw new Error(`${errorMessagePrefix}: ${errorMessage}`);
27
+ }
28
+ else {
29
+ loggerService.error(`${errorMessagePrefix}: ${errorMessage}`, err);
30
+ return undefined;
31
+ }
32
+ }
33
+ }
34
+ exports.withErrorHandling = withErrorHandling;
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpRXJyb3JIYW5kbGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hcGlFcnJvckhhbmRsaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG1DQUFpQztBQUdqQyxTQUFTLG1CQUFtQixDQUFDLEdBQWdCOztJQUMzQyxJQUFJLFlBQVksR0FBRyxlQUFlLENBQUM7SUFDbkMsSUFBSSxDQUFDLElBQUEsZ0JBQU8sRUFBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDL0IsWUFBWSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQzdDO1NBQU0sSUFBSSxDQUFDLElBQUEsZ0JBQU8sRUFBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDckMsc0VBQXNFO1FBQ3RFLE1BQU0sT0FBTyxHQUFHLENBQUEsTUFBQSxNQUFBLEdBQUcsQ0FBQyxZQUFZLDBDQUFFLE1BQU0sMENBQUUsTUFBTSxNQUFJLE1BQUEsTUFBQSxNQUFBLEdBQUcsQ0FBQyxZQUFZLDBDQUFFLE1BQU0sMENBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQywwQ0FBRSxPQUFPLENBQUEsQ0FBQztRQUNqRyxZQUFZLEdBQUcsT0FBTyxLQUFJLE1BQUEsR0FBRyxDQUFDLFlBQVksMENBQUUsT0FBTyxDQUFBLElBQUksZUFBZSxDQUFDO0tBQ3hFO0lBRUQsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQW9CRCxLQUFLLFVBQVUsaUJBQWlCLENBQzlCLElBQXNCLEVBQ3RCLGFBQTRCLEVBQzVCLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUF5RDtJQUUzRixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUM1QixPQUFPLE1BQU0sQ0FBQztLQUNmO0lBQUMsT0FBTyxHQUFRLEVBQUU7UUFDakIsTUFBTSxZQUFZLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUMsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLGtCQUFrQixLQUFLLFlBQVksRUFBRSxDQUFDLENBQUM7U0FDM0Q7YUFBTTtZQUNMLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxrQkFBa0IsS0FBSyxZQUFZLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNuRSxPQUFPLFNBQVMsQ0FBQztTQUNsQjtLQUNGO0FBQ0gsQ0FBQztBQUVRLDhDQUFpQiJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigg/node-server-sdk",
3
- "version": "0.25.0",
3
+ "version": "0.25.1",
4
4
  "description": "Stigg server-side node SDK",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",