| # Copyright 2018 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//tools/typescript/webui_ts_library.gni") |
| import("//ui/file_manager/file_names.gni") |
| import("//ui/webui/resources/tools/optimize_webui.gni") |
| import("//ui/webui/webui_features.gni") |
| |
| preprocess_folder = "$target_gen_dir/preprocessed" |
| tsc_folder = "$target_gen_dir/tsc" |
| files_app_path = rebase_path("$tsc_folder/file_manager", root_build_dir) |
| image_loader_path = rebase_path("$tsc_folder/image_loader", root_build_dir) |
| |
| # image_loader_client.js depends on this file from Files app. |
| copy("from_files_app") { |
| sources = [ |
| "$target_gen_dir/../file_manager/common/js/file_types_data.js", |
| "../file_manager/common/js/file_types_base.ts", |
| "../file_manager/common/js/lru_cache.ts", |
| ] |
| |
| outputs = [ "$preprocess_folder/file_manager/common/js/{{source_file_part}}" ] |
| deps = [ "//ui/file_manager/base/gn:file_types_data_gen_js" ] |
| |
| if (enable_webui_inline_sourcemaps) { |
| deps += [ "//ui/file_manager:merge_source_maps" ] |
| } else { |
| deps += [ "//ui/file_manager:build_ts" ] |
| } |
| } |
| |
| copy("copy_src") { |
| sources = rebase_path(image_loader_ts, ".", "..") |
| outputs = [ "$preprocess_folder/image_loader/{{source_file_part}}" ] |
| } |
| |
| dts_files = [ |
| "image_loader_private.d.ts", |
| "overrides.d.ts", |
| "//tools/typescript/definitions/chrome_event.d.ts", |
| "//tools/typescript/definitions/offscreen.d.ts", |
| "//tools/typescript/definitions/runtime.d.ts", |
| ] |
| |
| webui_ts_library("build_ts") { |
| root_dir = preprocess_folder |
| out_dir = tsc_folder |
| tsconfig_base = "tsconfig_base.json" |
| composite = true |
| |
| deps = [ |
| "//ash/webui/common/resources:build_ts", |
| "//ui/webui/resources/js:build_ts", |
| ] |
| |
| extra_deps = [ |
| ":copy_src", |
| ":from_files_app", |
| "//ash/webui/common/resources:generate_definitions", |
| ] |
| |
| in_files = image_loader_ts + [ |
| "file_manager/common/js/file_types_data.js", |
| "file_manager/common/js/file_types_base.ts", |
| "file_manager/common/js/lru_cache.ts", |
| ] |
| |
| definitions = dts_files |
| |
| path_mappings = |
| [ "chrome://file-manager/*|" + |
| rebase_path("$preprocess_folder/file_manager/*", target_gen_dir) ] |
| } |
| |
| optimize_webui("build") { |
| host = "image_loader" |
| |
| input = image_loader_path |
| js_module_in_files = [ |
| "offscreen.js", |
| "service_worker.js", |
| ] |
| |
| external_paths = [ |
| "chrome://file-manager|$files_app_path", |
| "chrome-extension://pmfjbimdmchhbnneeidfognadeopoehp|$image_loader_path", |
| ] |
| |
| deps = [ |
| ":build_ts", |
| "//ui/file_manager:preprocess_generated", |
| ] |
| if (enable_webui_inline_sourcemaps) { |
| deps += [ "//ui/file_manager:merge_source_maps" ] |
| } else { |
| deps += [ "//ui/file_manager:build_ts" ] |
| } |
| } |