* Moving frontend TS to its own root dir

Knowing that  some pepople(myself) don't like JS this is to keep
any potential JS as non-hidden as possible
This commit is contained in:
shockrah 2021-10-10 13:24:46 -07:00
parent d76eaea6e9
commit 8fa283f606
5 changed files with 1 additions and 63 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0cfdedb04d45802c1c008c9610bda2df8e3482f195bd254c11ebe07205e2bd5d
size 8560

View File

@ -1,59 +0,0 @@
// This module takes care of pulling down videos for the given category
class Video {
title: string
category: string
thumbnail_b64: string|null
constructor(raw: any) {
this.title = raw['name']
this.category = raw['category']
this.thumbnail_b64 = raw['thumbnail']
}
title_link() : HTMLHeadingElement {
let container = document.createElement('h2')
let link = document.createElement('a')
link.href = `/video?c=${this.category}&v=${this.title}`
link.text = this.title
container.appendChild(link)
return container
}
}
function get_category() : string|null {
// Used to modify the DOM
let params = (new URL(document.location.toString())).searchParams;
return params.get('c')
}
function base_url() : string {
const loc = document.location
return loc.protocol + '//' + loc.host
}
function fetch_videos() : Array<Video> {
const category = get_category()
if(!category) { return [] }
const endpoint = base_url() + `/api/categories?c=${category}`
let xml = new XMLHttpRequest()
xml.open('GET', endpoint, false) // sync request
xml.send(null) // no params required
if(xml.getResponseHeader('Content-Type') == 'application/json') {
let raw = JSON.parse(xml.responseText)
for(const vid of raw['videos']) {
console.log(vid)
}
}
return []
}
function ready(e) {
if(document.readyState != 'complete') { return e }
const video_data = fetch_videos()
}
document.addEventListener('readystatechange', ready)

View File

@ -2,7 +2,7 @@
"compilerOptions": { "compilerOptions": {
"target": "es6", "target": "es6",
"module": "commonjs", "module": "commonjs",
"outDir": "../themes/clippable/static/js/", "outDir": "../api/static/js/",
"importHelpers": true, "importHelpers": true,
/* Strict Type-Checking Options */ /* Strict Type-Checking Options */
"strict": true, "strict": true,