[IMP] owl: introduce dev mode

This commit adds a static key 'dev' on QWeb (which acts as a central
point of access in owl internal code), and a 'mode' key on the value
exported by owl to let external code manipulate it.

closes #117
This commit is contained in:
Géry Debongnie
2019-05-21 14:11:40 +02:00
parent 8f29cfc996
commit 1dec8df715
4 changed files with 39 additions and 3 deletions
+17 -3
View File
@@ -12,12 +12,26 @@ export { Observer } from "./observer";
// themselves in QWeb, otherwise these files will not even be loaded.
import "./qweb_directives";
import "./qweb_extensions";
export { QWeb } from "./qweb_core";
import { QWeb } from "./qweb_core";
export { QWeb };
export { connect, Store } from "./store";
import * as _utils from "./utils";
export const __info__ = {}
export const __info__ = {};
Object.defineProperty(__info__, "mode", {
get() {
return QWeb.dev ? "dev" : "prod";
},
set(mode: string) {
QWeb.dev = mode === "dev";
if (QWeb.dev) {
const url = `https://github.com/odoo/owl/blob/master/doc/tooling.md#development-mode`;
console.warn(
`Owl is running in dev mode. This is not suitable for production use. See ${url} for more information.`
);
}
}
});
export const utils = _utils;
+3
View File
@@ -127,6 +127,9 @@ export class QWeb {
templates: { [name: string]: Template } = {};
utils = UTILS;
// dev mode enables better error messages or more costly validations
static dev: boolean = false;
// the id field is useful to be able to hash qweb instances. The current
// use case is that component's templates are qweb dependant, and need to be
// able to map a qweb instance to a template name.