| OLD | NEW |
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """Generates JavaScript source files from a mojom.Module.""" | 5 """Generates JavaScript source files from a mojom.Module.""" |
| 6 | 6 |
| 7 import mojom.generate.generator as generator | 7 import mojom.generate.generator as generator |
| 8 import mojom.generate.module as mojom | 8 import mojom.generate.module as mojom |
| 9 import mojom.generate.pack as pack | 9 import mojom.generate.pack as pack |
| 10 from mojom.generate.template_expander import UseJinja | 10 from mojom.generate.template_expander import UseJinja |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 253 @UseJinja("js_templates/module.js.tmpl", filters=js_filters) | 253 @UseJinja("js_templates/module.js.tmpl", filters=js_filters) |
| 254 def GenerateJsModule(self): | 254 def GenerateJsModule(self): |
| 255 return { | 255 return { |
| 256 "namespace": self.module.namespace, | 256 "namespace": self.module.namespace, |
| 257 "imports": self.GetImports(), | 257 "imports": self.GetImports(), |
| 258 "kinds": self.module.kinds, | 258 "kinds": self.module.kinds, |
| 259 "enums": self.module.enums, | 259 "enums": self.module.enums, |
| 260 "module": self.module, | 260 "module": self.module, |
| 261 "structs": self.GetStructs() + self.GetStructsFromMethods(), | 261 "structs": self.GetStructs() + self.GetStructsFromMethods(), |
| 262 "interfaces": self.module.interfaces, | 262 "interfaces": self.module.interfaces, |
| 263 "imported_interfaces": self.GetImportedInterfaces(), |
| 263 } | 264 } |
| 264 | 265 |
| 265 def GenerateFiles(self, args): | 266 def GenerateFiles(self, args): |
| 266 self.Write(self.GenerateJsModule(), "%s.js" % self.module.name) | 267 self.Write(self.GenerateJsModule(), "%s.js" % self.module.name) |
| 267 | 268 |
| 268 def GetImports(self): | 269 def GetImports(self): |
| 269 # Since each import is assigned a variable in JS, they need to have unique | 270 # Since each import is assigned a variable in JS, they need to have unique |
| 270 # names. | 271 # names. |
| 271 counter = 1 | 272 counter = 1 |
| 272 for each in self.module.imports: | 273 for each in self.module.imports: |
| 273 each["unique_name"] = "import" + str(counter) | 274 each["unique_name"] = "import" + str(counter) |
| 274 counter += 1 | 275 counter += 1 |
| 275 return self.module.imports | 276 return self.module.imports |
| 277 |
| 278 def GetImportedInterfaces(self): |
| 279 interface_to_import = {}; |
| 280 for each_import in self.module.imports: |
| 281 for each_interface in each_import["module"].interfaces: |
| 282 name = each_interface.name |
| 283 interface_to_import[name] = each_import["unique_name"] + "." + name |
| 284 return interface_to_import; |
| 285 |
| OLD | NEW |