File tree Expand file tree Collapse file tree 4 files changed +27
-3
lines changed Expand file tree Collapse file tree 4 files changed +27
-3
lines changed Original file line number Diff line number Diff line change @@ -194,6 +194,7 @@ const config: Config & { [key: string]: mixed } = {
194194 ENCRYPTED_USER : false ,
195195 IDEMPOTENCY : false ,
196196 ALLOW_CUSTOM_OBJECT_ID : false ,
197+ PARSE_ERRORS : [ ] ,
197198} ;
198199
199200function requireMethods ( name : string , methods : Array < string > , controller : any ) {
Original file line number Diff line number Diff line change 55 */
66
77import CoreManager from './CoreManager' ;
8+ import ParseError from './ParseError' ;
89import ParseObject from './ParseObject' ;
910import ParseQuery from './ParseQuery' ;
1011import Storage from './Storage' ;
@@ -275,7 +276,7 @@ const EventuallyQueue = {
275276 await object . save ( queueObject . object , queueObject . serverOptions ) ;
276277 await this . remove ( queueObject . queueId ) ;
277278 } catch ( e ) {
278- if ( e . message !== 'XMLHttpRequest failed: "Unable to connect to the Parse API"' ) {
279+ if ( e . code !== ParseError . CONNECTION_FAILED ) {
279280 await this . remove ( queueObject . queueId ) ;
280281 }
281282 }
@@ -285,7 +286,7 @@ const EventuallyQueue = {
285286 await object . destroy ( queueObject . serverOptions ) ;
286287 await this . remove ( queueObject . queueId ) ;
287288 } catch ( e ) {
288- if ( e . message !== 'XMLHttpRequest failed: "Unable to connect to the Parse API"' ) {
289+ if ( e . code !== ParseError . CONNECTION_FAILED ) {
289290 await this . remove ( queueObject . queueId ) ;
290291 }
291292 }
Original file line number Diff line number Diff line change 1+ import CoreManager from './CoreManager' ;
2+
13/**
24 * Constructs a new Parse.Error object with the given code and message.
35 *
6+ * Parse.CoreManager.set('PARSE_ERRORS', [{ code, message }]) can be use to override error messages.
7+ *
48 * @alias Parse.Error
59 */
610class ParseError extends Error {
@@ -11,9 +15,15 @@ class ParseError extends Error {
1115 constructor ( code , message ) {
1216 super ( message ) ;
1317 this . code = code ;
18+ let customMessage = message ;
19+ CoreManager . get ( 'PARSE_ERRORS' ) . forEach ( ( error ) => {
20+ if ( error . code === code && error . code ) {
21+ customMessage = error . message ;
22+ }
23+ } ) ;
1424 Object . defineProperty ( this , 'message' , {
1525 enumerable : true ,
16- value : message ,
26+ value : customMessage ,
1727 } ) ;
1828 }
1929
Original file line number Diff line number Diff line change 11jest . dontMock ( '../ParseError' ) ;
2+ jest . dontMock ( '../CoreManager' ) ;
23
34const ParseError = require ( '../ParseError' ) . default ;
5+ const CoreManager = require ( '../CoreManager' ) ;
46
57describe ( 'ParseError' , ( ) => {
68 it ( 'have sensible string representation' , ( ) => {
@@ -18,4 +20,14 @@ describe('ParseError', () => {
1820 code : 123 ,
1921 } ) ;
2022 } ) ;
23+
24+ it ( 'can override message' , ( ) => {
25+ CoreManager . set ( 'PARSE_ERRORS' , [ { code : 123 , message : 'Oops.' } ] ) ;
26+ const error = new ParseError ( 123 , 'some error message' ) ;
27+ expect ( JSON . parse ( JSON . stringify ( error ) ) ) . toEqual ( {
28+ message : 'Oops.' ,
29+ code : 123 ,
30+ } ) ;
31+ CoreManager . set ( 'PARSE_ERRORS' , [ ] ) ;
32+ } ) ;
2133} ) ;
You can’t perform that action at this time.
0 commit comments