1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var helper_1 = require("../helper");
|
4 | var types_1 = require("../types");
|
5 | var types_2 = require("./types");
|
6 | function errorActionWrapperWithId(type, action, message) {
|
7 | var castPayload = action.payload;
|
8 | return helper_1.actionWrapper({
|
9 | type: type,
|
10 | group: types_1.Group.Error,
|
11 | payload: {
|
12 | action: action,
|
13 | message: message,
|
14 | type: type,
|
15 | id: castPayload && castPayload.id ? castPayload.id : undefined,
|
16 | },
|
17 | });
|
18 | }
|
19 | var Message;
|
20 | (function (Message) {
|
21 | Message["MISSING_PAYLOAD"] = "Missing payload";
|
22 | Message["INVALID_PAYLOAD_ID"] = "Id in payload is missing or invalid";
|
23 | })(Message = exports.Message || (exports.Message = {}));
|
24 | function invalidPayload(action, message) {
|
25 | return errorActionWrapperWithId(types_2.ActionType.INVALID_PAYLOAD, action, message || "The action's payload is missing required properties or has invalid properties");
|
26 | }
|
27 | exports.invalidPayload = invalidPayload;
|
28 | function invalidActionType(action, message) {
|
29 | return helper_1.actionWrapper({
|
30 | group: types_1.Group.Error,
|
31 | payload: {
|
32 | action: action,
|
33 | message: message || 'The action type is invalid or unsupported',
|
34 | type: types_2.ActionType.INVALID_ACTION_TYPE,
|
35 | },
|
36 | type: types_2.ActionType.INVALID_ACTION_TYPE,
|
37 | });
|
38 | }
|
39 | exports.invalidActionType = invalidActionType;
|
40 | function invalidAction(action, message) {
|
41 | return helper_1.actionWrapper({
|
42 | group: types_1.Group.Error,
|
43 | payload: {
|
44 | action: action,
|
45 | message: message || "The action's has missing/invalid values for `group`, `type` or `version`",
|
46 | type: types_2.ActionType.INVALID_ACTION,
|
47 | },
|
48 | type: types_2.ActionType.INVALID_ACTION,
|
49 | });
|
50 | }
|
51 | exports.invalidAction = invalidAction;
|
52 | function unexpectedAction(action, message) {
|
53 | return helper_1.actionWrapper({
|
54 | group: types_1.Group.Error,
|
55 | payload: {
|
56 | action: action,
|
57 | message: message || 'Action cannot be called at this time',
|
58 | type: types_2.ActionType.UNEXPECTED_ACTION,
|
59 | },
|
60 | type: types_2.ActionType.UNEXPECTED_ACTION,
|
61 | });
|
62 | }
|
63 | exports.unexpectedAction = unexpectedAction;
|
64 | function unsupportedOperationAction(action, message) {
|
65 | return errorActionWrapperWithId(types_2.ActionType.UNSUPPORTED_OPERATION, action, message || 'The action type is unsupported');
|
66 | }
|
67 | exports.unsupportedOperationAction = unsupportedOperationAction;
|
68 | function persistenceAction(action, message) {
|
69 | return errorActionWrapperWithId(types_2.ActionType.PERSISTENCE, action, message || 'Action cannot be persisted on server');
|
70 | }
|
71 | exports.persistenceAction = persistenceAction;
|
72 | function networkAction(action, message) {
|
73 | return errorActionWrapperWithId(types_2.ActionType.NETWORK, action, message || 'Network error');
|
74 | }
|
75 | exports.networkAction = networkAction;
|
76 | function permissionAction(action, message) {
|
77 | return errorActionWrapperWithId(types_2.ActionType.PERMISSION, action, message || 'Action is not permitted');
|
78 | }
|
79 | exports.permissionAction = permissionAction;
|
80 | function isErrorEventName(eventName) {
|
81 | var match = helper_1.findMatchInEnum(types_2.Action, eventName);
|
82 | return typeof match === 'string';
|
83 | }
|
84 | exports.isErrorEventName = isErrorEventName;
|
85 | var AppBridgeError = (function () {
|
86 | function AppBridgeError(message) {
|
87 | this.name = 'AppBridgeError';
|
88 | this.message = message;
|
89 | if (typeof Error.captureStackTrace === 'function') {
|
90 | Error.captureStackTrace(this, this.constructor);
|
91 | }
|
92 | else {
|
93 | this.stack = new Error(this.message).stack;
|
94 | }
|
95 | }
|
96 | return AppBridgeError;
|
97 | }());
|
98 | exports.AppBridgeError = AppBridgeError;
|
99 | AppBridgeError.prototype = Object.create(Error.prototype);
|
100 | function fromAction(message, type, action) {
|
101 | var errorMessage = message ? type + ": " + message : type;
|
102 | var error = new AppBridgeError(errorMessage);
|
103 | error.action = action;
|
104 | error.type = type;
|
105 | return error;
|
106 | }
|
107 | exports.fromAction = fromAction;
|
108 | function throwError() {
|
109 | var type = arguments[0];
|
110 | var message;
|
111 | var action;
|
112 | if (typeof arguments[1] === 'string') {
|
113 | message = arguments[1];
|
114 | }
|
115 | else {
|
116 | action = arguments[1];
|
117 | message = arguments[2] || '';
|
118 | }
|
119 | throw fromAction(message, type, action);
|
120 | }
|
121 | exports.throwError = throwError;
|