(element: Element, apiName: string)
| 21 | } |
| 22 | |
| 23 | static locateAPI(element: Element, apiName: string): Object { |
| 24 | switch (apiName) { |
| 25 | case 'element': |
| 26 | return element; |
| 27 | case 'controller': |
| 28 | return getAU(element).controller; |
| 29 | case 'view-model': |
| 30 | return getAU(element).controller.viewModel; |
| 31 | case 'view': |
| 32 | return getAU(element).controller.view; |
| 33 | default: |
| 34 | let target = getAU(element)[apiName]; |
| 35 | |
| 36 | if (target === undefined) { |
| 37 | throw new Error(`Attempted to reference "${apiName}", but it was not found amongst the target's API.`); |
| 38 | } |
| 39 | |
| 40 | return target.viewModel; |
| 41 | } |
| 42 | } |
| 43 | } |
| 44 | |
| 45 | class NameBinder { |
no test coverage detected