123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import("npm.gni")
- template("typescript_build") {
- assert(defined(invoker.tsconfig), "Need tsconfig name to run")
- assert(defined(invoker.sources), "Need tsc sources to run")
- assert(defined(invoker.output_dir_name),
- "Need output_dir_name to run, should be 'lib' or other top level dir")
- assert(defined(invoker.output_gen_dir),
- "Need output_gen_dir to run, should be relative to the root gen dir")
- npm_action(target_name) {
- forward_variables_from(invoker,
- [
- "deps",
- "public_deps",
- "outputs",
- ])
- script = "tsc"
- sources = invoker.sources
- inputs = [
- invoker.tsconfig,
- "//electron/tsconfig.json",
- "//electron/yarn.lock",
- "//electron/typings/internal-ambient.d.ts",
- "//electron/typings/internal-electron.d.ts",
- ]
- base_out_path = invoker.output_gen_dir + "/electron/"
- args = [
- "-p",
- rebase_path(invoker.tsconfig),
- "--outDir",
- rebase_path("$base_out_path" + invoker.output_dir_name),
- ]
- outputs = []
- foreach(invoker_source, invoker.sources) {
- # The output of TSC is all inputs but with JS instead of TS as the extension
- outputs += [ "$base_out_path" + get_path_info(invoker_source, "dir") +
- "/" + get_path_info(invoker_source, "name") + ".js" ]
- }
- }
- }
|