wapplr 1.0.43 → 1.0.44

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.
@@ -1,560 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.createDefaultStateManager = createDefaultStateManager;
9
- exports["default"] = createStates;
10
-
11
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
-
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
-
15
- var _objectSpread6 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
16
-
17
- var _utils = require("./utils");
18
-
19
- function createDefaultStateManager() {
20
- var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
21
- var wapp = p.wapp;
22
- var defaultReducers = Object.create(Object.prototype, {
23
- req: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
24
- value: function value() {
25
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
26
- var action = arguments.length > 1 ? arguments[1] : undefined;
27
-
28
- switch (action.type) {
29
- case "SET_REQ":
30
- return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, state), {}, (0, _defineProperty2["default"])({}, action.payload.name, action.payload.value && typeof action.payload.value == "object" ? (0, _utils.copyObject)(action.payload.value) : action.payload.value));
31
-
32
- default:
33
- return state;
34
- }
35
- }
36
- }),
37
- res: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
38
- value: function value() {
39
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
40
- var action = arguments.length > 1 ? arguments[1] : undefined;
41
-
42
- switch (action.type) {
43
- case "SET_RES":
44
- return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, state), {}, (0, _defineProperty2["default"])({}, action.payload.name, action.payload.value && typeof action.payload.value == "object" ? (0, _utils.copyObject)(action.payload.value) : action.payload.value));
45
-
46
- case "INS_RES":
47
- if (typeof action.payload.value === "object" && action.payload.value && typeof state[action.payload.name] === "object" && state[action.payload.name]) {
48
- return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, state), {}, (0, _defineProperty2["default"])({}, action.payload.name, (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, state[action.payload.name]), (0, _utils.copyObject)(action.payload.value))));
49
- }
50
-
51
- return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, state), {}, (0, _defineProperty2["default"])({}, action.payload.name, action.payload.value && typeof action.payload.value == "object" ? (0, _utils.copyObject)(action.payload.value) : action.payload.value));
52
-
53
- default:
54
- return state;
55
- }
56
- }
57
- })
58
- });
59
- var defaultActions = Object.create(Object.prototype, {
60
- req: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
61
- value: function value(_ref) {
62
- var name = _ref.name,
63
- _value = _ref.value;
64
- return {
65
- type: "SET_REQ",
66
- payload: {
67
- name: name,
68
- value: _value
69
- }
70
- };
71
- }
72
- }),
73
- res: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
74
- value: function value(_ref2) {
75
- var type = _ref2.type,
76
- name = _ref2.name,
77
- _value2 = _ref2.value;
78
- return {
79
- type: type || "SET_RES",
80
- payload: {
81
- name: name,
82
- value: _value2
83
- }
84
- };
85
- }
86
- })
87
- });
88
-
89
- var defaultRootReducer = function defaultRootReducer(newState, action) {
90
- Object.keys(stateManager.reducers).forEach(function (key) {
91
- newState[key] = stateManager.reducers[key](newState[key], action);
92
- });
93
- return newState;
94
- };
95
-
96
- function createStore() {
97
- var rootReducer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultRootReducer;
98
- var initialState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
99
- var state = {};
100
- var cachedString = "";
101
- Object.keys(initialState).forEach(function (key) {
102
- state[key] = initialState[key];
103
- });
104
- return {
105
- getState: function getState(p) {
106
- var keys = p && typeof p == "string" ? p : p && typeof p == "object" && typeof p.keys == "string" ? p.keys : "";
107
-
108
- if (keys) {
109
- var find = function find(keys, o) {
110
- var i = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
111
-
112
- if (keys[i + 1] && keys[i] && o[keys[i]] && typeof o[keys[i]] == "object") {
113
- find(keys, o[keys[i]], i + 1);
114
- } else if (!keys[i + 1] && typeof o[keys[i]] !== "undefined") {
115
- found = o[keys[i]];
116
- }
117
- };
118
-
119
- var found;
120
- find(keys.split("."), state);
121
- return typeof found === "object" && found ? (0, _utils.copyObject)(found) : found;
122
- }
123
-
124
- try {
125
- if (!cachedString) {
126
- cachedString = JSON.stringify(state);
127
- }
128
-
129
- return JSON.parse(cachedString);
130
- } catch (e) {
131
- console.log(e);
132
- state = {};
133
- Object.keys(initialState).forEach(function (key) {
134
- state[key] = initialState[key];
135
- });
136
- cachedString = JSON.stringify(state);
137
- return JSON.parse(cachedString);
138
- }
139
- },
140
- dispatch: function dispatch(action) {
141
- try {
142
- rootReducer(state, action);
143
- } catch (e) {
144
- console.log(e);
145
- }
146
-
147
- cachedString = "";
148
-
149
- try {
150
- stateManager.runListeners(action);
151
- } catch (e) {
152
- console.log(e);
153
- }
154
- },
155
- subscribe: function subscribe(listener) {
156
- return stateManager.addListener(listener);
157
- }
158
- };
159
- }
160
-
161
- function defaultAddListener(listener) {
162
- stateManager.listeners.push(listener);
163
- return function unsubscribe() {
164
- stateManager.removeListener(listener);
165
- };
166
- }
167
-
168
- function defaultRemoveListener(listener) {
169
- if (stateManager.listeners.indexOf(listener) !== -1) {
170
- stateManager.listeners.splice(stateManager.listeners.indexOf(listener), 1);
171
- }
172
- }
173
-
174
- function defaultRunListeners(action) {
175
- var listeners = (0, _toConsumableArray2["default"])(stateManager.listeners);
176
- listeners.forEach(function (listener) {
177
- listener(action);
178
- });
179
- }
180
-
181
- var stateManager = Object.create(Object.prototype, {
182
- wapp: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
183
- writable: false,
184
- enumerable: false,
185
- value: wapp
186
- }),
187
- reducers: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
188
- writable: false,
189
- value: defaultReducers
190
- }),
191
- rootReducer: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
192
- writable: false,
193
- value: defaultRootReducer
194
- }),
195
- actions: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
196
- writable: false,
197
- value: defaultActions
198
- }),
199
- createStore: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
200
- value: createStore
201
- }),
202
- listeners: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
203
- writable: false,
204
- value: []
205
- }),
206
- addListener: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
207
- value: defaultAddListener
208
- }),
209
- removeListener: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
210
- value: defaultRemoveListener
211
- }),
212
- runListeners: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
213
- value: defaultRunListeners
214
- })
215
- });
216
- return stateManager;
217
- }
218
-
219
- function createStates() {
220
- var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
221
- var wapp = p.wapp,
222
- _p$stateManager = p.stateManager,
223
- stateManager = _p$stateManager === void 0 ? createDefaultStateManager(p) : _p$stateManager;
224
-
225
- function addSomePropertyToClientAppFromInitialState(req, res, next) {
226
- // the client can't set this properties from the window location,
227
- // so if the server sent these data, then these are setting here to app.req and wappRequest:
228
- // method, httpVersion, remoteAddress
229
- // req.timestamp, res.statusCode, statusMessage, errorMessage will update in every client side update,
230
- // but the first render need this data from the server
231
- if (wapp.target === "web") {
232
- var wappResponse = res.wappResponse;
233
- var wappRequest = req.wappRequest;
234
- var appStateName = wappResponse.appStateName;
235
- var initialState = window[appStateName];
236
-
237
- if (initialState) {
238
- var reqFromState = initialState.req || {};
239
- var resFromState = initialState.res || {};
240
- req.httpVersion = reqFromState.httpVersion || "1.1";
241
- req.method = reqFromState.method || req.method;
242
- req.remoteAddress = reqFromState.remoteAddress || req.remoteAddress;
243
- wappRequest.method = req.method;
244
- wappRequest.httpVersion = req.httpVersion;
245
- wappRequest.remoteAddress = req.remoteAddress;
246
-
247
- if (statesMiddleware.shouldInitializedStore) {
248
- req.timestamp = reqFromState.timestamp || req.timestamp;
249
- wappRequest.timestamp = req.timestamp;
250
- res.statusCode = resFromState.statusCode || res.statusCode;
251
- wappResponse.statusCode = res.statusCode;
252
- res.statusMessage = resFromState.statusMessage || res.statusMessage;
253
- wappResponse.statusMessage = res.statusMessage;
254
- res.errorMessage = resFromState.errorMessage || res.errorMessage;
255
- wappResponse.errorMessage = res.errorMessage;
256
- }
257
- }
258
- }
259
-
260
- next();
261
- }
262
-
263
- var lastStoreForClient = null;
264
-
265
- function defaultStatesForReqRes(req, res, next) {
266
- var wappRequest = req.wappRequest;
267
- var wappResponse = res.wappResponse;
268
- var timestamp = wappRequest.timestamp;
269
- var path = wappRequest.path;
270
- var url = wappRequest.url;
271
- var method = wappRequest.method;
272
- var httpVersion = wappRequest.httpVersion;
273
- var hostname = wappRequest.hostname;
274
- var protocol = wappRequest.protocol;
275
- var secure = wappRequest.secure;
276
- var remoteAddress = wappRequest.remoteAddress;
277
- var userAgent = wappRequest.userAgent;
278
- var query = wappRequest.query;
279
- var statusCode = wappResponse.statusCode;
280
- var statusMessage = wappResponse.statusMessage;
281
- var errorMessage = wappResponse.errorMessage;
282
- var containerElementId = wappResponse.containerElementId;
283
- var appStateName = wappResponse.appStateName;
284
- var initState = wapp.target === "web" && window[appStateName] ? window[appStateName] : {
285
- req: {
286
- timestamp: timestamp,
287
- path: path,
288
- url: url,
289
- method: method,
290
- httpVersion: httpVersion,
291
- hostname: hostname,
292
- protocol: protocol,
293
- secure: secure,
294
- remoteAddress: remoteAddress,
295
- userAgent: userAgent,
296
- query: query
297
- },
298
- res: {
299
- statusCode: statusCode,
300
- statusMessage: statusMessage,
301
- errorMessage: errorMessage,
302
- containerElementId: containerElementId,
303
- appStateName: appStateName
304
- }
305
- };
306
- var init = statesMiddleware.shouldInitializedStore;
307
- var store = init ? wapp.states.stateManager.createStore(wapp.states.stateManager.rootReducer, initState) : wappResponse.store;
308
-
309
- if (init) {
310
- Object.defineProperty(wappResponse, "store", {
311
- writable: true,
312
- enumerable: true,
313
- configurable: false,
314
- value: store
315
- });
316
-
317
- if (wapp.target === "web") {
318
- lastStoreForClient = wappResponse.store;
319
- }
320
- }
321
-
322
- if (!init || init && initState.req.timestamp !== timestamp) {
323
- if (store.getState("req.timestamp") !== timestamp) {
324
- wappResponse.store.dispatch(wapp.states.runAction("req", {
325
- name: "timestamp",
326
- value: timestamp
327
- }));
328
- }
329
- }
330
-
331
- if (!init || init && initState.req.path !== path) {
332
- if (store.getState("req.path") !== path) {
333
- wappResponse.store.dispatch(wapp.states.runAction("req", {
334
- name: "path",
335
- value: path
336
- }));
337
- }
338
- }
339
-
340
- if (!init || init && initState.req.url !== url) {
341
- if (store.getState("req.url") !== url) {
342
- wappResponse.store.dispatch(wapp.states.runAction("req", {
343
- name: "url",
344
- value: url
345
- }));
346
- }
347
- }
348
-
349
- if (!init || init && initState.req.method !== method) {
350
- if (store.getState("req.method") !== method) {
351
- wappResponse.store.dispatch(wapp.states.runAction("req", {
352
- name: "method",
353
- value: method
354
- }));
355
- }
356
- }
357
-
358
- if (!init || init && initState.req.httpVersion !== httpVersion) {
359
- if (store.getState("req.httpVersion") !== httpVersion) {
360
- wappResponse.store.dispatch(wapp.states.runAction("req", {
361
- name: "httpVersion",
362
- value: httpVersion
363
- }));
364
- }
365
- }
366
-
367
- if (!init || init && initState.req.hostname !== hostname) {
368
- if (store.getState("req.hostname") !== hostname) {
369
- wappResponse.store.dispatch(wapp.states.runAction("req", {
370
- name: "hostname",
371
- value: hostname
372
- }));
373
- }
374
- }
375
-
376
- if (!init || init && initState.req.protocol !== protocol) {
377
- if (store.getState("req.protocol") !== protocol) {
378
- wappResponse.store.dispatch(wapp.states.runAction("req", {
379
- name: "protocol",
380
- value: protocol
381
- }));
382
- }
383
- }
384
-
385
- if (!init || init && initState.req.secure !== secure) {
386
- if (store.getState("req.secure") !== secure) {
387
- wappResponse.store.dispatch(wapp.states.runAction("req", {
388
- name: "secure",
389
- value: secure
390
- }));
391
- }
392
- }
393
-
394
- if (!init || init && initState.req.remoteAddress !== remoteAddress) {
395
- if (store.getState("req.remoteAddress") !== remoteAddress) {
396
- wappResponse.store.dispatch(wapp.states.runAction("req", {
397
- name: "remoteAddress",
398
- value: remoteAddress
399
- }));
400
- }
401
- }
402
-
403
- if (!init || init && initState.req.userAgent !== userAgent) {
404
- if (store.getState("req.userAgent") !== userAgent) {
405
- wappResponse.store.dispatch(wapp.states.runAction("req", {
406
- name: "userAgent",
407
- value: userAgent
408
- }));
409
- }
410
- }
411
-
412
- if (!init || init && initState.req.query !== query) {
413
- if (store.getState("req.query") !== query) {
414
- wappResponse.store.dispatch(wapp.states.runAction("req", {
415
- name: "query",
416
- value: query
417
- }));
418
- }
419
- }
420
-
421
- if (!init || init && initState.res.statusCode !== statusCode) {
422
- if (store.getState("res.statusCode") !== statusCode) {
423
- wappResponse.store.dispatch(wapp.states.runAction("res", {
424
- name: "statusCode",
425
- value: statusCode
426
- }));
427
- }
428
- }
429
-
430
- if (!init || init && initState.res.statusMessage !== statusMessage) {
431
- if (store.getState("res.statusMessage") !== statusMessage) {
432
- wappResponse.store.dispatch(wapp.states.runAction("res", {
433
- name: "statusMessage",
434
- value: statusMessage
435
- }));
436
- }
437
- }
438
-
439
- if (!init || init && initState.res.errorMessage !== errorMessage) {
440
- if (store.getState("res.errorMessage") !== errorMessage) {
441
- wappResponse.store.dispatch(wapp.states.runAction("res", {
442
- name: "errorMessage",
443
- value: errorMessage
444
- }));
445
- }
446
- }
447
-
448
- if (!init || init && initState.res.appStateName !== appStateName) {
449
- if (store.getState("res.appStateName") !== appStateName) {
450
- wappResponse.store.dispatch(wapp.states.runAction("res", {
451
- name: "appStateName",
452
- value: appStateName
453
- }));
454
- }
455
- }
456
-
457
- if (!init || init && initState.res.containerElementId !== containerElementId) {
458
- if (store.getState("res.containerElementId") !== containerElementId) {
459
- wappResponse.store.dispatch(wapp.states.runAction("res", {
460
- name: "containerElementId",
461
- value: containerElementId
462
- }));
463
- }
464
- }
465
-
466
- next();
467
- }
468
-
469
- function defaultHandle(req, res, out) {
470
- var statesMiddlewares = Object.keys(statesMiddleware.handles).sort().map(function (key) {
471
- return statesMiddleware.handles[key];
472
- });
473
- var index = 0;
474
-
475
- function next(err) {
476
- if (statesMiddlewares[index]) {
477
- var func = statesMiddlewares[index];
478
- index = index + 1;
479
- return func(req, res, err ? function () {
480
- next(err);
481
- } : next);
482
- } else if (typeof out === "function") {
483
- index = 0;
484
- return out(err);
485
- }
486
-
487
- return null;
488
- }
489
-
490
- return next();
491
- }
492
-
493
- function defaultAddHandle(obj) {
494
- if (typeof obj === "object" && !obj.length) {
495
- Object.keys(obj).forEach(function (handleName) {
496
- var handle = obj[handleName];
497
-
498
- if (typeof handle == "function") {
499
- statesMiddleware.handles[handleName] = handle;
500
- }
501
- });
502
- }
503
- }
504
-
505
- function defaultRunAction(actionName, props) {
506
- return statesMiddleware.stateManager.actions[actionName](props);
507
- }
508
-
509
- var statesMiddlewareProperties = Object.create(Object.prototype, {
510
- handle: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
511
- value: defaultHandle
512
- }),
513
- handles: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
514
- value: {
515
- clientapp: addSomePropertyToClientAppFromInitialState,
516
- reqres: defaultStatesForReqRes
517
- }
518
- }),
519
- stateManager: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
520
- value: stateManager
521
- }),
522
- addHandle: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
523
- value: defaultAddHandle
524
- }),
525
- runAction: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
526
- value: defaultRunAction
527
- }),
528
- shouldInitializedStore: (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
529
- value: false
530
- })
531
- });
532
-
533
- function statesMiddleware(req, res, out) {
534
- if (typeof statesMiddleware.handle === "function") {
535
- if (!res.wappResponse.store && wapp.target === "web" && lastStoreForClient) {
536
- res.wappResponse.store = lastStoreForClient;
537
- }
538
-
539
- statesMiddleware.shouldInitializedStore = wapp.target === "node" || !res.wappResponse.store;
540
- statesMiddleware.handle(req, res, function next() {
541
- statesMiddleware.shouldInitializedStore = wapp.target === "node" || !res.wappResponse.store;
542
- out();
543
- });
544
- }
545
-
546
- return statesMiddleware;
547
- }
548
-
549
- (0, _utils.mergeProperties)(statesMiddleware, statesMiddlewareProperties);
550
- Object.defineProperty(statesMiddleware, "wapp", (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
551
- writable: false,
552
- enumerable: false,
553
- value: wapp
554
- }));
555
- Object.defineProperty(wapp, "states", (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _utils.defaultDescriptor), {}, {
556
- writable: false,
557
- value: statesMiddleware
558
- }));
559
- return statesMiddleware;
560
- }