For testing on IE, shims must be served in es5. Because the shims served in these tests come from node_modules and are not part of the angular/angular source code, they must be transpiled to es5 if they are published as es6. This macro allows for a uniform method for running this transpilation during the build process. PR Close #36802
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Simple utility bazel macros for convenience usage."""
 | |
| 
 | |
| load("@npm//typescript:index.bzl", "tsc")
 | |
| 
 | |
| def transpile_js_to_es5(name, js_file):
 | |
|     """Transpiles a provided javascript target to es5.
 | |
| 
 | |
|     For testing on IE, shims must be served in es5, this macro can be used to
 | |
|     transpile es2015 JS shims to es5 for usage in IE testing.
 | |
| 
 | |
|     Example usage:
 | |
| 
 | |
|     transpile_js_to_es5(
 | |
|         name = "my-file",
 | |
|         js_file = "@npm//some_package/shim_files/es6_shim_file.js",
 | |
|     )
 | |
| 
 | |
|     filegroup(
 | |
|         name = "some_shims_for_tests",
 | |
|         testonly = True,
 | |
|         srcs = [
 | |
|             ":my-file",
 | |
|             ...
 | |
|         ]
 | |
|     )
 | |
|     """
 | |
|     tsc(
 | |
|         name = name,
 | |
|         outs = [
 | |
|             "%s.js" % name,
 | |
|         ],
 | |
|         args = [
 | |
|             # Allow JS files to be used for transpiling
 | |
|             "--allowJs",
 | |
|             # Skip lib check as pure local javascript transpiling should be done
 | |
|             "--skipLibCheck",
 | |
|             # Transpile to ES5
 | |
|             "--target ES5",
 | |
|             # Output the transpiled file to the location provided by the name
 | |
|             "--outFile $(execpath :%s.js)" % name,
 | |
|             # Transpile the provided js_file
 | |
|             "$(execpath %s)" % js_file,
 | |
|         ],
 | |
|         data = [
 | |
|             js_file,
 | |
|         ],
 | |
|     )
 |