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, | ||
|  |         ], | ||
|  |     ) |