interface d.ts reconstruction

Signed-off-by: yfwang6 <wangyongfei6@huawei.com>
Change-Id: I82814a4a5bb0ff7f0ba3fca96733b250622011ce
This commit is contained in:
yfwang6 2022-08-10 18:19:47 +08:00
parent c953454ab8
commit 6355a49b7a
4 changed files with 136 additions and 159 deletions

179
BUILD.gn
View File

@ -17,126 +17,34 @@ import("//build/ohos_var.gni")
import("//build/templates/metadata/module_info.gni")
import("interface_config.gni")
ohos_copy("ets_internal_api") {
sources = [
"api/@internal/ets/index.d.ts",
"api/@internal/ets/lifecycle.d.ts",
"api/@internal/global.d.ts",
"api/common/full/featureability.d.ts",
template("ohos_copy_internal") {
forward_variables_from(invoker, "*")
iv_input = invoker.iv_input
ohos_copy(target_name) {
process_script = "//interface/sdk-js/process_internal.py"
process_arguments = [
"--input",
rebase_path(iv_input, root_build_dir),
"--remove",
rebase_path("//interface/sdk-js/remove_list.json", root_build_dir),
"--ispublic",
"${sdk_build_public}",
"--name",
"$target_name",
]
sources = exec_script(process_script, process_arguments, "value")
outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ]
module_source_dir = target_out_dir + "/$target_name"
module_install_name = ""
}
}
ohos_copy("ets_component") {
sources = [
"api/@internal/component/ets/ability_component.d.ts",
"api/@internal/component/ets/action_sheet.d.ts",
"api/@internal/component/ets/alert_dialog.d.ts",
"api/@internal/component/ets/alphabet_indexer.d.ts",
"api/@internal/component/ets/animator.d.ts",
"api/@internal/component/ets/badge.d.ts",
"api/@internal/component/ets/blank.d.ts",
"api/@internal/component/ets/button.d.ts",
"api/@internal/component/ets/calendar.d.ts",
"api/@internal/component/ets/canvas.d.ts",
"api/@internal/component/ets/checkbox.d.ts",
"api/@internal/component/ets/checkboxgroup.d.ts",
"api/@internal/component/ets/circle.d.ts",
"api/@internal/component/ets/column.d.ts",
"api/@internal/component/ets/column_split.d.ts",
"api/@internal/component/ets/common.d.ts",
"api/@internal/component/ets/common_ts_ets_api.d.ts",
"api/@internal/component/ets/context_menu.d.ts",
"api/@internal/component/ets/counter.d.ts",
"api/@internal/component/ets/custom_dialog_controller.d.ts",
"api/@internal/component/ets/data_panel.d.ts",
"api/@internal/component/ets/date_picker.d.ts",
"api/@internal/component/ets/divider.d.ts",
"api/@internal/component/ets/ellipse.d.ts",
"api/@internal/component/ets/enums.d.ts",
"api/@internal/component/ets/flex.d.ts",
"api/@internal/component/ets/for_each.d.ts",
"api/@internal/component/ets/form_component.d.ts",
"api/@internal/component/ets/gauge.d.ts",
"api/@internal/component/ets/gesture.d.ts",
"api/@internal/component/ets/grid.d.ts",
"api/@internal/component/ets/gridItem.d.ts",
"api/@internal/component/ets/grid_col.d.ts",
"api/@internal/component/ets/grid_container.d.ts",
"api/@internal/component/ets/grid_row.d.ts",
"api/@internal/component/ets/hyperlink.d.ts",
"api/@internal/component/ets/image.d.ts",
"api/@internal/component/ets/image_animator.d.ts",
"api/@internal/component/ets/index-full.d.ts",
"api/@internal/component/ets/lazy_for_each.d.ts",
"api/@internal/component/ets/line.d.ts",
"api/@internal/component/ets/list.d.ts",
"api/@internal/component/ets/list_item.d.ts",
"api/@internal/component/ets/loading_progress.d.ts",
"api/@internal/component/ets/marquee.d.ts",
"api/@internal/component/ets/navigation.d.ts",
"api/@internal/component/ets/navigator.d.ts",
"api/@internal/component/ets/page_transition.d.ts",
"api/@internal/component/ets/panel.d.ts",
"api/@internal/component/ets/path.d.ts",
"api/@internal/component/ets/pattern_lock.d.ts",
"api/@internal/component/ets/plugin_component.d.ts",
"api/@internal/component/ets/polygon.d.ts",
"api/@internal/component/ets/polyline.d.ts",
"api/@internal/component/ets/progress.d.ts",
"api/@internal/component/ets/qrcode.d.ts",
"api/@internal/component/ets/radio.d.ts",
"api/@internal/component/ets/rating.d.ts",
"api/@internal/component/ets/rect.d.ts",
"api/@internal/component/ets/refresh.d.ts",
"api/@internal/component/ets/relative_container.d.ts",
"api/@internal/component/ets/remote_window.d.ts",
"api/@internal/component/ets/rich_text.d.ts",
"api/@internal/component/ets/row.d.ts",
"api/@internal/component/ets/row_split.d.ts",
"api/@internal/component/ets/scroll.d.ts",
"api/@internal/component/ets/scroll_bar.d.ts",
"api/@internal/component/ets/search.d.ts",
"api/@internal/component/ets/select.d.ts",
"api/@internal/component/ets/shape.d.ts",
"api/@internal/component/ets/sidebar.d.ts",
"api/@internal/component/ets/slider.d.ts",
"api/@internal/component/ets/span.d.ts",
"api/@internal/component/ets/stack.d.ts",
"api/@internal/component/ets/state_management.d.ts",
"api/@internal/component/ets/stepper.d.ts",
"api/@internal/component/ets/stepper_item.d.ts",
"api/@internal/component/ets/swiper.d.ts",
"api/@internal/component/ets/tab_content.d.ts",
"api/@internal/component/ets/tabs.d.ts",
"api/@internal/component/ets/text.d.ts",
"api/@internal/component/ets/text_area.d.ts",
"api/@internal/component/ets/text_clock.d.ts",
"api/@internal/component/ets/text_input.d.ts",
"api/@internal/component/ets/text_picker.d.ts",
"api/@internal/component/ets/text_timer.d.ts",
"api/@internal/component/ets/time_picker.d.ts",
"api/@internal/component/ets/toggle.d.ts",
"api/@internal/component/ets/units.d.ts",
"api/@internal/component/ets/video.d.ts",
"api/@internal/component/ets/web.d.ts",
"api/@internal/component/ets/xcomponent.d.ts",
]
if (sdk_build_public) {
sources -= [
"api/@internal/component/ets/ability_component.d.ts",
"api/@internal/component/ets/animator.d.ts",
"api/@internal/component/ets/calendar.d.ts",
"api/@internal/component/ets/form_component.d.ts",
"api/@internal/component/ets/plugin_component.d.ts",
"api/@internal/component/ets/remote_window.d.ts",
]
ohos_copy_internal("ets_internal_api") {
iv_input = "//interface/sdk-js/api/@internal/ets"
}
outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ]
module_source_dir = target_out_dir + "/$target_name"
module_install_name = ""
ohos_copy_internal("ets_component") {
iv_input = "//interface/sdk-js/api/@internal/component/ets"
}
ohos_copy("common_api") {
@ -189,34 +97,12 @@ ohos_declaration_template("ohos_declaration_ets") {
ohos_declaration_template("ohos_declaration_common") {
}
ohos_copy("internal_full") {
sources = [
"api/common/full/console.d.ts",
"api/common/full/dom.d.ts",
"api/common/full/featureability.d.ts",
"api/common/full/global.d.ts",
"api/common/full/index.d.ts",
"api/common/full/viewmodel.d.ts",
]
outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ]
module_source_dir = target_out_dir + "/$target_name"
module_install_name = ""
ohos_copy_internal("internal_full") {
iv_input = "//interface/sdk-js/api/common/full"
}
ohos_copy("internal_lite") {
sources = [
"api/common/lite/console.d.ts",
"api/common/lite/featureability.d.ts",
"api/common/lite/global.d.ts",
"api/common/lite/index.d.ts",
"api/common/lite/viewmodel.d.ts",
]
if (sdk_build_public) {
sources -= [ "api/common/lite/featureability.d.ts" ]
}
outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ]
module_source_dir = target_out_dir + "/$target_name"
module_install_name = ""
ohos_copy_internal("internal_lite") {
iv_input = "//interface/sdk-js/api/common/lite"
}
ohos_copy("syscap_check") {
@ -226,21 +112,6 @@ ohos_copy("syscap_check") {
module_install_name = ""
}
ohos_copy("system_api") {
sources = [
"api/@system.app.d.ts",
"api/@system.cipher.d.ts",
"api/@system.configuration.d.ts",
"api/@system.file.d.ts",
"api/@system.mediaquery.d.ts",
"api/@system.prompt.d.ts",
"api/@system.router.d.ts",
]
outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ]
module_source_dir = target_out_dir + "/$target_name"
module_install_name = ""
}
ohos_copy("config") {
sources = [
"api/config/css",

79
process_internal.py Executable file
View File

@ -0,0 +1,79 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright (c) 2021-2022 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import os
import sys
import optparse
import json
import re
def copy_files(options):
with open(options.remove) as f:
remove_dict = json.load(f)
if options.name in remove_dict:
rm_name = remove_dict[options.name]
if 'base' in rm_name:
file_list = rm_name['base']
else:
file_list = []
for file in os.listdir(options.input):
src = os.path.join(options.input, file)
if os.path.isfile(src) and (
not 'global_remove' in rm_name or (
'global_remove' in rm_name and (
not file in rm_name['global_remove']))):
format_src = format_path(src)
if options.ispublic == 'true':
if not 'sdk_build_public_remove' in rm_name:
file_list.append(format_src)
else:
if not file in rm_name['sdk_build_public_remove']:
file_list.append(format_src)
else:
file_list.append(format_src)
else:
file_list = []
for file in os.listdir(options.input):
src = os.path.join(options.input, file)
if os.path.isfile(src):
format_src = format_path(src)
file_list.append(format_src)
return file_list
def format_path(filepath):
return re.sub(r'.*(?=api/)', '', filepath);
def parse_args(args):
parser = optparse.OptionParser()
parser.add_option('--input', help='d.ts document input path')
parser.add_option('--remove', help='d.ts to be remove path')
parser.add_option('--ispublic', help='whether or not sdk build public')
parser.add_option('--name', help='module label name')
options, _ = parser.parse_args(args)
return options
def main(argv):
options = parse_args(argv)
result = copy_files(options)
print(json.dumps(result))
return 0
if __name__ == "__main__":
sys.exit(main(sys.argv))

27
remove_list.json Normal file
View File

@ -0,0 +1,27 @@
{
"ets_internal_api": {
"base": [
"api/common/full/featureability.d.ts"
]
},
"ets_component": {
"global_remove": [
"inspector.d.ts",
"matrix2d.d.ts",
"middle_class.d.ts"
],
"sdk_build_public_remove": [
"ability_component.d.ts",
"animator.d.ts",
"calendar.d.ts",
"form_component.d.ts",
"plugin_component.d.ts",
"remote_window.d.ts"
]
},
"internal_lite": {
"sdk_build_public_remove": [
"featureability.d.ts"
]
}
}