mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-08-19 06:28:03 +00:00

* chore(ui): improve type generation without temp dir * chore(ui): improve type generation without temp dir * ignore antlr files * update json2ts
71 lines
2.1 KiB
Bash
Executable File
71 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copyright 2022 Collate.
|
|
# 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.
|
|
#
|
|
|
|
#!/bin/bash
|
|
|
|
schema_directory='openmetadata-spec/src/main/resources/json/schema'
|
|
om_ui_directory='openmetadata-ui/src/main/resources/ui/src/generated'
|
|
|
|
|
|
generateType() {
|
|
tmp_schema_file=$1
|
|
output_file=$2
|
|
echo "Generating $output_file from specification at $tmp_schema_file"
|
|
./node_modules/.bin/quicktype -s schema "$tmp_schema_file" -o "$output_file" --just-types > /dev/null 2>&1
|
|
}
|
|
|
|
processFile() {
|
|
schema_file=$1
|
|
relative_path=${schema_file#"$schema_directory/"} # Extract relative path
|
|
output_dir="$om_ui_directory/$(dirname "$relative_path")"
|
|
|
|
# Debugging output
|
|
echo "Processing schema: $schema_file"
|
|
echo "Relative path: $relative_path"
|
|
echo "Output directory: $output_dir"
|
|
|
|
mkdir -p "$output_dir" # Ensure output directory exists
|
|
|
|
tmp_schema_file="$tmp_dir/$(basename "$schema_file")"
|
|
output_file="$output_dir/$(basename "$schema_file" .json).ts"
|
|
|
|
# Generate temporary schema and TypeScript file
|
|
generateType "$schema_file" "$output_file"
|
|
}
|
|
|
|
getTypes() {
|
|
total_files=$#
|
|
current_file=1
|
|
|
|
for schema_file in "$@"; do
|
|
echo "Processing file $current_file of $total_files: $schema_file"
|
|
processFile "$schema_file"
|
|
current_file=$((current_file + 1))
|
|
done
|
|
}
|
|
|
|
# Move to project root directory
|
|
cd "$(dirname "$0")/../../../../.." || exit
|
|
|
|
echo "Generating TypeScript from OpenMetadata specifications"
|
|
|
|
if [ "$#" -eq 0 ]; then
|
|
echo "No schema files specified. Please provide schema file paths."
|
|
exit 1
|
|
fi
|
|
|
|
# Process the schema files passed as arguments
|
|
getTypes "$@"
|
|
|
|
echo "TypeScript generation completed." |