Skip to content
Snippets Groups Projects
Select Git revision
  • 285afd04b320aa3d0eabf88c7e55ff5c79d86284
  • master default protected
2 results

generate.sh

Blame
  • generate.sh 1.69 KiB
    #!/bin/bash
    
    generate_index() {
      for path in "$@"; do
        local base=$(basename "${path}")
        local exac=${base%.ts}
        local dir=$(dirname "${path}")
    
        local segments
        local p
    
        IFS="/" read -a segments <<< $path
    
        for segment in ${segments[@]}; do
    
          if [ "$segment" == "." ] || [ "$segment" == "dist" ]; then
            p+="$segment"
            p+="/"
            continue
          fi
    
          local exp
    
          if [ "$segment" == "$base" ]; then
            exp="export * from './$exac'"
            if ! grep -Fxq "$exp" "$dir"/index.ts; then
              echo "$exp" | tee -a "$dir"/index.ts
            fi
            p=""
          elif [ "$segment" == "$exac" ]; then
            exp="export * as $segment from './$segment'"
            if ! grep -Fxq "$exp" "$p"/index.ts; then
               echo "$exp" | tee -a "$p"/index.ts
            fi
            p+="$segment"
            p+="/"
          else
            exp="export * as $segment from './$segment'"
            if ! grep -Fxq "$exp" "$p"index.ts; then
              echo "$exp" | tee -a "$p"index.ts
            fi
            p+="$segment"
            p+="/"
          fi
    
        done
      done
    }
    
    
    echo "Generate index.ts files"
    ts_files=$(find ./config/dist/**/ -name '*.ts')
    ts_files_array=($ts_files)
    generate_index "${ts_files_array[@]}"
    
    echo "Generate *.d.ts, *.d.ts.map, *.js, *.js.map files"
    tsc --project ./config --declaration --declarationMap --sourceMap --rootDir ./config/dist
    
    echo "Delete created tmp files"
    find ./config/dist -name 'index.ts' -delete
    find ./config/dist/*/** -name 'index.ts' -delete
    find ./config/ -maxdepth 1 -name 'index.ts' -delete
    find ./ -maxdepth 1 -name '*.json' -delete
    find ./ -maxdepth 1 -name '*.ts' -delete
    find ./config/dist/*/** -name '*.ts' ! -name '*.d.ts' -delete
    
    echo "---process finished"