@urso/core 0.2.6 → 0.2.7

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.
Files changed (146) hide show
  1. package/.babelrc +11 -11
  2. package/README.md +10 -10
  3. package/build/js/index.js +1 -1
  4. package/build/js/index.js.LICENSE.txt +31 -31
  5. package/package.json +52 -52
  6. package/src/js/app.js +76 -76
  7. package/src/js/components/_info.js +8 -8
  8. package/src/js/components/base/_info.js +3 -3
  9. package/src/js/components/base/controller.js +78 -78
  10. package/src/js/components/debug/_info.js +6 -6
  11. package/src/js/components/debug/controller.js +38 -38
  12. package/src/js/components/debug/coords.js +23 -23
  13. package/src/js/components/debug/fps.js +34 -34
  14. package/src/js/components/debug/template.js +33 -33
  15. package/src/js/components/deviceRotate/_info.js +3 -3
  16. package/src/js/components/deviceRotate/controller.js +86 -86
  17. package/src/js/components/fullscreen/_info.js +6 -6
  18. package/src/js/components/fullscreen/android.js +104 -104
  19. package/src/js/components/fullscreen/controller.js +64 -64
  20. package/src/js/components/fullscreen/desktop.js +49 -49
  21. package/src/js/components/fullscreen/ios.js +111 -111
  22. package/src/js/components/loader/_info.js +4 -4
  23. package/src/js/components/loader/controller.js +66 -66
  24. package/src/js/components/loader/template.js +70 -70
  25. package/src/js/components/soundInitialPopup/_info.js +3 -3
  26. package/src/js/components/soundInitialPopup/controller.js +42 -42
  27. package/src/js/components/soundInitialPopup/template.js +109 -109
  28. package/src/js/components/stateDriven/_info.js +3 -3
  29. package/src/js/components/stateDriven/controller.js +96 -96
  30. package/src/js/config/load.js +5 -5
  31. package/src/js/config/main.js +9 -9
  32. package/src/js/extra/_info.js +23 -23
  33. package/src/js/extra/browserEvents.js +32 -32
  34. package/src/js/index.js +8 -8
  35. package/src/js/lib/_info.js +13 -13
  36. package/src/js/lib/cache.js +98 -98
  37. package/src/js/lib/composition.js +89 -89
  38. package/src/js/lib/device.js +1276 -1276
  39. package/src/js/lib/helper.js +524 -524
  40. package/src/js/lib/loader.js +121 -121
  41. package/src/js/lib/localData.js +15 -15
  42. package/src/js/lib/logger.js +22 -22
  43. package/src/js/lib/math.js +20 -20
  44. package/src/js/lib/objectPool.js +54 -54
  45. package/src/js/lib/time.js +18 -18
  46. package/src/js/lib/tween.js +147 -147
  47. package/src/js/modules/_info.js +11 -11
  48. package/src/js/modules/assets/_info.js +7 -7
  49. package/src/js/modules/assets/baseModel.js +18 -18
  50. package/src/js/modules/assets/config.js +35 -35
  51. package/src/js/modules/assets/controller.js +37 -37
  52. package/src/js/modules/assets/models/_info.js +12 -12
  53. package/src/js/modules/assets/models/atlas.js +8 -8
  54. package/src/js/modules/assets/models/audiosprite.js +27 -27
  55. package/src/js/modules/assets/models/bitmapFont.js +8 -8
  56. package/src/js/modules/assets/models/container.js +16 -16
  57. package/src/js/modules/assets/models/dragonBones.js +26 -26
  58. package/src/js/modules/assets/models/font.js +8 -8
  59. package/src/js/modules/assets/models/image.js +14 -14
  60. package/src/js/modules/assets/models/json.js +8 -8
  61. package/src/js/modules/assets/models/sound.js +14 -14
  62. package/src/js/modules/assets/models/spine.js +8 -8
  63. package/src/js/modules/assets/service.js +330 -330
  64. package/src/js/modules/instances/_info.js +3 -3
  65. package/src/js/modules/instances/controller.js +218 -218
  66. package/src/js/modules/logic/_info.js +5 -5
  67. package/src/js/modules/logic/buttons.js +120 -120
  68. package/src/js/modules/logic/config/_info.js +3 -3
  69. package/src/js/modules/logic/config/buttons.js +63 -63
  70. package/src/js/modules/logic/config/sounds.js +23 -23
  71. package/src/js/modules/logic/controller.js +48 -48
  72. package/src/js/modules/logic/sounds.js +96 -96
  73. package/src/js/modules/objects/_info.js +11 -11
  74. package/src/js/modules/objects/baseModel.js +161 -161
  75. package/src/js/modules/objects/cache.js +99 -99
  76. package/src/js/modules/objects/controller.js +115 -115
  77. package/src/js/modules/objects/create.js +246 -246
  78. package/src/js/modules/objects/find.js +140 -140
  79. package/src/js/modules/objects/models/_info.js +25 -25
  80. package/src/js/modules/objects/models/atlasImage.js +50 -50
  81. package/src/js/modules/objects/models/bitmapText.js +23 -23
  82. package/src/js/modules/objects/models/button.js +184 -184
  83. package/src/js/modules/objects/models/buttonComposite.js +35 -35
  84. package/src/js/modules/objects/models/checkbox.js +95 -96
  85. package/src/js/modules/objects/models/collection.js +54 -54
  86. package/src/js/modules/objects/models/component.js +44 -44
  87. package/src/js/modules/objects/models/container.js +19 -19
  88. package/src/js/modules/objects/models/dragonBones.js +250 -250
  89. package/src/js/modules/objects/models/emitter.js +54 -54
  90. package/src/js/modules/objects/models/graphics.js +38 -38
  91. package/src/js/modules/objects/models/group.js +19 -19
  92. package/src/js/modules/objects/models/hitArea.js +104 -104
  93. package/src/js/modules/objects/models/image.js +34 -34
  94. package/src/js/modules/objects/models/imagesAnimation.js +113 -113
  95. package/src/js/modules/objects/models/mask.js +38 -38
  96. package/src/js/modules/objects/models/scrollbox.js +61 -61
  97. package/src/js/modules/objects/models/slider.js +199 -154
  98. package/src/js/modules/objects/models/spine.js +83 -83
  99. package/src/js/modules/objects/models/text.js +38 -38
  100. package/src/js/modules/objects/models/textInput.js +55 -55
  101. package/src/js/modules/objects/models/toggle.js +169 -169
  102. package/src/js/modules/objects/models/world.js +19 -19
  103. package/src/js/modules/objects/propertyAdapter.js +421 -421
  104. package/src/js/modules/objects/proxy.js +179 -179
  105. package/src/js/modules/objects/styles.js +116 -116
  106. package/src/js/modules/observer/_info.js +4 -4
  107. package/src/js/modules/observer/controller.js +99 -99
  108. package/src/js/modules/observer/events.js +32 -32
  109. package/src/js/modules/scenes/_info.js +8 -8
  110. package/src/js/modules/scenes/controller.js +34 -34
  111. package/src/js/modules/scenes/model.js +35 -35
  112. package/src/js/modules/scenes/pixiWrapper.js +194 -194
  113. package/src/js/modules/scenes/resolutions.js +161 -161
  114. package/src/js/modules/scenes/resolutionsConfig.js +73 -73
  115. package/src/js/modules/scenes/service.js +84 -84
  116. package/src/js/modules/soundManager/_info.js +3 -3
  117. package/src/js/modules/soundManager/controller.js +99 -99
  118. package/src/js/modules/soundManager/soundSprite.js +202 -202
  119. package/src/js/modules/statesManager/_info.js +12 -12
  120. package/src/js/modules/statesManager/action.js +55 -55
  121. package/src/js/modules/statesManager/actions/_info.js +3 -3
  122. package/src/js/modules/statesManager/all.js +23 -23
  123. package/src/js/modules/statesManager/configStates.js +71 -71
  124. package/src/js/modules/statesManager/controller.js +132 -132
  125. package/src/js/modules/statesManager/functionsStorage.js +82 -82
  126. package/src/js/modules/statesManager/helper.js +27 -27
  127. package/src/js/modules/statesManager/race.js +75 -75
  128. package/src/js/modules/statesManager/sequence.js +47 -47
  129. package/src/js/modules/template/_info.js +6 -6
  130. package/src/js/modules/template/controller.js +28 -28
  131. package/src/js/modules/template/model.js +11 -11
  132. package/src/js/modules/template/service.js +125 -125
  133. package/src/js/modules/template/types.js +46 -46
  134. package/src/js/modules/transport/_info.js +8 -8
  135. package/src/js/modules/transport/baseConnectionType.js +24 -24
  136. package/src/js/modules/transport/config.js +22 -22
  137. package/src/js/modules/transport/connectionTypes/_info.js +3 -3
  138. package/src/js/modules/transport/connectionTypes/websocket.js +74 -74
  139. package/src/js/modules/transport/connectionTypes/xhr.js +41 -41
  140. package/src/js/modules/transport/controller.js +48 -48
  141. package/src/js/modules/transport/decorator.js +16 -16
  142. package/src/js/modules/transport/service.js +138 -138
  143. package/src/js/templates/_info.js +4 -4
  144. package/src/js/templates/groups/_info.js +1 -1
  145. package/src/js/templates/scenes/_info.js +1 -1
  146. package/webpack.config.js +47 -47
@@ -1,42 +1,42 @@
1
- class ModulesTransportConnectionTypesXhr extends Urso.Core.Modules.Transport.BaseConnectionType {
2
- constructor(params){
3
- super(params);
4
-
5
- this._xhr = null;
6
- this._ready = true;
7
- }
8
-
9
- send(message){
10
- this._createXhr();
11
- const preparedMessage = JSON.stringify(message);
12
- this._xhr.send(preparedMessage);
13
- log('[XHR] SEND:', preparedMessage);
14
- };
15
-
16
-
17
- _createXhr(){
18
- this._xhr = new XMLHttpRequest();
19
- this._xhr.onerror = this._onError.bind(this);
20
- this._xhr.onreadystatechange = this._onReadyStateChange.bind(this);
21
- this._xhr.open('GET', this._host, true);
22
- log('[XHR]: CREATED');
23
- };
24
-
25
- _onMessage(message){
26
- const res = JSON.parse(message);
27
- this._runCallback('response', res);
28
- log('[XHR] RESPONSE RECEIVED', message);
29
- };
30
-
31
- _onError(){
32
- this._runCallback('error');
33
- log('[XHR] ERROR')
34
- };
35
-
36
- _onReadyStateChange({ target }){
37
- if(target.readyState === 4)
38
- this._onMessage(target.response);
39
- };
40
- }
41
-
1
+ class ModulesTransportConnectionTypesXhr extends Urso.Core.Modules.Transport.BaseConnectionType {
2
+ constructor(params){
3
+ super(params);
4
+
5
+ this._xhr = null;
6
+ this._ready = true;
7
+ }
8
+
9
+ send(message){
10
+ this._createXhr();
11
+ const preparedMessage = JSON.stringify(message);
12
+ this._xhr.send(preparedMessage);
13
+ log('[XHR] SEND:', preparedMessage);
14
+ };
15
+
16
+
17
+ _createXhr(){
18
+ this._xhr = new XMLHttpRequest();
19
+ this._xhr.onerror = this._onError.bind(this);
20
+ this._xhr.onreadystatechange = this._onReadyStateChange.bind(this);
21
+ this._xhr.open('GET', this._host, true);
22
+ log('[XHR]: CREATED');
23
+ };
24
+
25
+ _onMessage(message){
26
+ const res = JSON.parse(message);
27
+ this._runCallback('response', res);
28
+ log('[XHR] RESPONSE RECEIVED', message);
29
+ };
30
+
31
+ _onError(){
32
+ this._runCallback('error');
33
+ log('[XHR] ERROR')
34
+ };
35
+
36
+ _onReadyStateChange({ target }){
37
+ if(target.readyState === 4)
38
+ this._onMessage(target.response);
39
+ };
40
+ }
41
+
42
42
  module.exports = ModulesTransportConnectionTypesXhr;
@@ -1,48 +1,48 @@
1
- class ModulesTransportController {
2
- constructor() {
3
- this._service = null;
4
- }
5
-
6
- _updateService() {
7
- this._service = this.getInstance('Service');
8
- };
9
-
10
- init(){
11
- this._updateService();
12
- this._service.init();
13
- };
14
-
15
- setOnConnectionHandler(handler){
16
- this._service.on('connection', handler);
17
- };
18
-
19
- setReadyHandler(handler){
20
- this._service.on('ready', handler);
21
- };
22
-
23
- setErrorHandler(handler){
24
- this._service.on('error', handler);
25
- };
26
-
27
- setResponseHandler(handler){
28
- this._service.on('response', handler);
29
- };
30
-
31
- setOnCloseHandler(handler){
32
- this._service.on('close', handler);
33
- };
34
-
35
- send(message){
36
- this._service.send(message);
37
- };
38
-
39
- reconnect(){
40
- this._service.reconnect();
41
- };
42
-
43
- close(){
44
- this._service.close();
45
- };
46
- }
47
-
48
- module.exports = ModulesTransportController;
1
+ class ModulesTransportController {
2
+ constructor() {
3
+ this._service = null;
4
+ }
5
+
6
+ _updateService() {
7
+ this._service = this.getInstance('Service');
8
+ };
9
+
10
+ init(){
11
+ this._updateService();
12
+ this._service.init();
13
+ };
14
+
15
+ setOnConnectionHandler(handler){
16
+ this._service.on('connection', handler);
17
+ };
18
+
19
+ setReadyHandler(handler){
20
+ this._service.on('ready', handler);
21
+ };
22
+
23
+ setErrorHandler(handler){
24
+ this._service.on('error', handler);
25
+ };
26
+
27
+ setResponseHandler(handler){
28
+ this._service.on('response', handler);
29
+ };
30
+
31
+ setOnCloseHandler(handler){
32
+ this._service.on('close', handler);
33
+ };
34
+
35
+ send(message){
36
+ this._service.send(message);
37
+ };
38
+
39
+ reconnect(){
40
+ this._service.reconnect();
41
+ };
42
+
43
+ close(){
44
+ this._service.close();
45
+ };
46
+ }
47
+
48
+ module.exports = ModulesTransportController;
@@ -1,16 +1,16 @@
1
- class ModulesTransportDecorator {
2
- constructor() {
3
- this.singleton = true;
4
- }
5
-
6
- toServer(message) {
7
- return message;
8
- };
9
-
10
- toFront(message) {
11
- return message;
12
- };
13
-
14
- }
15
-
16
- module.exports = ModulesTransportDecorator;
1
+ class ModulesTransportDecorator {
2
+ constructor() {
3
+ this.singleton = true;
4
+ }
5
+
6
+ toServer(message) {
7
+ return message;
8
+ };
9
+
10
+ toFront(message) {
11
+ return message;
12
+ };
13
+
14
+ }
15
+
16
+ module.exports = ModulesTransportDecorator;
@@ -1,138 +1,138 @@
1
- class ModulesTransportService {
2
- constructor() {
3
- this._callbacks = {};
4
- this._config = this.getInstance('Config').getConfig();
5
-
6
- this.WEBSOCKET = 'websocket';
7
- this.XHR = 'xhr';
8
-
9
- this._communicator = null;
10
- }
11
-
12
- on(event, callback, force) {
13
- if (!this._checkCallback(event) || force)
14
- this._setCallback(event, callback);
15
- };
16
-
17
- init() {
18
- this._createConnection();
19
- };
20
-
21
- send(message) {
22
- if (!this._checkCommunicator() || !this._checkCommunicatorReady())
23
- return false;
24
-
25
- const decoratedMessage = this.getInstance('Decorator').toServer(message);
26
- const validatedMessage = this._validateMessage(decoratedMessage);
27
- this._communicator.send(validatedMessage);
28
-
29
- return true;
30
- };
31
-
32
- reconnect() {
33
- if (!this._checkCommunicator())
34
- return false;
35
-
36
- this._communicator.reconnect(this._config.autoReconnectionDelay || 0);
37
-
38
- return true;
39
- };
40
-
41
- close() {
42
- if (!this._checkCommunicator())
43
- return false;
44
-
45
- this._communicator.close();
46
-
47
- return true;
48
- };
49
-
50
- _checkCallback(event) {
51
- const result = !!this._callbacks[event];
52
-
53
- if (result)
54
- Urso.logger.error(`Overwrite ${event} event detected!`);
55
-
56
- return result;
57
- };
58
-
59
- _checkCommunicator() {
60
- if (!this._communicator)
61
- Urso.logger.error('Communicator was not created!');
62
-
63
- return true;
64
- }
65
-
66
- _checkCommunicatorReady() {
67
- return this._communicator.readyCheck();
68
- };
69
-
70
- _destroyCommunicator() {
71
- this._communicator = null;
72
- };
73
-
74
- _prepareCallback(event, callback) {
75
- const func = message => {
76
- const data = this._runMiddleWare(event, message);
77
- return callback(data);
78
- };
79
-
80
- return func;
81
- }
82
-
83
- _runMiddleWare(event, data) {
84
- switch (event) {
85
- case 'response':
86
- const decoratedMessage = this.getInstance('Decorator').toFront(JSON.parse(data));
87
- return this._validateMessage(decoratedMessage);
88
-
89
- case 'close':
90
- case 'error':
91
- this._tryReconnect();;
92
- default:
93
- return data;
94
- }
95
- };
96
-
97
- _tryReconnect() {
98
- if (!this._config.autoReconnection)
99
- return false;
100
-
101
- this._communicator.reconnect(this._config.autoReconnectionDelay);
102
- };
103
-
104
- _setCallback(event, callback) {
105
- this._callbacks[event] = this._prepareCallback(event, callback);
106
- };
107
-
108
- _validateMessage(message) {
109
- // TODO : SET VALIDATION MODELS
110
- return { ...message };
111
- };
112
-
113
- _getHost(type) {
114
- const hosts = this._config.hosts;
115
-
116
- switch (type) {
117
- case this.WEBSOCKET:
118
- return hosts.wsHost;
119
- case this.XHR:
120
- return hosts.xhrHost;
121
- default:
122
- return false;
123
- }
124
- };
125
-
126
- _createConnection(type = this.WEBSOCKET) {
127
- const host = this._getHost(type);
128
- const callbacks = this._callbacks;
129
- const capitalizedType = Urso.helper.capitaliseFirstLetter(type);
130
-
131
- this._communicator = this.getInstance(`ConnectionTypes.${capitalizedType}`, { callbacks, host });
132
-
133
- if (!this._communicator)
134
- Urso.logger.error(`Transport type: '${capitalizedType}' was not found!`);
135
- };
136
- }
137
-
138
- module.exports = ModulesTransportService;
1
+ class ModulesTransportService {
2
+ constructor() {
3
+ this._callbacks = {};
4
+ this._config = this.getInstance('Config').getConfig();
5
+
6
+ this.WEBSOCKET = 'websocket';
7
+ this.XHR = 'xhr';
8
+
9
+ this._communicator = null;
10
+ }
11
+
12
+ on(event, callback, force) {
13
+ if (!this._checkCallback(event) || force)
14
+ this._setCallback(event, callback);
15
+ };
16
+
17
+ init() {
18
+ this._createConnection();
19
+ };
20
+
21
+ send(message) {
22
+ if (!this._checkCommunicator() || !this._checkCommunicatorReady())
23
+ return false;
24
+
25
+ const decoratedMessage = this.getInstance('Decorator').toServer(message);
26
+ const validatedMessage = this._validateMessage(decoratedMessage);
27
+ this._communicator.send(validatedMessage);
28
+
29
+ return true;
30
+ };
31
+
32
+ reconnect() {
33
+ if (!this._checkCommunicator())
34
+ return false;
35
+
36
+ this._communicator.reconnect(this._config.autoReconnectionDelay || 0);
37
+
38
+ return true;
39
+ };
40
+
41
+ close() {
42
+ if (!this._checkCommunicator())
43
+ return false;
44
+
45
+ this._communicator.close();
46
+
47
+ return true;
48
+ };
49
+
50
+ _checkCallback(event) {
51
+ const result = !!this._callbacks[event];
52
+
53
+ if (result)
54
+ Urso.logger.error(`Overwrite ${event} event detected!`);
55
+
56
+ return result;
57
+ };
58
+
59
+ _checkCommunicator() {
60
+ if (!this._communicator)
61
+ Urso.logger.error('Communicator was not created!');
62
+
63
+ return true;
64
+ }
65
+
66
+ _checkCommunicatorReady() {
67
+ return this._communicator.readyCheck();
68
+ };
69
+
70
+ _destroyCommunicator() {
71
+ this._communicator = null;
72
+ };
73
+
74
+ _prepareCallback(event, callback) {
75
+ const func = message => {
76
+ const data = this._runMiddleWare(event, message);
77
+ return callback(data);
78
+ };
79
+
80
+ return func;
81
+ }
82
+
83
+ _runMiddleWare(event, data) {
84
+ switch (event) {
85
+ case 'response':
86
+ const decoratedMessage = this.getInstance('Decorator').toFront(JSON.parse(data));
87
+ return this._validateMessage(decoratedMessage);
88
+
89
+ case 'close':
90
+ case 'error':
91
+ this._tryReconnect();;
92
+ default:
93
+ return data;
94
+ }
95
+ };
96
+
97
+ _tryReconnect() {
98
+ if (!this._config.autoReconnection)
99
+ return false;
100
+
101
+ this._communicator.reconnect(this._config.autoReconnectionDelay);
102
+ };
103
+
104
+ _setCallback(event, callback) {
105
+ this._callbacks[event] = this._prepareCallback(event, callback);
106
+ };
107
+
108
+ _validateMessage(message) {
109
+ // TODO : SET VALIDATION MODELS
110
+ return { ...message };
111
+ };
112
+
113
+ _getHost(type) {
114
+ const hosts = this._config.hosts;
115
+
116
+ switch (type) {
117
+ case this.WEBSOCKET:
118
+ return hosts.wsHost;
119
+ case this.XHR:
120
+ return hosts.xhrHost;
121
+ default:
122
+ return false;
123
+ }
124
+ };
125
+
126
+ _createConnection(type = this.WEBSOCKET) {
127
+ const host = this._getHost(type);
128
+ const callbacks = this._callbacks;
129
+ const capitalizedType = Urso.helper.capitaliseFirstLetter(type);
130
+
131
+ this._communicator = this.getInstance(`ConnectionTypes.${capitalizedType}`, { callbacks, host });
132
+
133
+ if (!this._communicator)
134
+ Urso.logger.error(`Transport type: '${capitalizedType}' was not found!`);
135
+ };
136
+ }
137
+
138
+ module.exports = ModulesTransportService;
@@ -1,4 +1,4 @@
1
- Urso.Core.Templates = {};
2
-
3
- require('./groups/_info.js');
4
- require('./scenes/_info.js');
1
+ Urso.Core.Templates = {};
2
+
3
+ require('./groups/_info.js');
4
+ require('./scenes/_info.js');
@@ -1 +1 @@
1
- Urso.Core.Templates.Groups = {};
1
+ Urso.Core.Templates.Groups = {};
@@ -1 +1 @@
1
- Urso.Core.Templates.Scenes = {};
1
+ Urso.Core.Templates.Scenes = {};
package/webpack.config.js CHANGED
@@ -1,47 +1,47 @@
1
- const path = require('path');
2
- const packageJson = require('./package.json');
3
- const root = process.cwd();
4
-
5
- const version = packageJson.version;
6
-
7
- module.exports = () => {
8
- const config = {
9
- entry: {
10
- index: path.resolve(root, 'src', 'js', 'index.js')
11
- },
12
- output: {
13
- path: path.resolve(root, 'build'),
14
- filename: path.join('js', 'index.js'),
15
- publicPath: '/'
16
- },
17
- module: {
18
- rules: [
19
- {
20
- test: /app\.js$/,
21
- loader: 'string-replace-loader',
22
- options: {
23
- search: 'APP_VERSION',
24
- replace: version,
25
- }
26
- },
27
- {
28
- test: /\.css$/,
29
- use: ['style-loader', 'css-loader'],
30
- },
31
- {
32
- test: /\.js$/,
33
- enforce: "pre",
34
- use: ["source-map-loader"],
35
- },
36
- {
37
- test: /\.js$/,
38
- exclude: /node_modules/,
39
- use: {
40
- loader: 'babel-loader'
41
- }
42
- }
43
- ]
44
- }
45
- };
46
- return config;
47
- };
1
+ const path = require('path');
2
+ const packageJson = require('./package.json');
3
+ const root = process.cwd();
4
+
5
+ const version = packageJson.version;
6
+
7
+ module.exports = () => {
8
+ const config = {
9
+ entry: {
10
+ index: path.resolve(root, 'src', 'js', 'index.js')
11
+ },
12
+ output: {
13
+ path: path.resolve(root, 'build'),
14
+ filename: path.join('js', 'index.js'),
15
+ publicPath: '/'
16
+ },
17
+ module: {
18
+ rules: [
19
+ {
20
+ test: /app\.js$/,
21
+ loader: 'string-replace-loader',
22
+ options: {
23
+ search: 'APP_VERSION',
24
+ replace: version,
25
+ }
26
+ },
27
+ {
28
+ test: /\.css$/,
29
+ use: ['style-loader', 'css-loader'],
30
+ },
31
+ {
32
+ test: /\.js$/,
33
+ enforce: "pre",
34
+ use: ["source-map-loader"],
35
+ },
36
+ {
37
+ test: /\.js$/,
38
+ exclude: /node_modules/,
39
+ use: {
40
+ loader: 'babel-loader'
41
+ }
42
+ }
43
+ ]
44
+ }
45
+ };
46
+ return config;
47
+ };