#!/usr/bin/env bash
set -eo pipefail # this can be harmful, see https://www.youtube.com/watch?v=4Jo3Ml53kvc
. bs/.common || {
	echo 'Please run this script from the project root directory' >&2;
	exit 1;
}
# depends on
declare -r server='node_modules/.bin/web-dev-server'
declare -r lint='bs/dev/lint'
declare -r tsc='bs/dev/tsc'
declare -r assets='bs/dev/assets'
declare -r server_config='web-dev-server.config.js'

help(){
	if ! isHelp "${@}"; then return 0; fi
	echoReadmeInfo
	cat <<-EOF
	./src		Starts the development server (default)
	./dist		Starts the production server

	Defaults:
	See server config file: '$server_config'
EOF
	$server --help
	exit 0
}
main(){
	help "${@}"

	$lint
	local -r target="${1:-./src}" # ./src or ./dist
	if [[ "$target" =~ 'dist' ]]; then
		# console warns because of config file, use npx serve?
		$server "${@}"
	else
		$assets
		$tsc --watch --preserveWatchOutput &
		$server "${@}" &
		wait
	fi
}

main "${@}"
