mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
[IMP] misc: export the validate function
The props validation code is actually quite difficult to get right. Also, it is sometimes useful to be able to validate an object against a specified schema. Therefore, this commit exports the standalone validate function as an utility function.
This commit is contained in:
@@ -45,4 +45,5 @@ Utility/helpers:
|
|||||||
- [`loadFile`](reference/utils.md#loadfile): an helper to load a file from the server
|
- [`loadFile`](reference/utils.md#loadfile): an helper to load a file from the server
|
||||||
- [`markup`](reference/templates.md#outputting-data): utility function to define strings that represent html (should not be escaped)
|
- [`markup`](reference/templates.md#outputting-data): utility function to define strings that represent html (should not be escaped)
|
||||||
- [`status`](reference/component.md#status-helper): utility function to get the status of a component (new, mounted or destroyed)
|
- [`status`](reference/component.md#status-helper): utility function to get the status of a component (new, mounted or destroyed)
|
||||||
|
- [`validate`](reference/utils.md#validate): validates if an object satisfies a specified schema
|
||||||
- [`whenReady`](reference/utils.md#whenready): utility function to execute code when DOM is ready
|
- [`whenReady`](reference/utils.md#whenready): utility function to execute code when DOM is ready
|
||||||
|
|||||||
@@ -243,6 +243,8 @@ class ComponentB extends owl.Component {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Note: the props validation code is done by using the [validate utility function](utils.md#validate).
|
||||||
|
|
||||||
## Good Practices
|
## Good Practices
|
||||||
|
|
||||||
A `props` object is a collection of values that come from the parent. As such,
|
A `props` object is a collection of values that come from the parent. As such,
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ functions are all available in the `owl.utils` namespace.
|
|||||||
- [`whenReady`](#whenready): executing code when DOM is ready
|
- [`whenReady`](#whenready): executing code when DOM is ready
|
||||||
- [`loadFile`](#loadfile): loading a file (useful for templates)
|
- [`loadFile`](#loadfile): loading a file (useful for templates)
|
||||||
- [`EventBus`](#eventbus): a simple EventBus
|
- [`EventBus`](#eventbus): a simple EventBus
|
||||||
|
- [`validate`](#validate): a validation function
|
||||||
|
|
||||||
## `whenReady`
|
## `whenReady`
|
||||||
|
|
||||||
@@ -56,3 +57,24 @@ bus.addEventListener("event", () => console.log("something happened"));
|
|||||||
|
|
||||||
bus.trigger("event"); // 'something happened' is logged
|
bus.trigger("event"); // 'something happened' is logged
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## `validate`
|
||||||
|
|
||||||
|
The `validate` function is a function that validates if a given object satisfies a
|
||||||
|
specified schema. It is actually used by Owl itself to perform
|
||||||
|
[props validation](props.md#props-validation). For example:
|
||||||
|
|
||||||
|
```js
|
||||||
|
validate(
|
||||||
|
{ a: "hey" },
|
||||||
|
{
|
||||||
|
id: Number,
|
||||||
|
url: [Boolean, { type: Array, element: Number }],
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// throws an error with the following information:
|
||||||
|
// - unknown key 'a',
|
||||||
|
// - 'id' is missing (should be a number),
|
||||||
|
// - 'url' is missing (should be a boolean or list of numbers),
|
||||||
|
```
|
||||||
|
|||||||
@@ -52,5 +52,6 @@ export {
|
|||||||
onWillDestroy,
|
onWillDestroy,
|
||||||
onError,
|
onError,
|
||||||
} from "./component/lifecycle_hooks";
|
} from "./component/lifecycle_hooks";
|
||||||
|
export { validate } from "./validation";
|
||||||
|
|
||||||
export const __info__ = {};
|
export const __info__ = {};
|
||||||
|
|||||||
Reference in New Issue
Block a user