not-node 5.0.19 → 5.1.0

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 (128) hide show
  1. package/.eslintrc.json +1 -1
  2. package/bin/not-deploy.js +52 -0
  3. package/error.format +11 -0
  4. package/index.js +22 -18
  5. package/package.json +1 -1
  6. package/src/app.js +61 -58
  7. package/src/auth/abstract.js +17 -19
  8. package/src/auth/const.js +8 -12
  9. package/src/auth/fields.js +143 -124
  10. package/src/auth/index.js +14 -14
  11. package/src/auth/roles.js +64 -63
  12. package/src/auth/routes.js +89 -54
  13. package/src/auth/rules.js +63 -63
  14. package/src/auth/session.js +60 -62
  15. package/src/bootstrap/form.js +18 -0
  16. package/src/bootstrap/index.js +11 -0
  17. package/src/bootstrap/logic.js +50 -0
  18. package/src/bootstrap/model.js +15 -0
  19. package/src/bootstrap/route.js +139 -0
  20. package/src/common.js +86 -79
  21. package/src/core/fields/ID.js +6 -6
  22. package/src/core/fields/__closed.js +3 -3
  23. package/src/core/fields/__latest.js +3 -3
  24. package/src/core/fields/__version.js +3 -3
  25. package/src/core/fields/__versions.js +3 -3
  26. package/src/core/fields/_id.js +6 -6
  27. package/src/core/fields/active.js +9 -9
  28. package/src/core/fields/codeName.js +9 -9
  29. package/src/core/fields/createdAt.js +17 -17
  30. package/src/core/fields/default.js +9 -9
  31. package/src/core/fields/description.js +11 -11
  32. package/src/core/fields/email.js +9 -9
  33. package/src/core/fields/enabled.js +9 -9
  34. package/src/core/fields/expiredAt.js +16 -16
  35. package/src/core/fields/height.js +11 -11
  36. package/src/core/fields/ip.js +10 -10
  37. package/src/core/fields/objectId.js +10 -10
  38. package/src/core/fields/owner.js +13 -13
  39. package/src/core/fields/ownerModel.js +11 -11
  40. package/src/core/fields/price.js +11 -11
  41. package/src/core/fields/requiredObject.js +10 -10
  42. package/src/core/fields/session.js +10 -10
  43. package/src/core/fields/size.js +11 -11
  44. package/src/core/fields/telephone.js +9 -9
  45. package/src/core/fields/title.js +15 -15
  46. package/src/core/fields/updatedAt.js +17 -17
  47. package/src/core/fields/userId.js +11 -12
  48. package/src/core/fields/uuid.js +11 -11
  49. package/src/core/fields/validators/email.js +6 -4
  50. package/src/core/fields/validators/owner.js +6 -4
  51. package/src/core/fields/width.js +11 -11
  52. package/src/domain.js +435 -431
  53. package/src/env.js +23 -23
  54. package/src/error.js +20 -23
  55. package/src/exceptions/db.js +23 -0
  56. package/src/exceptions/http.js +43 -0
  57. package/src/fields/index.js +139 -121
  58. package/src/form/fabric.js +19 -24
  59. package/src/form/form.js +195 -186
  60. package/src/form/index.js +2 -2
  61. package/src/generic/index.js +2 -0
  62. package/src/generic/logic.js +595 -0
  63. package/src/generic/route.js +76 -0
  64. package/src/getApp.js +2 -0
  65. package/src/init/additional.js +7 -7
  66. package/src/init/app.js +75 -68
  67. package/src/init/bodyparser.js +14 -14
  68. package/src/init/compression.js +6 -7
  69. package/src/init/core.js +12 -12
  70. package/src/init/cors.js +22 -24
  71. package/src/init/db/index.js +41 -43
  72. package/src/init/db/ioredis.js +28 -20
  73. package/src/init/db/mongoose.js +42 -32
  74. package/src/init/db/redis.js +59 -48
  75. package/src/init/env.js +44 -36
  76. package/src/init/express.js +18 -21
  77. package/src/init/fileupload.js +8 -10
  78. package/src/init/http.js +65 -47
  79. package/src/init/index.js +141 -148
  80. package/src/init/informer.js +7 -9
  81. package/src/init/methodoverride.js +4 -6
  82. package/src/init/middleware.js +23 -26
  83. package/src/init/modules.js +4 -4
  84. package/src/init/monitoring.js +8 -8
  85. package/src/init/rateLimiter.js +53 -45
  86. package/src/init/routes.js +67 -69
  87. package/src/init/security.js +37 -33
  88. package/src/init/sequence.js +111 -107
  89. package/src/init/sequence.standart.js +54 -56
  90. package/src/init/sessions/index.js +21 -21
  91. package/src/init/sessions/mongoose.js +49 -36
  92. package/src/init/sessions/redis.js +28 -27
  93. package/src/init/static.js +53 -40
  94. package/src/init/template.js +17 -17
  95. package/src/lib.js +230 -200
  96. package/src/manifest/batchRunner.js +26 -25
  97. package/src/manifest/initializator/forms.js +24 -24
  98. package/src/manifest/initializator/index.js +8 -10
  99. package/src/manifest/initializator/manifests.js +45 -42
  100. package/src/manifest/initializator/models.js +37 -34
  101. package/src/manifest/manifest.filter.js +130 -97
  102. package/src/manifest/manifest.js +103 -77
  103. package/src/manifest/module.js +350 -360
  104. package/src/manifest/registrator/fields.js +90 -85
  105. package/src/manifest/registrator/forms.js +47 -47
  106. package/src/manifest/registrator/index.js +14 -16
  107. package/src/manifest/registrator/locales.js +17 -16
  108. package/src/manifest/registrator/logics.js +66 -64
  109. package/src/manifest/registrator/models.js +64 -62
  110. package/src/manifest/registrator/routes.js +171 -132
  111. package/src/manifest/registrator/routes.ws.js +109 -103
  112. package/src/manifest/route.js +216 -161
  113. package/src/model/buildValidator.js +53 -42
  114. package/src/model/default.js +304 -286
  115. package/src/model/enrich.js +69 -61
  116. package/src/model/increment.js +124 -137
  117. package/src/model/proto.js +179 -148
  118. package/src/model/routine.js +85 -76
  119. package/src/model/utils.js +33 -0
  120. package/src/model/versioning.js +148 -124
  121. package/src/obsolete.js +12 -8
  122. package/src/parser.js +29 -22
  123. package/src/repos.js +29 -31
  124. package/src/rollup.js +75 -65
  125. package/src/shell.helpers.js +28 -28
  126. package/static.js +31 -0
  127. package/src/manifest/module.models.js +0 -0
  128. package/src/manifest/module.status.js +0 -0
@@ -1,141 +1,165 @@
1
1
  /** @module Model/Versioning */
2
2
 
3
- const diff = require('deep-diff').diff;
3
+ const diff = require("deep-diff").diff;
4
+
5
+ const TECH_FIELDS = [
6
+ "_id",
7
+ "__version",
8
+ "__versions",
9
+ "__v",
10
+ "__latest",
11
+ "__closed",
12
+ ];
13
+
14
+ const ERR_NO_PREVIOUS_VERSIONS = "No previous version!";
15
+ const ERR_SAME_OLD_DATA = "Same old data";
16
+
17
+ class ModelVersioning {
18
+ static versionsHistoryExists(data) {
19
+ return Array.isArray(data.__versions) && data.__versions.length > 0;
20
+ }
4
21
 
5
- const TECH_FIELDS = ['_id', '__version', '__versions', '__v', '__latest', '__closed'];
22
+ static extractVersionNumber(data) {
23
+ return typeof data.__version !== "undefined" && data.__version !== null
24
+ ? data.__version
25
+ : 0;
26
+ }
6
27
 
7
- const ERR_NO_PREVIOUS_VERSIONS = 'No previous version!';
8
- const ERR_SAME_OLD_DATA = 'Same old data';
28
+ static getLatestVersionId(data) {
29
+ return data.__versions[0];
30
+ }
9
31
 
10
- class ModelVersioning{
32
+ static addVersionToHistory(doc, version) {
33
+ if (!ModelVersioning.versionsHistoryExists(doc)) {
34
+ doc.__versions = [];
35
+ }
36
+ doc.__versions.unshift(version._id); //первая в массиве последняя [3,2,1,0]
37
+ return doc.save();
38
+ }
11
39
 
12
- static versionsHistoryExists(data){
13
- return Array.isArray(data.__versions) && (data.__versions.length > 0);
14
- }
40
+ static stripTechData(a) {
41
+ TECH_FIELDS.forEach((f) => {
42
+ delete a[f];
43
+ });
44
+ return a;
45
+ }
15
46
 
16
- static extractVersionNumber(data){
17
- return (typeof data.__version !== 'undefined' && data.__version !== null) ? data.__version : 0;
18
- }
47
+ static jsonCopy(a) {
48
+ return JSON.parse(JSON.stringify(a));
49
+ }
19
50
 
20
- static getLatestVersionId(data){
21
- return data.__versions[0];
22
- }
51
+ static isThisDocsDifferent(a, b) {
52
+ a = ModelVersioning.stripTechData(a);
53
+ b = ModelVersioning.stripTechData(b);
54
+ const plainA = ModelVersioning.jsonCopy(a);
55
+ const plainB = ModelVersioning.jsonCopy(b);
56
+ const diffLog = diff(plainA, plainB);
57
+ return typeof diffLog !== "undefined";
58
+ }
23
59
 
24
- static addVersionToHistory(doc, version){
25
- if (!ModelVersioning.versionsHistoryExists(doc)) {
26
- doc.__versions = [];
60
+ /**
61
+ * Compares latest version in __versions list in data with data
62
+ * @param {MongooseModel} thisModel model of data
63
+ * @param {Object} data data to save
64
+ * @return {boolean} if data differs from latest version
65
+ */
66
+ static async isNew(thisModel, data) {
67
+ let latestId = ModelVersioning.getLatestVersionId(data);
68
+ let previous = await thisModel.findById(latestId);
69
+ if (typeof previous !== "undefined" && previous !== null) {
70
+ return ModelVersioning.isThisDocsDifferent(
71
+ data,
72
+ previous.toObject()
73
+ );
74
+ } else {
75
+ throw new Error(ERR_NO_PREVIOUS_VERSIONS);
76
+ }
27
77
  }
28
- doc.__versions.unshift(version._id); //первая в массиве последняя [3,2,1,0]
29
- return doc.save();
30
- }
31
-
32
- static stripTechData(a) {
33
- TECH_FIELDS.forEach((f)=>{
34
- delete a[f];
35
- });
36
- return a;
37
- }
38
-
39
- static isThisDocsDifferent(a, b) {
40
- a = ModelVersioning.stripTechData(a);
41
- b = ModelVersioning.stripTechData(b);
42
- let diffLog = diff(a, b);
43
- return (typeof diffLog !== 'undefined');
44
- }
45
-
46
- /**
47
- * Compares latest version in __versions list in data with data
48
- * @param {MongooseModel} thisModel model of data
49
- * @param {Object} data data to save
50
- * @return {boolean} if data differs from latest version
51
- */
52
- static async isNew(thisModel, data) {
53
- let latestId = ModelVersioning.getLatestVersionId(data);
54
- let previous = await thisModel.findById(latestId);
55
- if (typeof previous !== 'undefined' && previous !== null) {
56
- return ModelVersioning.isThisDocsDifferent(data, previous.toObject());
57
- } else {
58
- throw new Error(ERR_NO_PREVIOUS_VERSIONS);
78
+
79
+ /**
80
+ * Saves current version to versions archive, updates current version versioning tags
81
+ * @param {ObjectId} id current version _id (just saved version)
82
+ * @param {Object} data data to save
83
+ * @param {MongooseModel} thisModel model to use
84
+ * @return {Promise<MongooseDocument>} current version with updated versioning tags
85
+ */
86
+ static async saveVersion(id, data, model) {
87
+ let preservedVersionNumber = ModelVersioning.extractVersionNumber(data),
88
+ preservedVersionsList = [...data.__versions]; //making copy
89
+ let different = await ModelVersioning.isNew(model, data);
90
+ if (different) {
91
+ //it's not latest version, it's archived copy
92
+ delete data.__latest;
93
+ //saves to archive with preserved data
94
+ let versionDoc = new model(data);
95
+ versionDoc.__version = preservedVersionNumber;
96
+ versionDoc.__versions = preservedVersionsList;
97
+ await versionDoc.save();
98
+ //updating history
99
+ let originalDoc = await model.findById(id).exec();
100
+ originalDoc.__version = preservedVersionNumber + 1;
101
+ return await ModelVersioning.addVersionToHistory(
102
+ originalDoc,
103
+ versionDoc
104
+ );
105
+ }
106
+ throw new Error(ERR_SAME_OLD_DATA);
59
107
  }
60
- }
61
-
62
- /**
63
- * Saves current version to versions archive, updates current version versioning tags
64
- * @param {ObjectId} id current version _id (just saved version)
65
- * @param {Object} data data to save
66
- * @param {MongooseModel} thisModel model to use
67
- * @return {Promise<MongooseDocument>} current version with updated versioning tags
68
- */
69
- static async saveVersion(id, data, model){
70
- let preservedVersionNumber = ModelVersioning.extractVersionNumber(data),
71
- preservedVersionsList = [...data.__versions];//making copy
72
- let different = await ModelVersioning.isNew(model, data);
73
- if (different) {
74
- //it's not latest version, it's archived copy
75
- delete data.__latest;
76
- //saves to archive with preserved data
77
- let versionDoc = new model(data);
78
- versionDoc.__version = preservedVersionNumber;
79
- versionDoc.__versions = preservedVersionsList;
80
- await versionDoc.save();
81
- //updating history
82
- let originalDoc = await model.findById(id).exec();
83
- originalDoc.__version = preservedVersionNumber + 1;
84
- return await ModelVersioning.addVersionToHistory(originalDoc, versionDoc);
108
+
109
+ /**
110
+ * Saves first version. Run AFTER doing .save() on document.
111
+ * @param {ObjectId} id current version _id (just saved version)
112
+ * @param {Object} data data to save
113
+ * @param {MongooseModel} thisModel model to use
114
+ * @return {Promise<MongooseDocument>} current version with updated versions tags
115
+ */
116
+ static async saveFirstVersion(id, data, thisModel) {
117
+ //it's not latest version, it's archived copy
118
+ delete data.__latest;
119
+ //saves to archive
120
+ let versionDoc = new thisModel(data);
121
+ await versionDoc.save();
122
+ //retrieving original
123
+ let originalDoc = await thisModel.findById(id).exec();
124
+ //first version
125
+ originalDoc.__version = 1;
126
+ //adding to history
127
+ return await ModelVersioning.addVersionToHistory(
128
+ originalDoc,
129
+ versionDoc
130
+ );
85
131
  }
86
- throw new Error(ERR_SAME_OLD_DATA);
87
- }
88
-
89
- /**
90
- * Saves first version. Run AFTER doing .save() on document.
91
- * @param {ObjectId} id current version _id (just saved version)
92
- * @param {Object} data data to save
93
- * @param {MongooseModel} thisModel model to use
94
- * @return {Promise<MongooseDocument>} current version with updated versions tags
95
- */
96
- static async saveFirstVersion(id, data, thisModel){
97
- //it's not latest version, it's archived copy
98
- delete data.__latest;
99
- //saves to archive
100
- let versionDoc = new thisModel(data);
101
- await versionDoc.save();
102
- //retrieving original
103
- let originalDoc = await thisModel.findById(id).exec();
104
- //first version
105
- originalDoc.__version = 1;
106
- //adding to history
107
- return await ModelVersioning.addVersionToHistory(originalDoc, versionDoc);
108
- }
109
-
110
- /**
111
- * Save document
112
- * if document is new - creates document
113
- * if it's updated document - updates document and versioning history
114
- * @param {MongooseModel} doc document to save
115
- * @return {Promise<MongooseDocument>} current version with updated versions tags
116
- */
117
- static saveDiff(doc){
118
- let data = doc.toObject(),
119
- id = data._id;
120
- delete data._id;
121
- if (ModelVersioning.versionsHistoryExists(data)) {
122
- return ModelVersioning.saveVersion(id, data, this);
123
- } else {
124
- return ModelVersioning.saveFirstVersion(id, data, this);
132
+
133
+ /**
134
+ * Save document
135
+ * if document is new - creates document
136
+ * if it's updated document - updates document and versioning history
137
+ * @param {MongooseModel} doc document to save
138
+ * @return {Promise<MongooseDocument>} current version with updated versions tags
139
+ */
140
+ static saveDiff(doc) {
141
+ let data = doc.toObject(),
142
+ id = data._id;
143
+ delete data._id;
144
+ if (ModelVersioning.versionsHistoryExists(data)) {
145
+ return ModelVersioning.saveVersion(id, data, this);
146
+ } else {
147
+ return ModelVersioning.saveFirstVersion(id, data, this);
148
+ }
125
149
  }
126
- }
127
-
128
- /**
129
- * Idea is that you first save or update your doc
130
- * then you run Doc.version(_id_of_just_saved_doc)
131
- * and it will create archived copy of current document,
132
- * add _id of copy to list of document.__versions
133
- * and increment __version number
134
- **/
135
- static version(id){
136
- return this.findById(id).exec().then(ModelVersioning.saveDiff.bind(this));
137
- }
138
150
 
151
+ /**
152
+ * Idea is that you first save or update your doc
153
+ * then you run Doc.version(_id_of_just_saved_doc)
154
+ * and it will create archived copy of current document,
155
+ * add _id of copy to list of document.__versions
156
+ * and increment __version number
157
+ **/
158
+ static version(id) {
159
+ return this.findById(id)
160
+ .exec()
161
+ .then(ModelVersioning.saveDiff.bind(this));
162
+ }
139
163
  }
140
164
 
141
165
  ModelVersioning.ERR_NO_PREVIOUS_VERSIONS = ERR_NO_PREVIOUS_VERSIONS;
package/src/obsolete.js CHANGED
@@ -1,10 +1,14 @@
1
- const log = require('not-log')(module, 'Auth');
1
+ const log = require("not-log")(module, "Auth");
2
2
 
3
- module.exports = function(rule, url = ''){
4
- if (Object.prototype.hasOwnProperty.call(rule, 'user')){
5
- log.error(`Missformed rule, field "user" is not allowed, use "auth" instead: ${url}`);
6
- }
7
- if (Object.prototype.hasOwnProperty.call(rule, 'admin')){
8
- log.error(`Missformed rule, field "admin" is obsolete, use "root" instead: ${url}`);
9
- }
3
+ module.exports = function (rule, url = "") {
4
+ if (Object.prototype.hasOwnProperty.call(rule, "user")) {
5
+ log.error(
6
+ `Missformed rule, field "user" is not allowed, use "auth" instead: ${url}`
7
+ );
8
+ }
9
+ if (Object.prototype.hasOwnProperty.call(rule, "admin")) {
10
+ log.error(
11
+ `Missformed rule, field "admin" is obsolete, use "root" instead: ${url}`
12
+ );
13
+ }
10
14
  };
package/src/parser.js CHANGED
@@ -1,4 +1,4 @@
1
- const {objHas} = require('./common');
1
+ const { objHas } = require("./common");
2
2
 
3
3
  /** @module Parser */
4
4
 
@@ -11,18 +11,20 @@ const {objHas} = require('./common');
11
11
  * record[fieldName] - is for client side mostly, shows what model field walue should be placed there. Samples ':record[_id]', ':record[authorId]'
12
12
  * @return {string} resolved line
13
13
  */
14
- module.exports.parseLine = function(line, modelName, actionName) {
15
- var recStart = ':record[',
16
- recEnd = ']';
17
- //remove client-side markers and replace them with name of field. :record[_id] turns into :_id
18
- while(line.indexOf(recStart) > -1) {
19
- line = line.replace(recStart, ':');
20
- line = line.replace(recEnd, '');
21
- }
22
- //place server-side markers
23
- if(typeof modelName !== 'undefined') line = line.replace(':modelName', modelName);
24
- if(typeof actionName !== 'undefined') line = line.replace(':actionName', actionName);
25
- return line;
14
+ module.exports.parseLine = function (line, modelName, actionName) {
15
+ var recStart = ":record[",
16
+ recEnd = "]";
17
+ //remove client-side markers and replace them with name of field. :record[_id] turns into :_id
18
+ while (line.indexOf(recStart) > -1) {
19
+ line = line.replace(recStart, ":");
20
+ line = line.replace(recEnd, "");
21
+ }
22
+ //place server-side markers
23
+ if (typeof modelName !== "undefined")
24
+ line = line.replace(":modelName", modelName);
25
+ if (typeof actionName !== "undefined")
26
+ line = line.replace(":actionName", actionName);
27
+ return line;
26
28
  };
27
29
 
28
30
  /**
@@ -34,13 +36,18 @@ module.exports.parseLine = function(line, modelName, actionName) {
34
36
  * @param {object} actionData data from manifest for this action
35
37
  * @return {string} resolved router line
36
38
  */
37
- module.exports.getRouteLine = function(url, modelName, actionName, actionData) {
38
- let part1 = this.parseLine(url, modelName, actionName),
39
- part2 = '';
40
- if(objHas(actionData,'postFix')){
41
- part2 = this.parseLine(actionData.postFix, modelName, actionName);
42
- }else{
43
- part2 = '';
44
- }
45
- return part1 + part2;
39
+ module.exports.getRouteLine = function (
40
+ url,
41
+ modelName,
42
+ actionName,
43
+ actionData
44
+ ) {
45
+ let part1 = this.parseLine(url, modelName, actionName),
46
+ part2 = "";
47
+ if (objHas(actionData, "postFix")) {
48
+ part2 = this.parseLine(actionData.postFix, modelName, actionName);
49
+ } else {
50
+ part2 = "";
51
+ }
52
+ return part1 + part2;
46
53
  };
package/src/repos.js CHANGED
@@ -1,37 +1,35 @@
1
1
  /** @module Repos */
2
2
 
3
3
  module.exports = {
4
- default: {
5
- url: 'https://github.com/interrupter/not-project.git',
6
- dir: './',
7
- clear:{
8
- dirs: ['.git'],
9
- files: ['package-lock.json'],
10
- },
11
- exec: {
12
- after: ['init.sh']
13
- }
14
- },
15
- gallery: {
16
- extends: ['default'],
17
- dir: './',
18
- url:'https://github.com/interrupter/not-project-gallery.git',
19
- clear: {
20
- dirs: ['.git'],
21
- files: ['.gitignore'],
4
+ default: {
5
+ url: "https://github.com/interrupter/not-project.git",
6
+ dir: "./",
7
+ clear: {
8
+ dirs: [".git"],
9
+ files: ["package-lock.json"],
10
+ },
11
+ exec: {
12
+ after: ["init.sh"],
13
+ },
22
14
  },
23
- use: [
24
- {
25
- url: 'https://github.com/interrupter/not-store.git',
26
- dir: 'server/app/modules',
15
+ gallery: {
16
+ extends: ["default"],
17
+ dir: "./",
18
+ url: "https://github.com/interrupter/not-project-gallery.git",
27
19
  clear: {
28
- dirs: ['.git'],
29
- files: ['.gitignore'],
30
- }
31
- },
32
- ],
33
- npm: [
34
- 'not-store'
35
- ]
36
- }
20
+ dirs: [".git"],
21
+ files: [".gitignore"],
22
+ },
23
+ use: [
24
+ {
25
+ url: "https://github.com/interrupter/not-store.git",
26
+ dir: "server/app/modules",
27
+ clear: {
28
+ dirs: [".git"],
29
+ files: [".gitignore"],
30
+ },
31
+ },
32
+ ],
33
+ npm: ["not-store"],
34
+ },
37
35
  };
package/src/rollup.js CHANGED
@@ -1,79 +1,89 @@
1
1
  /** @module Rollup */
2
2
 
3
3
  // Rollup plugins
4
- import babel from 'rollup-plugin-babel';
5
- import eslint from 'rollup-plugin-eslint';
6
- import commonjs from 'rollup-plugin-commonjs';
7
- import resolve from 'rollup-plugin-node-resolve';
8
- import replace from 'rollup-plugin-replace';
9
- import uglify from 'rollup-plugin-uglify';
10
- import filesize from 'rollup-plugin-filesize';
11
- import postcss from 'rollup-plugin-postcss';
4
+ import babel from "rollup-plugin-babel";
5
+ import eslint from "rollup-plugin-eslint";
6
+ import commonjs from "rollup-plugin-commonjs";
7
+ import resolve from "rollup-plugin-node-resolve";
8
+ import replace from "rollup-plugin-replace";
9
+ import uglify from "rollup-plugin-uglify";
10
+ import filesize from "rollup-plugin-filesize";
11
+ import postcss from "rollup-plugin-postcss";
12
12
 
13
13
  // PostCSS plugins
14
- import simplevars from 'postcss-simple-vars';
15
- import nested from 'postcss-nested';
16
- import cssnext from 'postcss-cssnext';
17
- import envReplace from 'postcss-env-replace';
18
- import cssnano from 'cssnano';
14
+ import simplevars from "postcss-simple-vars";
15
+ import nested from "postcss-nested";
16
+ import cssnext from "postcss-cssnext";
17
+ import envReplace from "postcss-env-replace";
18
+ import cssnano from "cssnano";
19
19
 
20
20
  let replacerOpts = {
21
- ENV: JSON.stringify(process.env.NODE_ENV || 'development')
22
- },
23
- baseHost = replacerOpts.ROLLUP_ENV_PORT+'://'+replacerOpts.ROLLUP_ENV_HOST+':'+replacerOpts.ROLLUP_ENV_PORT+'/editor';
21
+ ENV: JSON.stringify(process.env.NODE_ENV || "development"),
22
+ },
23
+ baseHost =
24
+ replacerOpts.ROLLUP_ENV_PORT +
25
+ "://" +
26
+ replacerOpts.ROLLUP_ENV_HOST +
27
+ ":" +
28
+ replacerOpts.ROLLUP_ENV_PORT +
29
+ "/editor";
24
30
 
25
- if (['production', 'stage', 'develpment'].indexOf(process.env.NODE_ENV)>-1){
26
- replacerOpts = Object.assign(replacerOpts, replaceSets[process.env.NODE_ENV]);
27
- }else{
28
- replacerOpts = Object.assign(replacerOpts, replaceSets.development);
31
+ if (["production", "stage", "develpment"].indexOf(process.env.NODE_ENV) > -1) {
32
+ replacerOpts = Object.assign(
33
+ replacerOpts,
34
+ replaceSets[process.env.NODE_ENV]
35
+ );
36
+ } else {
37
+ replacerOpts = Object.assign(replacerOpts, replaceSets.development);
29
38
  }
30
39
 
31
40
  export default {
32
- input: 'src/client/app.js',
33
- output: {
34
- file:'build/client/core.js',
35
- format: 'iife'
36
- },
37
- name: 'Project',
38
- sourceMap: false && (process.env.NODE_ENV === 'production' ? false : 'inline'),
39
- plugins: [
40
- postcss({
41
- plugins: [
42
- envReplace({
43
- environment: process.env.NODE_ENV || 'development',
44
- replacements: {
45
- BASE_URL: {
46
- stage: baseHost,
47
- production: baseHost,
48
- development:baseHost
49
- }
50
- }
41
+ input: "src/client/app.js",
42
+ output: {
43
+ file: "build/client/core.js",
44
+ format: "iife",
45
+ },
46
+ name: "Project",
47
+ sourceMap:
48
+ false && (process.env.NODE_ENV === "production" ? false : "inline"),
49
+ plugins: [
50
+ postcss({
51
+ plugins: [
52
+ envReplace({
53
+ environment: process.env.NODE_ENV || "development",
54
+ replacements: {
55
+ BASE_URL: {
56
+ stage: baseHost,
57
+ production: baseHost,
58
+ development: baseHost,
59
+ },
60
+ },
61
+ }),
62
+ simplevars(),
63
+ nested(),
64
+ cssnext({
65
+ warnForDuplicates: false,
66
+ }),
67
+ cssnano(),
68
+ ],
69
+ extensions: [".css"],
51
70
  }),
52
- simplevars(),
53
- nested(),
54
- cssnext({
55
- warnForDuplicates: false,
71
+ resolve({
72
+ jsnext: true,
73
+ main: true,
74
+ browser: true,
56
75
  }),
57
- cssnano(),
58
- ],
59
- extensions: ['.css'],
60
- }),
61
- resolve({
62
- jsnext: true,
63
- main: true,
64
- browser: true
65
- }),
66
- commonjs(),
67
- eslint({
68
- exclude: ['build/**', 'src/css/**'],
69
- rules:{"useless-escape": "off"}
70
-
71
- }),
72
- replace(replacerOpts),
73
- (process.env.NODE_ENV === 'production' && babel({
74
- exclude: ['build/**']
75
- })),
76
- (process.env.NODE_ENV === 'production' && uglify()),
77
- filesize()
78
- ]
76
+ commonjs(),
77
+ eslint({
78
+ exclude: ["build/**", "src/css/**"],
79
+ rules: { "useless-escape": "off" },
80
+ }),
81
+ replace(replacerOpts),
82
+ process.env.NODE_ENV === "production" &&
83
+ babel({
84
+ exclude: ["build/**"],
85
+ }),
86
+ process.env.NODE_ENV === "production" && uglify(),
87
+ filesize(),
88
+ ],
79
89
  };