blob: 639d284287848edf6ce54fe8b01a3c193a7f274d [file] [log] [blame]
# Copyright 2021 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/chromeos/ui_mode.gni")
import("//third_party/node/node.gni")
assert(is_chromeos_ash)
template("ts_definitions") {
node(target_name) {
script = "//tools/typescript/ts_definitions.py"
forward_variables_from(invoker,
[
"deps",
"extra_deps",
"js_files",
"visibility",
])
inputs = [ "//tools/typescript/tsconfig_definitions_base.json" ]
outputs = [ "$target_gen_dir/tsconfig_definitions.json" ]
root_dir = "."
if (defined(invoker.root_dir)) {
root_dir = invoker.root_dir
}
out_dir = target_gen_dir
if (defined(invoker.out_dir)) {
out_dir = invoker.out_dir
}
foreach(_js_file, js_files) {
inputs += [ "$root_dir/$_js_file" ]
_dirname = rebase_path(get_path_info(_js_file, "gen_dir"), target_gen_dir)
_filename = get_path_info(_js_file, "name")
outputs += [ "$out_dir/$_dirname/$_filename.d.ts" ]
}
args = [
"--root_dir",
rebase_path(root_dir, root_build_dir),
"--gen_dir",
rebase_path(target_gen_dir, root_build_dir),
"--out_dir",
rebase_path(out_dir, root_build_dir),
"--js_files",
] + js_files
if (defined(deps)) {
args += [ "--deps" ]
foreach(dep, deps) {
name = get_label_info(dep, "name")
args += [ rebase_path(get_label_info(dep, "dir"), ".") +
"/tsconfig_$name.json" ]
}
}
if (defined(extra_deps)) {
if (!defined(deps)) {
deps = []
}
deps += extra_deps
}
path_mappings = [
"chrome://resources/*|" +
rebase_path("$root_gen_dir/ui/webui/resources/tsc/*", target_gen_dir),
"//resources/*|" +
rebase_path("$root_gen_dir/ui/webui/resources/tsc/*", target_gen_dir),
"chrome://resources/polymer/v3_0/*|" +
rebase_path("//third_party/polymer/v3_0/components-chromium/*",
target_gen_dir),
"//resources/polymer/v3_0/*|" +
rebase_path("//third_party/polymer/v3_0/components-chromium/*",
target_gen_dir),
"chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js|" + rebase_path(
"//third_party/polymer/v3_0/components-chromium/polymer/polymer-element.d.ts",
target_gen_dir),
"//resources/polymer/v3_0/polymer/polymer_bundled.min.js|" + rebase_path(
"//third_party/polymer/v3_0/components-chromium/polymer/polymer-element.d.ts",
target_gen_dir),
]
if (is_chromeos_ash) {
path_mappings += [
"chrome://resources/ash/common/*|" + rebase_path(
"$root_gen_dir/ash/webui/common/resources/preprocessed/*",
target_gen_dir),
"//resources/ash/common/*|" + rebase_path(
"$root_gen_dir/ash/webui/common/resources/preprocessed/*",
target_gen_dir),
]
}
args += [ "--path_mappings" ] + path_mappings
if (defined(invoker.path_mappings)) {
args += invoker.path_mappings
}
}
}