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 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 "module": self.module, | 299 "module": self.module, |
300 "structs": self.GetStructs() + self.GetStructsFromMethods(), | 300 "structs": self.GetStructs() + self.GetStructsFromMethods(), |
301 "interfaces": self.module.interfaces, | 301 "interfaces": self.module.interfaces, |
302 "imported_interfaces": self.GetImportedInterfaces(), | 302 "imported_interfaces": self.GetImportedInterfaces(), |
303 } | 303 } |
304 | 304 |
305 @UseJinja("js_templates/module.amd.tmpl", filters=js_filters) | 305 @UseJinja("js_templates/module.amd.tmpl", filters=js_filters) |
306 def GenerateAMDModule(self): | 306 def GenerateAMDModule(self): |
307 return self.GetParameters() | 307 return self.GetParameters() |
308 | 308 |
309 @UseJinja("js_templates/module.html.tmpl", filters=js_filters) | 309 @UseJinja("js_templates/module.sky.tmpl", filters=js_filters) |
310 def GenerateHTMLModule(self): | 310 def GenerateHTMLModule(self): |
311 return self.GetParameters() | 311 return self.GetParameters() |
312 | 312 |
313 def GenerateFiles(self, args): | 313 def GenerateFiles(self, args): |
314 self.Write(self.GenerateAMDModule(), | 314 self.Write(self.GenerateAMDModule(), |
315 self.MatchMojomFilePath("%s.js" % self.module.name)) | 315 self.MatchMojomFilePath("%s.js" % self.module.name)) |
316 self.Write(self.GenerateHTMLModule(), | 316 self.Write(self.GenerateHTMLModule(), |
317 self.MatchMojomFilePath("%s.html" % self.module.name)) | 317 self.MatchMojomFilePath("%s.sky" % self.module.name)) |
318 | 318 |
319 def GetImports(self): | 319 def GetImports(self): |
320 used_names = set() | 320 used_names = set() |
321 for each_import in self.module.imports: | 321 for each_import in self.module.imports: |
322 simple_name = each_import["module_name"].split(".")[0] | 322 simple_name = each_import["module_name"].split(".")[0] |
323 | 323 |
324 # Since each import is assigned a variable in JS, they need to have unique | 324 # Since each import is assigned a variable in JS, they need to have unique |
325 # names. | 325 # names. |
326 unique_name = simple_name | 326 unique_name = simple_name |
327 counter = 0 | 327 counter = 0 |
328 while unique_name in used_names: | 328 while unique_name in used_names: |
329 counter += 1 | 329 counter += 1 |
330 unique_name = simple_name + str(counter) | 330 unique_name = simple_name + str(counter) |
331 | 331 |
332 used_names.add(unique_name) | 332 used_names.add(unique_name) |
333 each_import["unique_name"] = unique_name | 333 each_import["unique_name"] = unique_name |
334 counter += 1 | 334 counter += 1 |
335 return self.module.imports | 335 return self.module.imports |
336 | 336 |
337 def GetImportedInterfaces(self): | 337 def GetImportedInterfaces(self): |
338 interface_to_import = {}; | 338 interface_to_import = {}; |
339 for each_import in self.module.imports: | 339 for each_import in self.module.imports: |
340 for each_interface in each_import["module"].interfaces: | 340 for each_interface in each_import["module"].interfaces: |
341 name = each_interface.name | 341 name = each_interface.name |
342 interface_to_import[name] = each_import["unique_name"] + "." + name | 342 interface_to_import[name] = each_import["unique_name"] + "." + name |
343 return interface_to_import; | 343 return interface_to_import; |
344 | 344 |
OLD | NEW |