alchemymvc 1.3.22 → 1.4.0-alpha.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 (155) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -3
  3. package/lib/app/behaviour/publishable_behaviour.js +5 -5
  4. package/lib/app/behaviour/revision_behaviour.js +96 -59
  5. package/lib/app/behaviour/sluggable_behaviour.js +14 -14
  6. package/lib/app/conduit/electron_conduit.js +9 -9
  7. package/lib/app/conduit/http_conduit.js +13 -13
  8. package/lib/app/conduit/loopback_conduit.js +15 -15
  9. package/lib/app/conduit/socket_conduit.js +43 -43
  10. package/lib/app/config/routes.js +26 -0
  11. package/lib/app/controller/00-default_app_controller.js +21 -0
  12. package/lib/app/controller/alchemy_info_controller.js +12 -12
  13. package/lib/app/datasource/mongo_datasource.js +27 -18
  14. package/lib/app/element/00-default_app_element.js +19 -0
  15. package/lib/app/element/time_ago.js +5 -5
  16. package/lib/app/helper/00-default_app_helper.js +11 -0
  17. package/lib/app/helper/alchemy_helper.js +22 -22
  18. package/lib/app/helper/backed_map.js +1 -1
  19. package/lib/app/helper/breadcrumb.js +10 -10
  20. package/lib/app/helper/client_collection.js +3 -3
  21. package/lib/app/helper/cron.js +29 -29
  22. package/lib/app/helper/enum_values.js +6 -6
  23. package/lib/app/helper/pagination_helper.js +36 -36
  24. package/lib/app/helper/router_helper.js +35 -35
  25. package/lib/app/helper/socket_helper.js +57 -57
  26. package/lib/app/helper/syncable.js +62 -62
  27. package/lib/app/helper_component/paginate_component.js +9 -9
  28. package/lib/app/helper_controller/component.js +1 -1
  29. package/lib/app/helper_controller/conduit.js +31 -31
  30. package/lib/app/helper_controller/controller.js +54 -39
  31. package/lib/app/helper_datasource/00-nosql_datasource.js +624 -70
  32. package/lib/app/helper_datasource/05-fallback_datasource.js +10 -10
  33. package/lib/app/helper_datasource/idb_datasource.js +6 -6
  34. package/lib/app/helper_datasource/indexed_db.js +22 -22
  35. package/lib/app/helper_datasource/remote_datasource.js +5 -5
  36. package/lib/app/helper_error/http_error.js +4 -4
  37. package/lib/app/helper_error/model_error.js +2 -2
  38. package/lib/app/helper_error/validation_error.js +12 -12
  39. package/lib/app/helper_field/00-objectid_field.js +7 -7
  40. package/lib/app/helper_field/05-string_field.js +16 -12
  41. package/lib/app/helper_field/06-text_field.js +2 -4
  42. package/lib/app/helper_field/10-number_field.js +9 -12
  43. package/lib/app/helper_field/11-date_field.js +15 -15
  44. package/lib/app/helper_field/15-local_temporal_field.js +10 -10
  45. package/lib/app/helper_field/20-decimal_field.js +8 -9
  46. package/lib/app/helper_field/belongsto_field.js +1 -1
  47. package/lib/app/helper_field/big_int_field.js +8 -8
  48. package/lib/app/helper_field/boolean_field.js +9 -11
  49. package/lib/app/helper_field/datetime_field.js +3 -3
  50. package/lib/app/helper_field/enum_field.js +13 -8
  51. package/lib/app/helper_field/fixed_decimal_field.js +6 -7
  52. package/lib/app/helper_field/geopoint_field.js +9 -10
  53. package/lib/app/helper_field/habtm_field.js +3 -3
  54. package/lib/app/helper_field/hasoneparent_field.js +1 -1
  55. package/lib/app/helper_field/html_field.js +2 -4
  56. package/lib/app/helper_field/integer_field.js +8 -11
  57. package/lib/app/helper_field/local_date_field.js +5 -5
  58. package/lib/app/helper_field/local_date_time_field.js +5 -5
  59. package/lib/app/helper_field/local_time_field.js +5 -5
  60. package/lib/app/helper_field/mixed_field.js +5 -5
  61. package/lib/app/helper_field/object_field.js +6 -6
  62. package/lib/app/helper_field/password_field.js +3 -3
  63. package/lib/app/helper_field/regexp_field.js +7 -9
  64. package/lib/app/helper_field/schema_field.js +91 -88
  65. package/lib/app/helper_field/settings_field.js +92 -0
  66. package/lib/app/helper_field/time_field.js +6 -6
  67. package/lib/app/helper_field/url_field.js +2 -4
  68. package/lib/app/helper_model/00-base_criteria.js +662 -0
  69. package/lib/app/helper_model/05-criteria_expressions.js +605 -0
  70. package/lib/app/helper_model/10-model_criteria.js +1182 -0
  71. package/lib/app/helper_model/data_provider.js +2 -2
  72. package/lib/app/helper_model/document.js +103 -92
  73. package/lib/app/helper_model/document_list.js +14 -14
  74. package/lib/app/helper_model/field_config.js +11 -11
  75. package/lib/app/helper_model/field_set.js +17 -17
  76. package/lib/app/helper_model/model.js +201 -123
  77. package/lib/app/helper_model/remote_data_provider.js +2 -2
  78. package/lib/app/helper_validator/00_validator.js +16 -16
  79. package/lib/app/helper_validator/not_empty_validator.js +9 -9
  80. package/lib/app/model/00-default_app_model.js +18 -0
  81. package/lib/app/model/05-system_model.js +27 -0
  82. package/lib/app/model/{alchemy_migration_model.js → system_migration_model.js} +4 -4
  83. package/lib/app/model/system_setting_model.js +154 -0
  84. package/lib/app/model/{alchemy_task_history_model.js → system_task_history_model.js} +7 -7
  85. package/lib/app/model/{alchemy_task_model.js → system_task_model.js} +11 -11
  86. package/lib/bootstrap.js +22 -312
  87. package/lib/class/accumulator.js +5 -5
  88. package/lib/class/behaviour.js +5 -5
  89. package/lib/class/component.js +3 -3
  90. package/lib/class/conduit.js +152 -150
  91. package/lib/class/controller.js +42 -42
  92. package/lib/class/datasource.js +74 -79
  93. package/lib/class/document.js +74 -95
  94. package/lib/class/document_list.js +5 -5
  95. package/lib/class/element.js +17 -17
  96. package/lib/class/error.js +3 -3
  97. package/lib/class/field.js +169 -91
  98. package/lib/class/field_value.js +6 -6
  99. package/lib/class/helper.js +3 -3
  100. package/lib/class/inode.js +17 -17
  101. package/lib/class/inode_dir.js +12 -12
  102. package/lib/class/inode_file.js +26 -26
  103. package/lib/class/inode_list.js +4 -4
  104. package/lib/class/migration.js +4 -4
  105. package/lib/class/model.js +146 -165
  106. package/lib/class/path_definition.js +22 -22
  107. package/lib/class/path_evaluator.js +5 -5
  108. package/lib/class/path_param_definition.js +7 -7
  109. package/lib/class/plugin.js +312 -0
  110. package/lib/class/postponement.js +29 -29
  111. package/lib/class/reciprocal.js +8 -8
  112. package/lib/class/route.js +33 -33
  113. package/lib/class/router.js +73 -73
  114. package/lib/class/schema.js +21 -21
  115. package/lib/class/schema_client.js +105 -82
  116. package/lib/class/session.js +63 -29
  117. package/lib/class/session_scene.js +4 -4
  118. package/lib/class/sitemap.js +16 -16
  119. package/lib/class/task.js +39 -39
  120. package/lib/class/task_service.js +43 -47
  121. package/lib/{init → core}/alchemy.js +411 -373
  122. package/lib/{init/functions.js → core/alchemy_functions.js} +113 -91
  123. package/lib/core/alchemy_load_functions.js +715 -0
  124. package/lib/core/base.js +50 -62
  125. package/lib/core/client_alchemy.js +144 -152
  126. package/lib/core/client_base.js +27 -50
  127. package/lib/core/discovery.js +16 -18
  128. package/lib/core/middleware.js +54 -43
  129. package/lib/core/{routing.js → prefix.js} +14 -16
  130. package/lib/core/setting.js +1684 -0
  131. package/lib/core/stage.js +758 -0
  132. package/lib/scripts/create_constants.js +119 -0
  133. package/lib/{init/languages.js → scripts/create_languages.js} +5 -5
  134. package/lib/scripts/create_settings.js +449 -0
  135. package/lib/scripts/create_shared_constants.js +95 -0
  136. package/lib/scripts/create_stages.js +55 -0
  137. package/lib/scripts/init_alchemy.js +51 -0
  138. package/lib/{init/requirements.js → scripts/preload_modules.js} +15 -2
  139. package/lib/scripts/setup_devwatch.js +238 -0
  140. package/lib/stages/00-load_core.js +342 -0
  141. package/lib/stages/05-load_app.js +57 -0
  142. package/lib/stages/10-datasource.js +61 -0
  143. package/lib/stages/15-tasks.js +27 -0
  144. package/lib/stages/20-settings.js +68 -0
  145. package/lib/stages/50-routes.js +218 -0
  146. package/lib/stages/90-server.js +347 -0
  147. package/package.json +5 -7
  148. package/lib/app/helper_model/criteria.js +0 -2294
  149. package/lib/app/helper_model/db_query.js +0 -1488
  150. package/lib/app/routes.js +0 -11
  151. package/lib/core/socket.js +0 -171
  152. package/lib/init/constants.js +0 -158
  153. package/lib/init/devwatch.js +0 -238
  154. package/lib/init/load_functions.js +0 -979
  155. package/lib/stages.js +0 -515
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Fallback Datasource
3
3
  *
4
- * @author Jelle De Loecker <jelle@develry.be>
4
+ * @author Jelle De Loecker <jelle@elevenways.be>
5
5
  * @since 1.1.0
6
6
  * @version 1.1.0
7
7
  */
@@ -13,7 +13,7 @@ var Fallback = Function.inherits('Alchemy.Datasource', function Fallback(name, o
13
13
  /**
14
14
  * Indicate this is part of the cache
15
15
  *
16
- * @author Jelle De Loecker <jelle@develry.be>
16
+ * @author Jelle De Loecker <jelle@elevenways.be>
17
17
  * @since 1.1.0
18
18
  * @version 1.1.0
19
19
  */
@@ -22,7 +22,7 @@ Fallback.setProperty('has_offline_cache', true);
22
22
  /**
23
23
  * Create a connection to the 2 databases
24
24
  *
25
- * @author Jelle De Loecker <jelle@develry.be>
25
+ * @author Jelle De Loecker <jelle@elevenways.be>
26
26
  * @since 1.1.0
27
27
  * @version 1.1.0
28
28
  */
@@ -58,7 +58,7 @@ Fallback.decorateMethod(Blast.Decorators.memoize({ignore_arguments: true}), func
58
58
  /**
59
59
  * Store the data in the local cache
60
60
  *
61
- * @author Jelle De Loecker <jelle@develry.be>
61
+ * @author Jelle De Loecker <jelle@elevenways.be>
62
62
  * @since 1.1.0
63
63
  * @version 1.1.0
64
64
  *
@@ -143,7 +143,7 @@ Fallback.setMethod(function storeInUpperDatasource(model, data, options) {
143
143
  /**
144
144
  * Query the databases
145
145
  *
146
- * @author Jelle De Loecker <jelle@develry.be>
146
+ * @author Jelle De Loecker <jelle@elevenways.be>
147
147
  * @since 1.1.0
148
148
  * @version 1.1.0
149
149
  */
@@ -207,7 +207,7 @@ Fallback.setMethod(function read(model, criteria, callback) {
207
207
  /**
208
208
  * Get data that needs to be synced
209
209
  *
210
- * @author Jelle De Loecker <jelle@develry.be>
210
+ * @author Jelle De Loecker <jelle@elevenways.be>
211
211
  * @since 1.1.0
212
212
  * @version 1.1.0
213
213
  *
@@ -238,7 +238,7 @@ Fallback.setMethod(function getRecordsToSync(model) {
238
238
  /**
239
239
  * Insert new data into the database
240
240
  *
241
- * @author Jelle De Loecker <jelle@develry.be>
241
+ * @author Jelle De Loecker <jelle@elevenways.be>
242
242
  * @since 1.1.0
243
243
  * @version 1.1.0
244
244
  *
@@ -256,7 +256,7 @@ Fallback.setMethod(function create(model, data, options, callback) {
256
256
  /**
257
257
  * Update new data into the database
258
258
  *
259
- * @author Jelle De Loecker <jelle@develry.be>
259
+ * @author Jelle De Loecker <jelle@elevenways.be>
260
260
  * @since 1.1.0
261
261
  * @version 1.1.0
262
262
  *
@@ -274,7 +274,7 @@ Fallback.setMethod(function update(model, data, options, callback) {
274
274
  /**
275
275
  * Insert new data into the database
276
276
  *
277
- * @author Jelle De Loecker <jelle@develry.be>
277
+ * @author Jelle De Loecker <jelle@elevenways.be>
278
278
  * @since 1.1.0
279
279
  * @version 1.1.0
280
280
  *
@@ -371,7 +371,7 @@ Fallback.setMethod(function createOrUpdate(method, model, data, options, callbac
371
371
  /**
372
372
  * Ensure an index in the database
373
373
  *
374
- * @author Jelle De Loecker <jelle@develry.be>
374
+ * @author Jelle De Loecker <jelle@elevenways.be>
375
375
  * @since 1.1.0
376
376
  * @version 1.1.0
377
377
  */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * IndexedDb Datasource
3
3
  *
4
- * @author Jelle De Loecker <jelle@develry.be>
4
+ * @author Jelle De Loecker <jelle@elevenways.be>
5
5
  * @since 1.1.0
6
6
  * @version 1.1.0
7
7
  */
@@ -12,7 +12,7 @@ var Idb = Function.inherits('Alchemy.Datasource.Nosql', function IndexedDb(name,
12
12
  /**
13
13
  * Get a connection to the database
14
14
  *
15
- * @author Jelle De Loecker <jelle@develry.be>
15
+ * @author Jelle De Loecker <jelle@elevenways.be>
16
16
  * @since 1.1.0
17
17
  * @version 1.1.0
18
18
  */
@@ -52,7 +52,7 @@ Idb.decorateMethod(Blast.Decorators.memoize(), function collection(name) {
52
52
  /**
53
53
  * Create an item in the datasource
54
54
  *
55
- * @author Jelle De Loecker <jelle@develry.be>
55
+ * @author Jelle De Loecker <jelle@elevenways.be>
56
56
  * @since 1.1.0
57
57
  * @version 1.1.0
58
58
  */
@@ -80,7 +80,7 @@ Idb.setMethod(function _create(model, data, options, callback) {
80
80
  /**
81
81
  * Update an item in the datasource
82
82
  *
83
- * @author Jelle De Loecker <jelle@develry.be>
83
+ * @author Jelle De Loecker <jelle@elevenways.be>
84
84
  * @since 1.1.0
85
85
  * @version 1.1.0
86
86
  */
@@ -108,7 +108,7 @@ Idb.setMethod(function _update(model, data, options, callback) {
108
108
  /**
109
109
  * Query the database
110
110
  *
111
- * @author Jelle De Loecker <jelle@develry.be>
111
+ * @author Jelle De Loecker <jelle@elevenways.be>
112
112
  * @since 1.1.0
113
113
  * @version 1.1.0
114
114
  */
@@ -137,7 +137,7 @@ Idb.setMethod(function _read(model, criteria, callback) {
137
137
  /**
138
138
  * Ensure an index in the database
139
139
  *
140
- * @author Jelle De Loecker <jelle@develry.be>
140
+ * @author Jelle De Loecker <jelle@elevenways.be>
141
141
  * @since 1.1.0
142
142
  * @version 1.1.0
143
143
  */
@@ -10,12 +10,12 @@ indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB ||
10
10
  /**
11
11
  * The IndexedDb class
12
12
  *
13
- * @author Jelle De Loecker <jelle@develry.be>
13
+ * @author Jelle De Loecker <jelle@elevenways.be>
14
14
  * @since 1.0.0
15
15
  * @version 1.1.0
16
16
  *
17
- * @param {String} name
18
- * @param {Number} version
17
+ * @param {string} name
18
+ * @param {number} version
19
19
  */
20
20
  var IndexedDb = Blast.Bound.Function.inherits('Informer', function IndexedDb(name) {
21
21
 
@@ -35,7 +35,7 @@ var IndexedDb = Blast.Bound.Function.inherits('Informer', function IndexedDb(nam
35
35
  /**
36
36
  * Symbol to use for seeing when something is from cache
37
37
  *
38
- * @author Jelle De Loecker <jelle@develry.be>
38
+ * @author Jelle De Loecker <jelle@elevenways.be>
39
39
  * @since 1.0.6
40
40
  * @version 1.0.6
41
41
  */
@@ -44,7 +44,7 @@ IndexedDb.setStatic('from_cache_symbol', Symbol('from_cache'));
44
44
  /**
45
45
  * Initialize the connection
46
46
  *
47
- * @author Jelle De Loecker <jelle@develry.be>
47
+ * @author Jelle De Loecker <jelle@elevenways.be>
48
48
  * @since 1.0.0
49
49
  * @version 1.1.0
50
50
  */
@@ -96,11 +96,11 @@ IndexedDb.setMethod(function init(version) {
96
96
  * Only runs after the first `ready` event,
97
97
  * because we need the database's version
98
98
  *
99
- * @author Jelle De Loecker <jelle@develry.be>
99
+ * @author Jelle De Loecker <jelle@elevenways.be>
100
100
  * @since 1.0.0
101
101
  * @version 1.0.6
102
102
  *
103
- * @param {String} name
103
+ * @param {string} name
104
104
  * @param {Function} callback
105
105
  */
106
106
  IndexedDb.setAfterMethod('ready', function modifyObjectStore(name, callback) {
@@ -146,7 +146,7 @@ IndexedDb.setAfterMethod('ready', function modifyObjectStore(name, callback) {
146
146
  /**
147
147
  * See if this store exists
148
148
  *
149
- * @author Jelle De Loecker <jelle@develry.be>
149
+ * @author Jelle De Loecker <jelle@elevenways.be>
150
150
  * @since 1.0.0
151
151
  * @version 1.0.0
152
152
  */
@@ -162,7 +162,7 @@ IndexedDb.setAfterMethod('ready', function hasStore(name, callback) {
162
162
  /**
163
163
  * See if this store has an index exists
164
164
  *
165
- * @author Jelle De Loecker <jelle@develry.be>
165
+ * @author Jelle De Loecker <jelle@elevenways.be>
166
166
  * @since 1.1.0
167
167
  * @version 1.1.0
168
168
  */
@@ -188,7 +188,7 @@ IndexedDb.setAfterMethod('ready', function hasIndex(collection_name, index_name,
188
188
  /**
189
189
  * Create the given index
190
190
  *
191
- * @author Jelle De Loecker <jelle@develry.be>
191
+ * @author Jelle De Loecker <jelle@elevenways.be>
192
192
  * @since 1.1.0
193
193
  * @version 1.1.0
194
194
  */
@@ -222,11 +222,11 @@ IndexedDb.setAfterMethod('ready', function createIndex(collection_name, index_na
222
222
  /**
223
223
  * Create something in a collection
224
224
  *
225
- * @author Jelle De Loecker <jelle@develry.be>
225
+ * @author Jelle De Loecker <jelle@elevenways.be>
226
226
  * @since 1.0.0
227
227
  * @version 1.1.0
228
228
  *
229
- * @param {String} collection The name of the collection
229
+ * @param {string} collection The name of the collection
230
230
  * @param {Object} object
231
231
  * @param {Function} callback
232
232
  */
@@ -249,11 +249,11 @@ IndexedDb.setAfterMethod('ready', function create(collection, object, callback)
249
249
  /**
250
250
  * Create or update something in a collection
251
251
  *
252
- * @author Jelle De Loecker <jelle@develry.be>
252
+ * @author Jelle De Loecker <jelle@elevenways.be>
253
253
  * @since 1.0.0
254
254
  * @version 1.1.0
255
255
  *
256
- * @param {String} collection The name of the collection
256
+ * @param {string} collection The name of the collection
257
257
  * @param {Object} object
258
258
  * @param {Function} callback
259
259
  */
@@ -276,11 +276,11 @@ IndexedDb.setAfterMethod('ready', function put(collection, object, callback) {
276
276
  /**
277
277
  * Read from the collection
278
278
  *
279
- * @author Jelle De Loecker <jelle@develry.be>
279
+ * @author Jelle De Loecker <jelle@elevenways.be>
280
280
  * @since 1.0.0
281
281
  * @version 1.1.0
282
282
  *
283
- * @param {String} collection The name of the collection
283
+ * @param {string} collection The name of the collection
284
284
  * @param {Object} query Query conditions (NOT DbQuery instance)
285
285
  * @param {Object} options
286
286
  * @param {Function} callback
@@ -330,7 +330,7 @@ IndexedDb.setAfterMethod('ready', function read(collection, query, options, call
330
330
  /**
331
331
  * IDB On success read function
332
332
  *
333
- * @author Jelle De Loecker <jelle@develry.be>
333
+ * @author Jelle De Loecker <jelle@elevenways.be>
334
334
  * @since 1.1.0
335
335
  * @version 1.1.0
336
336
  */
@@ -394,12 +394,12 @@ function idbOnSuccess(event, config) {
394
394
  /**
395
395
  * Create a transaction
396
396
  *
397
- * @author Jelle De Loecker <jelle@develry.be>
397
+ * @author Jelle De Loecker <jelle@elevenways.be>
398
398
  * @since 1.0.0
399
399
  * @version 1.0.0
400
400
  *
401
401
  * @param {Array} stores
402
- * @param {String} type
402
+ * @param {string} type
403
403
  *
404
404
  * @return {}
405
405
  */
@@ -415,12 +415,12 @@ IndexedDb.setMethod(function createTransaction(stores, type) {
415
415
  /**
416
416
  * Handle a transaction
417
417
  *
418
- * @author Jelle De Loecker <jelle@develry.be>
418
+ * @author Jelle De Loecker <jelle@elevenways.be>
419
419
  * @since 1.0.0
420
420
  * @version 1.0.0
421
421
  *
422
- * @param {String} collection The name of the collection
423
- * @param {String} method The name of the method to apply
422
+ * @param {string} collection The name of the collection
423
+ * @param {string} method The name of the method to apply
424
424
  * @param {Array} args The arguments to pass to the method
425
425
  * @param {Function} callback
426
426
  */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Remote Datasource
3
3
  *
4
- * @author Jelle De Loecker <jelle@develry.be>
4
+ * @author Jelle De Loecker <jelle@elevenways.be>
5
5
  * @since 1.1.0
6
6
  * @version 1.1.0
7
7
  */
@@ -13,7 +13,7 @@ var Remote = Function.inherits('Alchemy.Datasource', function Remote(name, optio
13
13
  /**
14
14
  * Do a remote action
15
15
  *
16
- * @author Jelle De Loecker <jelle@develry.be>
16
+ * @author Jelle De Loecker <jelle@elevenways.be>
17
17
  * @since 1.1.0
18
18
  * @version 1.1.7
19
19
  */
@@ -102,7 +102,7 @@ Remote.setMethod(async function doServerCommand(action, model, data, callback) {
102
102
  /**
103
103
  * Query the remote database
104
104
  *
105
- * @author Jelle De Loecker <jelle@develry.be>
105
+ * @author Jelle De Loecker <jelle@elevenways.be>
106
106
  * @since 1.1.0
107
107
  * @version 1.1.0
108
108
  */
@@ -137,7 +137,7 @@ Remote.setMethod(function read(model, criteria, callback) {
137
137
  /**
138
138
  * Create something in the remote database
139
139
  *
140
- * @author Jelle De Loecker <jelle@develry.be>
140
+ * @author Jelle De Loecker <jelle@elevenways.be>
141
141
  * @since 1.1.0
142
142
  * @version 1.1.0
143
143
  */
@@ -168,7 +168,7 @@ Remote.setMethod(function create(model, data, options, callback) {
168
168
  /**
169
169
  * Update something in the remote database
170
170
  *
171
- * @author Jelle De Loecker <jelle@develry.be>
171
+ * @author Jelle De Loecker <jelle@elevenways.be>
172
172
  * @since 1.1.0
173
173
  * @version 1.1.0
174
174
  */
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @constructor
5
5
  *
6
- * @author Jelle De Loecker <jelle@elevenways.be>
6
+ * @author Jelle De Loecker <jelle@elevenways.be>
7
7
  * @since 1.1.0
8
8
  * @version 1.1.0
9
9
  */
@@ -15,7 +15,7 @@ const HTTP = Function.inherits('Alchemy.Error', function HTTP(status, message) {
15
15
  /**
16
16
  * Get the properties to serialize
17
17
  *
18
- * @author Jelle De Loecker <jelle@develry.be>
18
+ * @author Jelle De Loecker <jelle@elevenways.be>
19
19
  * @since 0.7.1
20
20
  * @version 0.7.1
21
21
  *
@@ -28,11 +28,11 @@ HTTP.setProperty(function properties_to_serialize() {
28
28
  /**
29
29
  * Return string interpretation of this error
30
30
  *
31
- * @author Jelle De Loecker <jelle@elevenways.be>
31
+ * @author Jelle De Loecker <jelle@elevenways.be>
32
32
  * @since 1.1.0
33
33
  * @version 1.1.0
34
34
  *
35
- * @return {String}
35
+ * @return {string}
36
36
  */
37
37
  HTTP.setMethod(function toString() {
38
38
  let result = this.name + ' Error';
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * The base model error
3
3
  *
4
- * @author Jelle De Loecker <jelle@elevenways.be>
4
+ * @author Jelle De Loecker <jelle@elevenways.be>
5
5
  * @since 1.1.0
6
6
  * @version 1.1.0
7
7
  *
8
- * @param {String} message
8
+ * @param {string} message
9
9
  */
10
10
  const ModelError = Function.inherits('Alchemy.Error', 'Alchemy.Error.Model', function Model(message) {
11
11
  Model.super.call(this, message);
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Parent class of all errors regarding Validation
3
3
  *
4
- * @author Jelle De Loecker <jelle@elevenways.be>
4
+ * @author Jelle De Loecker <jelle@elevenways.be>
5
5
  * @since 1.1.0
6
6
  * @version 1.1.0
7
7
  */
@@ -12,7 +12,7 @@ const ValidationError = Function.inherits('Alchemy.Error.Model', 'Alchemy.Error.
12
12
  /**
13
13
  * Parent class of all validation violations
14
14
  *
15
- * @author Jelle De Loecker <jelle@elevenways.be>
15
+ * @author Jelle De Loecker <jelle@elevenways.be>
16
16
  * @since 1.1.0
17
17
  * @version 1.1.0
18
18
  */
@@ -21,7 +21,7 @@ const Violation = Function.inherits('Alchemy.Error.Validation', function Violati
21
21
  /**
22
22
  * Validation Violations do not need a stack
23
23
  *
24
- * @author Jelle De Loecker <jelle@elevenways.be>
24
+ * @author Jelle De Loecker <jelle@elevenways.be>
25
25
  * @since 1.1.0
26
26
  * @version 1.1.0
27
27
  */
@@ -30,7 +30,7 @@ Violation.setProperty('capture_stack', false);
30
30
  /**
31
31
  * A grouping of violations
32
32
  *
33
- * @author Jelle De Loecker <jelle@elevenways.be>
33
+ * @author Jelle De Loecker <jelle@elevenways.be>
34
34
  * @since 1.1.0
35
35
  * @version 1.1.0
36
36
  */
@@ -41,7 +41,7 @@ const Violations = Function.inherits('Alchemy.Error.Validation.Violation', funct
41
41
  /**
42
42
  * Get the amount of violations
43
43
  *
44
- * @author Jelle De Loecker <jelle@elevenways.be>
44
+ * @author Jelle De Loecker <jelle@elevenways.be>
45
45
  * @since 1.1.0
46
46
  * @version 1.1.0
47
47
  */
@@ -52,7 +52,7 @@ Violations.setProperty(function length() {
52
52
  /**
53
53
  * Set the properties to serialize for this error
54
54
  *
55
- * @author Jelle De Loecker <jelle@elevenways.be>
55
+ * @author Jelle De Loecker <jelle@elevenways.be>
56
56
  * @since 1.1.0
57
57
  * @version 1.1.0
58
58
  */
@@ -61,7 +61,7 @@ Violations.setProperty('properties_to_serialize', ['violations']);
61
61
  /**
62
62
  * Iterator method
63
63
  *
64
- * @author Jelle De Loecker <jelle@elevenways.be>
64
+ * @author Jelle De Loecker <jelle@elevenways.be>
65
65
  * @since 1.1.0
66
66
  * @version 1.1.0
67
67
  */
@@ -77,7 +77,7 @@ Violations.setMethod(Symbol.iterator, function* iterate() {
77
77
  /**
78
78
  * Add more violations
79
79
  *
80
- * @author Jelle De Loecker <jelle@elevenways.be>
80
+ * @author Jelle De Loecker <jelle@elevenways.be>
81
81
  * @since 1.1.0
82
82
  * @version 1.1.0
83
83
  *
@@ -101,11 +101,11 @@ Violations.setMethod(function add(violation) {
101
101
  /**
102
102
  * Return a string representation of all violations
103
103
  *
104
- * @author Jelle De Loecker <jelle@elevenways.be>
104
+ * @author Jelle De Loecker <jelle@elevenways.be>
105
105
  * @since 1.1.0
106
106
  * @version 1.1.0
107
107
  *
108
- * @return {String}
108
+ * @return {string}
109
109
  */
110
110
  Violations.setMethod(function toString() {
111
111
 
@@ -122,7 +122,7 @@ Violations.setMethod(function toString() {
122
122
  /**
123
123
  * Violation of a specific field
124
124
  *
125
- * @author Jelle De Loecker <jelle@elevenways.be>
125
+ * @author Jelle De Loecker <jelle@elevenways.be>
126
126
  * @since 1.1.0
127
127
  * @version 1.1.0
128
128
  */
@@ -149,7 +149,7 @@ const FieldError = Function.inherits('Alchemy.Error.Validation.Violation', funct
149
149
  /**
150
150
  * Set the properties to serialize for this error
151
151
  *
152
- * @author Jelle De Loecker <jelle@elevenways.be>
152
+ * @author Jelle De Loecker <jelle@elevenways.be>
153
153
  * @since 1.1.0
154
154
  * @version 1.1.4
155
155
  */
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @constructor
5
5
  *
6
- * @author Jelle De Loecker <jelle@develry.be>
6
+ * @author Jelle De Loecker <jelle@elevenways.be>
7
7
  * @since 0.2.0
8
8
  * @version 1.1.0
9
9
  */
@@ -14,7 +14,7 @@ var ObjectId = Function.inherits('Alchemy.Field', function ObjectId(schema, name
14
14
  /**
15
15
  * Set the datatype name
16
16
  *
17
- * @author Jelle De Loecker <jelle@develry.be>
17
+ * @author Jelle De Loecker <jelle@elevenways.be>
18
18
  * @since 0.2.0
19
19
  * @version 1.1.0
20
20
  */
@@ -23,7 +23,7 @@ ObjectId.setDatatype('objectid');
23
23
  /**
24
24
  * ObjectIDs are self-contained objects
25
25
  *
26
- * @author Jelle De Loecker <jelle@develry.be>
26
+ * @author Jelle De Loecker <jelle@elevenways.be>
27
27
  * @since 1.1.0
28
28
  * @version 1.1.0
29
29
  */
@@ -32,17 +32,17 @@ ObjectId.setSelfContained(true);
32
32
  /**
33
33
  * Cast the given value to this field's type
34
34
  *
35
- * @author Jelle De Loecker <jelle@develry.be>
35
+ * @author Jelle De Loecker <jelle@elevenways.be>
36
36
  * @since 0.2.0
37
37
  * @version 0.2.0
38
38
  *
39
- * @param {Mixed} value
39
+ * @param {*} value
40
40
  *
41
41
  * @return {ObjectId}
42
42
  */
43
- ObjectId.setMethod(function cast(value, to_datasource) {
43
+ ObjectId.setCastFunction(function cast(value, to_datasource) {
44
44
 
45
- var result,
45
+ let result,
46
46
  ds;
47
47
 
48
48
  if (to_datasource && (ds = this.datasource)) {
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @constructor
5
5
  *
6
- * @author Jelle De Loecker <jelle@develry.be>
6
+ * @author Jelle De Loecker <jelle@elevenways.be>
7
7
  * @since 0.2.0
8
8
  * @version 1.1.0
9
9
  */
@@ -12,7 +12,7 @@ var StringField = Function.inherits('Alchemy.Field', 'String');
12
12
  /**
13
13
  * Set the datatype name
14
14
  *
15
- * @author Jelle De Loecker <jelle@develry.be>
15
+ * @author Jelle De Loecker <jelle@elevenways.be>
16
16
  * @since 0.2.0
17
17
  * @version 1.1.0
18
18
  */
@@ -21,17 +21,21 @@ StringField.setDatatype('string');
21
21
  /**
22
22
  * Cast the given value to this field's type for search in a db
23
23
  *
24
- * @author Jelle De Loecker <jelle@develry.be>
24
+ * @author Jelle De Loecker <jelle@elevenways.be>
25
25
  * @since 1.1.7
26
- * @version 1.1.7
26
+ * @version 1.4.0
27
27
  *
28
- * @param {Mixed} value
28
+ * @param {*} value
29
29
  * @param {Array} field_paths The path to the field
30
30
  *
31
- * @return {Mixed}
31
+ * @return {*}
32
32
  */
33
33
  StringField.setMethod(function _castCondition(value, field_paths) {
34
34
 
35
+ if (value == null) {
36
+ return value;
37
+ }
38
+
35
39
  if (typeof value == 'object' && RegExp.isRegExp(value)) {
36
40
  return value;
37
41
  }
@@ -42,18 +46,18 @@ StringField.setMethod(function _castCondition(value, field_paths) {
42
46
  /**
43
47
  * Cast the given value to this field's type
44
48
  *
45
- * @author Jelle De Loecker <jelle@develry.be>
49
+ * @author Jelle De Loecker <jelle@elevenways.be>
46
50
  * @since 0.2.0
47
- * @version 1.1.0
51
+ * @version 1.4.0
48
52
  *
49
- * @param {Mixed} value
53
+ * @param {*} value
50
54
  *
51
- * @return {String}
55
+ * @return {string}
52
56
  */
53
- StringField.setMethod(function cast(value) {
57
+ StringField.setCastFunction(function castToString(value) {
54
58
 
55
59
  if (value == null) {
56
- return value;
60
+ return '';
57
61
  }
58
62
 
59
63
  if (typeof value == 'object') {
@@ -3,10 +3,8 @@
3
3
  *
4
4
  * @constructor
5
5
  *
6
- * @author Jelle De Loecker <jelle@develry.be>
6
+ * @author Jelle De Loecker <jelle@elevenways.be>
7
7
  * @since 0.2.0
8
8
  * @version 1.1.0
9
9
  */
10
- var Text = Function.inherits('Alchemy.Field.String', function Text(schema, name, options) {
11
- Text.super.call(this, schema, name, options);
12
- });
10
+ const Text = Function.inherits('Alchemy.Field.String', 'Text');
@@ -3,18 +3,16 @@
3
3
  *
4
4
  * @constructor
5
5
  *
6
- * @author Jelle De Loecker <jelle@develry.be>
6
+ * @author Jelle De Loecker <jelle@elevenways.be>
7
7
  * @since 0.2.0
8
8
  * @version 1.1.0
9
9
  */
10
- var NumberField = Function.inherits('Alchemy.Field', function Number(schema, name, options) {
11
- Number.super.call(this, schema, name, options);
12
- });
10
+ const NumberField = Function.inherits('Alchemy.Field', 'Number');
13
11
 
14
12
  /**
15
13
  * Set the datatype name
16
14
  *
17
- * @author Jelle De Loecker <jelle@develry.be>
15
+ * @author Jelle De Loecker <jelle@elevenways.be>
18
16
  * @since 0.2.0
19
17
  * @version 1.1.0
20
18
  */
@@ -23,19 +21,18 @@ NumberField.setDatatype('number');
23
21
  /**
24
22
  * Cast the given value to this field's type
25
23
  *
26
- * @author Jelle De Loecker <jelle@develry.be>
24
+ * @author Jelle De Loecker <jelle@elevenways.be>
27
25
  * @since 0.2.0
28
- * @version 0.4.1
26
+ * @version 1.4.0
29
27
  *
30
- * @param {Mixed} value
28
+ * @param {*} value
31
29
  *
32
- * @return {Number}
30
+ * @return {number}
33
31
  */
34
- NumberField.setMethod(function cast(value) {
32
+ NumberField.setCastFunction(function cast(value) {
35
33
 
36
- // Allow null
37
34
  if (value == null) {
38
- return value;
35
+ return 0;
39
36
  }
40
37
 
41
38
  return Number(value);