not-node 5.0.22 → 5.1.2

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 (126) hide show
  1. package/.eslintrc.json +1 -1
  2. package/bin/not-deploy.js +52 -0
  3. package/index.js +21 -19
  4. package/package.json +1 -1
  5. package/src/app.js +61 -58
  6. package/src/auth/abstract.js +17 -19
  7. package/src/auth/const.js +8 -12
  8. package/src/auth/fields.js +143 -124
  9. package/src/auth/index.js +14 -14
  10. package/src/auth/roles.js +64 -63
  11. package/src/auth/routes.js +89 -54
  12. package/src/auth/rules.js +63 -63
  13. package/src/auth/session.js +60 -62
  14. package/src/bootstrap/form.js +13 -13
  15. package/src/bootstrap/logic.js +45 -41
  16. package/src/bootstrap/model.js +14 -17
  17. package/src/bootstrap/route.js +132 -53
  18. package/src/common.js +86 -79
  19. package/src/core/fields/ID.js +6 -6
  20. package/src/core/fields/__closed.js +3 -3
  21. package/src/core/fields/__latest.js +3 -3
  22. package/src/core/fields/__version.js +3 -3
  23. package/src/core/fields/__versions.js +3 -3
  24. package/src/core/fields/_id.js +6 -6
  25. package/src/core/fields/active.js +9 -9
  26. package/src/core/fields/codeName.js +9 -9
  27. package/src/core/fields/createdAt.js +17 -17
  28. package/src/core/fields/default.js +9 -9
  29. package/src/core/fields/description.js +11 -11
  30. package/src/core/fields/email.js +9 -9
  31. package/src/core/fields/enabled.js +9 -9
  32. package/src/core/fields/expiredAt.js +16 -16
  33. package/src/core/fields/height.js +11 -11
  34. package/src/core/fields/ip.js +10 -10
  35. package/src/core/fields/objectId.js +10 -10
  36. package/src/core/fields/owner.js +13 -13
  37. package/src/core/fields/ownerModel.js +11 -11
  38. package/src/core/fields/price.js +11 -11
  39. package/src/core/fields/requiredObject.js +10 -10
  40. package/src/core/fields/session.js +10 -10
  41. package/src/core/fields/size.js +11 -11
  42. package/src/core/fields/telephone.js +9 -9
  43. package/src/core/fields/title.js +15 -15
  44. package/src/core/fields/updatedAt.js +17 -17
  45. package/src/core/fields/userId.js +11 -12
  46. package/src/core/fields/uuid.js +11 -11
  47. package/src/core/fields/validators/email.js +6 -4
  48. package/src/core/fields/validators/owner.js +6 -4
  49. package/src/core/fields/width.js +11 -11
  50. package/src/domain.js +435 -431
  51. package/src/env.js +23 -23
  52. package/src/error.js +20 -23
  53. package/src/exceptions/db.js +23 -0
  54. package/src/exceptions/http.js +43 -0
  55. package/src/fields/index.js +106 -111
  56. package/src/form/fabric.js +19 -24
  57. package/src/form/form.js +195 -186
  58. package/src/form/index.js +2 -2
  59. package/src/generic/index.js +2 -0
  60. package/src/generic/logic.js +595 -0
  61. package/src/generic/route.js +76 -0
  62. package/src/init/additional.js +7 -7
  63. package/src/init/app.js +75 -68
  64. package/src/init/bodyparser.js +14 -14
  65. package/src/init/compression.js +6 -7
  66. package/src/init/core.js +12 -12
  67. package/src/init/cors.js +22 -24
  68. package/src/init/db/index.js +41 -43
  69. package/src/init/db/ioredis.js +28 -20
  70. package/src/init/db/mongoose.js +42 -32
  71. package/src/init/db/redis.js +59 -48
  72. package/src/init/env.js +44 -36
  73. package/src/init/express.js +18 -21
  74. package/src/init/fileupload.js +8 -10
  75. package/src/init/http.js +65 -47
  76. package/src/init/index.js +141 -148
  77. package/src/init/informer.js +7 -9
  78. package/src/init/methodoverride.js +4 -6
  79. package/src/init/middleware.js +23 -26
  80. package/src/init/modules.js +4 -4
  81. package/src/init/monitoring.js +8 -8
  82. package/src/init/rateLimiter.js +53 -45
  83. package/src/init/routes.js +67 -69
  84. package/src/init/security.js +37 -33
  85. package/src/init/sequence.js +111 -107
  86. package/src/init/sequence.standart.js +54 -56
  87. package/src/init/sessions/index.js +21 -21
  88. package/src/init/sessions/mongoose.js +49 -36
  89. package/src/init/sessions/redis.js +28 -27
  90. package/src/init/static.js +53 -40
  91. package/src/init/template.js +17 -17
  92. package/src/lib.js +230 -200
  93. package/src/manifest/batchRunner.js +26 -25
  94. package/src/manifest/initializator/forms.js +24 -24
  95. package/src/manifest/initializator/index.js +8 -10
  96. package/src/manifest/initializator/manifests.js +45 -42
  97. package/src/manifest/initializator/models.js +37 -34
  98. package/src/manifest/manifest.filter.js +130 -97
  99. package/src/manifest/manifest.js +103 -77
  100. package/src/manifest/module.js +350 -360
  101. package/src/manifest/registrator/fields.js +90 -85
  102. package/src/manifest/registrator/forms.js +47 -47
  103. package/src/manifest/registrator/index.js +14 -16
  104. package/src/manifest/registrator/locales.js +17 -16
  105. package/src/manifest/registrator/logics.js +66 -64
  106. package/src/manifest/registrator/models.js +64 -62
  107. package/src/manifest/registrator/routes.js +171 -132
  108. package/src/manifest/registrator/routes.ws.js +109 -103
  109. package/src/manifest/route.js +216 -161
  110. package/src/model/buildValidator.js +53 -42
  111. package/src/model/default.js +304 -286
  112. package/src/model/enrich.js +69 -61
  113. package/src/model/increment.js +124 -137
  114. package/src/model/proto.js +179 -148
  115. package/src/model/routine.js +85 -76
  116. package/src/model/utils.js +33 -0
  117. package/src/model/versioning.js +148 -130
  118. package/src/obsolete.js +12 -8
  119. package/src/parser.js +29 -22
  120. package/src/repos.js +29 -31
  121. package/src/rollup.js +75 -65
  122. package/src/shell.helpers.js +28 -28
  123. package/static.js +31 -0
  124. package/src/generic/router.js +0 -16
  125. package/src/manifest/module.models.js +0 -0
  126. package/src/manifest/module.status.js +0 -0
@@ -1,147 +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 jsonCopy(a){
40
- return JSON.parse(JSON.stringify(a));
41
- }
42
-
43
- static isThisDocsDifferent(a, b) {
44
- a = ModelVersioning.stripTechData(a);
45
- b = ModelVersioning.stripTechData(b);
46
- const plainA = ModelVersioning.jsonCopy(a);
47
- const plainB = ModelVersioning.jsonCopy(b);
48
- const diffLog = diff(plainA, plainB);
49
- return (typeof diffLog !== 'undefined');
50
- }
51
-
52
- /**
53
- * Compares latest version in __versions list in data with data
54
- * @param {MongooseModel} thisModel model of data
55
- * @param {Object} data data to save
56
- * @return {boolean} if data differs from latest version
57
- */
58
- static async isNew(thisModel, data) {
59
- let latestId = ModelVersioning.getLatestVersionId(data);
60
- let previous = await thisModel.findById(latestId);
61
- if (typeof previous !== 'undefined' && previous !== null) {
62
- return ModelVersioning.isThisDocsDifferent(data, previous.toObject());
63
- } else {
64
- 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);
65
107
  }
66
- }
67
-
68
- /**
69
- * Saves current version to versions archive, updates current version versioning tags
70
- * @param {ObjectId} id current version _id (just saved version)
71
- * @param {Object} data data to save
72
- * @param {MongooseModel} thisModel model to use
73
- * @return {Promise<MongooseDocument>} current version with updated versioning tags
74
- */
75
- static async saveVersion(id, data, model){
76
- let preservedVersionNumber = ModelVersioning.extractVersionNumber(data),
77
- preservedVersionsList = [...data.__versions];//making copy
78
- let different = await ModelVersioning.isNew(model, data);
79
- if (different) {
80
- //it's not latest version, it's archived copy
81
- delete data.__latest;
82
- //saves to archive with preserved data
83
- let versionDoc = new model(data);
84
- versionDoc.__version = preservedVersionNumber;
85
- versionDoc.__versions = preservedVersionsList;
86
- await versionDoc.save();
87
- //updating history
88
- let originalDoc = await model.findById(id).exec();
89
- originalDoc.__version = preservedVersionNumber + 1;
90
- 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
+ );
91
131
  }
92
- throw new Error(ERR_SAME_OLD_DATA);
93
- }
94
-
95
- /**
96
- * Saves first version. Run AFTER doing .save() on document.
97
- * @param {ObjectId} id current version _id (just saved version)
98
- * @param {Object} data data to save
99
- * @param {MongooseModel} thisModel model to use
100
- * @return {Promise<MongooseDocument>} current version with updated versions tags
101
- */
102
- static async saveFirstVersion(id, data, thisModel){
103
- //it's not latest version, it's archived copy
104
- delete data.__latest;
105
- //saves to archive
106
- let versionDoc = new thisModel(data);
107
- await versionDoc.save();
108
- //retrieving original
109
- let originalDoc = await thisModel.findById(id).exec();
110
- //first version
111
- originalDoc.__version = 1;
112
- //adding to history
113
- return await ModelVersioning.addVersionToHistory(originalDoc, versionDoc);
114
- }
115
-
116
- /**
117
- * Save document
118
- * if document is new - creates document
119
- * if it's updated document - updates document and versioning history
120
- * @param {MongooseModel} doc document to save
121
- * @return {Promise<MongooseDocument>} current version with updated versions tags
122
- */
123
- static saveDiff(doc){
124
- let data = doc.toObject(),
125
- id = data._id;
126
- delete data._id;
127
- if (ModelVersioning.versionsHistoryExists(data)) {
128
- return ModelVersioning.saveVersion(id, data, this);
129
- } else {
130
- 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
+ }
131
149
  }
132
- }
133
-
134
- /**
135
- * Idea is that you first save or update your doc
136
- * then you run Doc.version(_id_of_just_saved_doc)
137
- * and it will create archived copy of current document,
138
- * add _id of copy to list of document.__versions
139
- * and increment __version number
140
- **/
141
- static version(id){
142
- return this.findById(id).exec().then(ModelVersioning.saveDiff.bind(this));
143
- }
144
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
+ }
145
163
  }
146
164
 
147
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
  };