Adds routing

Squashed commit of the following:

commit d26bffc33a
Author: Jan Andrle <andrle.jan@centrum.cz>
Date:   Tue Jun 9 10:35:14 2026 +0200

     ups versions

commit 8bb12aaac1
Author: Jan Andrle <andrle.jan@centrum.cz>
Date:   Fri May 22 15:56:44 2026 +0200

     📺 finlizes routing and improves bs

commit c3782509e8
Author: Jan Andrle <andrle.jan@centrum.cz>
Date:   Wed May 20 16:10:51 2026 +0200

     first steps (footer)

commit 7c925d1fdb
Author: Jan Andrle <andrle.jan@centrum.cz>
Date:   Wed May 20 15:24:20 2026 +0200

     📺 tsc-alias

commit e4e41197b9
Author: Jan Andrle <andrle.jan@centrum.cz>
Date:   Wed May 20 14:40:47 2026 +0200

    🐛 fixes routing

commit 7d6240e28a
Author: Jan Andrle <andrle.jan@centrum.cz>
Date:   Wed May 20 14:40:00 2026 +0200

    🐛 📺 fixes dev server

commit 139b1590ce
Author: Jan Andrle <andrle.jan@centrum.cz>
Date:   Wed Apr 29 13:40:40 2026 +0200

     Uses original router

    - it has benefits to use hash properly

commit 3cc11b68de
Author: Jan Andrle <andrle.jan@centrum.cz>
Date:   Tue Apr 28 17:16:00 2026 +0200

    🎉
This commit is contained in:
2026-06-09 10:39:23 +02:00
parent 0191347312
commit 656c2da8cf
42 changed files with 765 additions and 372 deletions
+10 -4
View File
@@ -4,9 +4,6 @@ This project uses [jaandrle/bs: The simplest possible build system using executa
## Available executables
If it makes sense, arguments are passed to internally used commands (e.g. `tsc`), e. g. `--help`.
### bs/lint
This lints the project using `tsc`.
### bs/test
This lints the project and runs tests using `wtr`.
@@ -19,8 +16,17 @@ This builds the project using `rollup`.
### bs/analyze
This analyze Custom Element manifest using the `@custom-elements-manifest/analyzer`.
### bs/dev/assets
Copies assets using `cp` into proper destination in `.tmp`.
### bs/dev/tsc
Builds typescript files using `tsc`.
### bs/dev/lint
Lints the project using `tsc`.
### bs/npm/lint
Linted projects npm dependencies.
Lints projects npm dependencies.
### bs/npm/update
Updates projects npm dependencies.
+7 -3
View File
@@ -5,8 +5,12 @@ set -eo pipefail # this can be harmful, see https://www.youtube.com/watch?v=4Jo3
exit 1;
}
# depends on
declare -r app='src/app-cfpodcasts.ts'
declare -r cem='node_modules/.bin/cem'
declare -r app=(
'src/**/c-*.ts'
'src/**/app-*/index.ts'
'src/index.ts'
)
declare -r cem='node_modules/.bin/custom-elements-manifest'
help(){
if ! isHelp "${@}"; then return 0; fi
@@ -17,7 +21,7 @@ help(){
}
main(){
help "${@}"
$cem analyze --litelement --globs "$app" "${@}"
$cem analyze --litelement --globs "${app[@]}" "${@}"
}
main "${@}"
+4
View File
@@ -5,6 +5,8 @@ set -eo pipefail # this can be harmful, see https://www.youtube.com/watch?v=4Jo3
exit 1;
}
# depends on
declare -r tsc='bs/dev/tsc'
declare -r assets='bs/dev/assets'
declare -r rollup='node_modules/.bin/rollup'
declare -r analyze='bs/analyze'
declare -r config='rollup.config.js'
@@ -20,6 +22,8 @@ help(){
main(){
help "${@}"
$tsc
$assets
rm -rf "$dist"
$rollup -c $config "${@}"
$analyze --exclude "$dist"
Executable
+26
View File
@@ -0,0 +1,26 @@
#!/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 paths='bs/dev/paths.js'
declare -r assets="$($paths 'src')/**/assets"
declare -r target="$($paths 'tscoutput')"
help(){
if ! isHelp "${@}"; then return 0; fi
echoReadmeInfo
echo
exit 0
}
main(){
help "${@}"
shopt -s globstar nullglob
for dir in $assets; do
cp -r "$dir" "$target/$dir"
done
}
main "${@}"
+1 -1
View File
@@ -16,7 +16,7 @@ help(){
}
main(){
help "${@}"
$tsc "${@}"
$tsc --noEmit "${@}"
}
main "${@}"
+44
View File
@@ -0,0 +1,44 @@
#!/bin/env node
import tsconfig from "../../tsconfig.json" with { type: "json" };
export const paths = {
/** code source */
src: "src",
/** code processed by tsc */
tscoutput: tsconfig.compilerOptions.outDir,
/** code processed by tsc and rollup */
dist: "dist",
/** tempral results of tsc, tests, … */
tmp: ".tmp",
};
export default paths;
import { argv, exit } from "node:process";
import { fileURLToPath } from "node:url";
const [ _, script ] = argv;
if (script === fileURLToPath(import.meta.url))
main(argv.slice(2));
function main(args) {
if(args.includes("--help") || args.includes("-h")){
console.log(`
Usage: ${script} [options]
Options:
[type] … if omitted, echo all
`);
exit(0);
}
if(args.length === 0){
console.log(paths);
exit(0);
}
for(const arg of args){
const path = paths[arg];
if(!path){
console.error(`Unknown path: ${arg}`);
exit(1);
}
console.log(path);
}
}
Executable
+25
View File
@@ -0,0 +1,25 @@
#!/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 tsc='node_modules/.bin/tsc'
declare -r tscAlias='node_modules/.bin/tsc-alias'
help(){
if ! isHelp "${@}"; then return 0; fi
echoReadmeInfo
echo
$tsc --help
$tscAlias --help
exit 0
}
main(){
help "${@}"
$tsc "${@}"
$tscAlias "${@}"
}
main "${@}"
+13 -9
View File
@@ -4,20 +4,22 @@ set -eo pipefail # this can be harmful, see https://www.youtube.com/watch?v=4Jo3
echo 'Please run this script from the project root directory' >&2;
exit 1;
}
# "start:build": "web-dev-server --root-dir dist --app-index index.html --open",
# "start": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"web-dev-server\""
# depends on
declare -r server='node_modules/.bin/web-dev-server'
declare -r lint='bs/lint'
declare -r index='index.html'
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
Options:
./src Starts the development server (default)
./dist Starts the production server
Defaults:
See server config file: '$server_config'
EOF
$server --help
exit 0
@@ -25,13 +27,15 @@ EOF
main(){
help "${@}"
$lint
local -r target="${1:-./src}" # ./src or ./dist
if [[ "$target" == './dist' ]]; then
if [[ "$target" =~ 'dist' ]]; then
# console warns because of config file, use npx serve?
$server --root-dir "$target" --app-index $index --open
$server "${@}"
else
$lint --watch --preserveWatchOutput &
$server &
$assets
$tsc --watch --preserveWatchOutput &
$server "${@}" &
wait
fi
}
+4 -6
View File
@@ -5,15 +5,13 @@ set -eo pipefail # this can be harmful, see https://www.youtube.com/watch?v=4Jo3
exit 1;
}
# depends on
declare -r lint='bs/lint'
declare -r wtr='node_modules/.bin/wtr'
declare -r tsc='bs/dev/tsc'
declare -r wtr='node_modules/.bin/web-test-runner'
help(){
if ! isHelp "${@}"; then return 0; fi
echoReadmeInfo
cat <<EOF
Options:
--watch, -w Runs in watch mode
EOF
$wtr --help
@@ -22,12 +20,12 @@ EOF
main(){
help "$1"
if [[ "$1" != "--watch" ]]; then
$lint
$tsc
$wtr "$@" --coverage
exit
fi
$lint --watch --preserveWatchOutput &
$tsc --watch --preserveWatchOutput &
$wtr "${*}" &
wait
}