[IMP] component,qweb: props validation

We re-add the possibility to validate props when dev mode is active.
No change in the API right Now. The dev mode is activated via the
configure method of App class.
This commit is contained in:
Mathieu Duckerts-Antoine
2021-10-20 16:08:31 +02:00
committed by Aaron Bohy
parent 15e4c856da
commit c16d8ed6de
15 changed files with 1308 additions and 714 deletions
+24 -8
View File
@@ -5,13 +5,24 @@ import { TemplateSet } from "./qweb/template_helpers";
// reimplement dev mode stuff see last change in 0f7a8289a6fb8387c3c1af41c6664b2a8448758f
interface Config {
dev?: boolean;
env?: { [key: string]: any };
translatableAttributes?: string[];
translateFn?: (s: string) => string;
}
export const DEV_MSG = `Owl is running in 'dev' mode.
This is not suitable for production use.
See https://github.com/odoo/owl/blob/master/doc/reference/config.md#mode for more information.`;
export class App<T extends typeof Component = any> extends TemplateSet {
Root: T;
props: any;
env: any = {};
scheduler = new Scheduler(window.requestAnimationFrame.bind(window));
root: ComponentNode | null = null;
dev: boolean = true;
constructor(Root: T, props?: any) {
super();
@@ -19,15 +30,20 @@ export class App<T extends typeof Component = any> extends TemplateSet {
this.props = props;
}
configure(params: any) {
if (params.env) {
this.env = params.env;
configure(config: Config) {
if (config.dev) {
this.dev = config.dev;
console.info(DEV_MSG);
}
if (params.translateFn) {
this.translateFn = params.translateFn;
if (config.env) {
this.env = config.env;
}
if (params.translatableAttributes) {
this.translatableAttributes = params.translatableAttributes;
if (config.translateFn) {
this.translateFn = config.translateFn;
}
if (config.translatableAttributes) {
this.translatableAttributes = config.translatableAttributes;
}
}