Integrate Mojo JS validation bindings with the Router
[chromium-blink-merge.git] / mojo / public / tools / bindings / generators / js_templates / module.js.tmpl
blob93fa537023dddb7683fe24bab0a297244c3b32e6
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 define("{{module.path}}", [
6     "mojo/public/js/bindings/codec",
7     "mojo/public/js/bindings/validator",
8 {%- for import in imports %}
9     "{{import.module.path}}",
10 {%- endfor %}
11   ], function(codec, validator
12 {%- for import in imports -%}
13     , {{import.unique_name}}
14 {%- endfor -%}
15 ) {
17 {#--- Constants #}
18 {%  for constant in module.constants %}
19   var {{constant.name}} = {{constant.value|expression_to_text}};
20 {%- endfor %}
22 {#--- Enums #}
23 {%- from "enum_definition.tmpl" import enum_def %}
24 {%- for enum in enums %}
25   var {{ enum_def(enum.name, enum, module) }}
26 {%-  endfor %}
28 {#--- Struct definitions #}
29 {%  for struct in structs %}
30 {%-   include "struct_definition.tmpl" %}
31 {%- endfor -%}
33 {#--- Interface definitions #}
34 {%- for interface in interfaces -%}
35 {%-   include "interface_definition.tmpl" %}
36 {%- endfor %}
38   var exports = {};
39 {%-  for constant in module.constants %}
40   exports.{{constant.name}} = {{constant.name}};
41 {%- endfor %}
42 {%- for enum in enums %}
43   exports.{{enum.name}} = {{enum.name}};
44 {%- endfor %}
45 {%- for struct in structs if struct.exported %}
46   exports.{{struct.name}} = {{struct.name}};
47 {%- endfor %}
48 {%- for interface in interfaces %}
49   exports.{{interface.name}}Proxy = {{interface.name}}Proxy;
50   exports.{{interface.name}}Stub = {{interface.name}}Stub;
51 {%- endfor %}
52   return exports;
53 });