Commit Graph

116 Commits

Author SHA1 Message Date
Dimitris 77c4cd7b01 Included models from include operations do not change defined `strict` model option (#1259)
* Fixes #1252

* Allowed setting of dynamic relation property

* Fixed tests to also consider other connectors
2017-03-20 19:48:57 -04:00
Sakib Hasan 3c7e398f6f Clean version of PR 1272 (#1273)
Able to filter out the properties given to a model instead
Of throwing an error
2017-03-20 18:10:01 -04:00
Raymond Feng 0c76bd21b9 Upgrade dependencies to remove npm install warnings 2017-01-17 09:45:51 -08:00
Tim De Pauw be1d71f626 Support {defaultFn: 'shortid'} 2016-09-22 16:07:34 -07:00
David Cheung 805db78e19 Strict mode now always return validationError
- Deprecation of strict:validate and strict:throw
- When strict mode is enabled, it will now always
return validation error (previous strict:validate)
2016-09-19 10:27:24 -04:00
Amir Jafarian 2830062259 Disable `strict` for a few files
*Disable `strict` for a few files to disappear warnings
2016-08-26 09:54:31 -04:00
Amir Jafarian aa6d28268b Auto-update by eslint --fix 2016-08-22 15:12:25 -04:00
Amir Jafarian 4ce5b5d3a0 Support for globalization 2016-07-28 15:20:18 -04:00
Amir Jafarian 2143502a9d Remove unused variables in model.js 2016-07-22 17:23:09 -04:00
gunjpan 8117b0403f Throw Error for property names with dots
Result of Compat Flags Clenup.
Throws an error for property names with dots, instead
of a deprecation warning.
2016-06-09 17:50:59 -04:00
Miroslav Bajtoš 27c6279d6c fix remaining eslint issues 2016-04-05 15:25:34 +02:00
Miroslav Bajtoš 39e04a1756 eslint --fix 2016-04-05 15:25:34 +02:00
Ryan Graham c467b43c38 Insert copyright headers 2016-04-04 18:14:03 -07:00
Jue Hou 0d9eebe3bb Prevent constructor to be property name 2016-02-02 11:51:05 -05:00
Bram Borggreve fb11c78be0 Add support for using UUID V4 as defaultFn 2015-09-02 16:39:00 +02:00
Bryan Clark 342bc2f782 prevent upsert overwriting default values with applyDefaultValues option
Creates a new applyDefaultValues option on the Model constructor
defaulting to true, the current behaviour.

Updates the dao module to pass `{ applyDefaultValues: false }` to the
Model constructor during the updateOrCreate method when we assume an
update is happening.
2015-07-14 09:08:10 -07:00
Clark Wang a283922c28 fix typo
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2015-06-01 11:28:58 +08:00
Raymond Feng 966bb56c31 Enhance fieldsToArray to consider strict mode 2015-05-19 22:32:03 -07:00
Raymond Feng 7a48e7801d Refactor the observer functions into a plugin 2015-05-16 11:52:17 -07:00
Miroslav Bajtoš 99d4c6aa8d Add new strict mode "validate"
When a model is configured with `strict: 'validate'`,
any dynamic properties not included in the schema trigger
a validation error.
2015-04-14 08:16:10 +02:00
Raymond Feng 16cc870f57 Merge pull request #544 from strongloop/feature/nesting-doc-query
Allow nesting properties to be queried for memory connector
2015-04-02 08:47:10 -07:00
Miroslav Bajtoš cd7bc46efb Deprecate property names containing a dot 2015-04-02 09:49:04 +02:00
Miroslav Bajtoš 517ea875ec Merge pull request #500 from 0angelic0/master
Remove and clear Operation Hook observers
2015-03-30 11:26:57 +02:00
Miroslav Bajtoš 9fd4c00225 Add model setting "persistUndefinedAsNull"
When the setting "persistUndefinedAsNull" is true,
the model will use `null` instead of `undefined` in
all property values.

 - Known optional model properties are set to `null` when no value
   was provided.

 - When setting model properties, `undefined` is always converted
   to `null`. This applies to both known (model-defined) properties
   and additional (custom, dynamic) properties.

 - The instance method `toObject()` converts `undefined` to `null` too.
   Because `toJSON()` calls `toObject()` under the hood, the change
   applies to `toJSON()` too.
2015-03-27 18:25:26 +01:00
0angelic0 befe30f14a Add abilities to remove and clear observers - Operation Hooks. 2015-03-11 18:08:35 +07:00
Miroslav Bajtoš ba0f3c1616 Add a new property option `defaultFn`
The property allows developers to specify that the default value
should be retrieved via a named function.

Only two built-in functions are supported at the moment:

  "guid", "uuid" - generate a new GUID/UUID
  "now" - use the current date and time

Support for custom (user-provided) functions is not implemented yet.
2015-02-20 20:08:25 +01:00
Miroslav Bajtoš c939efe1e7 Merge pull request #445 from PradnyaBaviskar/issue292
Add $now as shortcut default value for date property
2015-02-17 19:46:05 +01:00
Miroslav Bajtoš 76ebdcb91b ModelBaseClass: promise mode for notifyObserversOf
Support both promise and callback styles in
ModelBaseClass.notifyObserversOf.

When there is no callback supplied, the method returns a promise that
is resolved (or rejected) with the result.
2015-02-17 18:19:21 +01:00
Miroslav Bajtoš a2836fbb56 ModelBaseClass: support promise-based observers
Allow the observer functions passed to `ModelBaseClass.observe`
to return a promise instead of calling the callback.
2015-02-17 17:31:42 +01:00
Pradnya Baviskar aba7d0dc10 Add $now as shortcut default value for date property 2015-02-16 11:32:24 +05:30
Raymond Feng 4793546353 Merge pull request #400 from chrene/protected
Add support for protected properties.
2015-02-02 09:04:51 -08:00
Miroslav Bajtoš b3d07ebbe8 ModelBaseClass: implement async observe/notify
Implement infrastructure for intent-based hooks.
2015-01-29 08:43:50 +01:00
Christian Enevoldsen 7372fafc97 Fixed typos and logic for protected properties 2015-01-20 21:32:31 +01:00
Christian Enevoldsen d39f539413 adds support for protected properties. 2015-01-20 20:58:52 +01:00
Clark Wang 83c3a17f87 support embeds data for belongsTo relation
Signed-off-by: Clark Wang <clark.wangs@gmail.com>
2015-01-19 22:56:09 +08:00
Miroslav Bajtoš 2e98c51571 Fix detection of `util.inspect` version
Improve the detection to work in browser too. This fixes a regression
introduced in e4fc3878.
2015-01-15 08:45:52 +01:00
Miroslav Bajtoš e4fc38788f Fix Model.prototype.inspect
Return the raw object data when running on Node v0.11.14+
That way all `inspect` options are always preserved.

When running on older version:
 - Honour the depth argument passed to the custom `inspect` function.
 - Disable color output, becase there is now way how to detect whether
   colors were enabled or disabled by the top-level caller.
2015-01-12 17:12:18 +01:00
Fabien Franzen 4e20128945 Tiny fix: default __persisted to false 2014-10-19 18:52:18 +02:00
Fabien Franzen e7a108efdb Don't apply defaults when fields are specified 2014-10-19 18:47:27 +02:00
Fabien Franzen ad55681d69 Properly reset Memory connector cache on automigrate 2014-10-09 18:13:58 +02:00
Fabien Franzen 610866bd7c Extract mergeQuery and setScopeValuesFromWhere
Related to #274 - in preparation of default scope
2014-10-09 18:13:40 +02:00
Fabien Franzen fafe51833b More fixes/tests 2014-09-05 17:09:23 +02:00
Fabien Franzen aebf5e9e6b Enforce id (prevent user-set value), fix isNewRecord 2014-09-05 16:35:01 +02:00
Fabien Franzen 86ea107550 Validations configuration as object
Previously validations were appended to an array when configured. The
format was cumbersome, and led to issues. This refactors the
configuration into an object, as a property of the Model.

Note that if no validations have been configured, this property is
currently `undefined`.
2014-08-26 17:51:01 +02:00
Raymond Feng fcd8ed984c Make sure falsy value is kept for properties not predefined 2014-08-21 13:47:09 -07:00
Fabien Franzen 3f0380296a Fix side-effects of PR #237 - see #242 2014-08-21 10:44:55 +02:00
Fabien Franzen faed0510c1 Coerce embedded model types 2014-08-20 08:58:07 -07:00
Fabien Franzen a446551a59 Fix relations for RDBMS connectors (mysql, postgresql)
- fix tests (explicit model/property definitions)
- fix include vs. RDBMS model strictness
2014-08-20 14:03:38 +02:00
Raymond Feng f671c9c726 Clean up the mixin processing 2014-08-08 01:20:57 -07:00
Fabien Franzen 35776311fd Unified plugins into mixins
Mixin types: module function, module object, LDL json object.
2014-08-06 13:26:47 +02:00