mirror of
https://git.coastit.co.za/caitlin/CRM_ENVR.git
synced 2026-07-10 03:05:43 +02:00
Adding Block extensions
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
export const BLOCKED_CODE_EXTENSIONS = new Set([
|
||||
"py", "pyc", "pyo", "pyw", "pyx", "ipynb",
|
||||
"js", "mjs", "cjs", "jsx", "ts", "tsx",
|
||||
"php", "phtml", "php3", "php4", "php5",
|
||||
"rb", "erb",
|
||||
"pl", "pm",
|
||||
"lua",
|
||||
"sh", "bash", "zsh", "ksh", "fish",
|
||||
"ps1", "psm1", "psd1",
|
||||
"bat", "cmd",
|
||||
"vbs",
|
||||
"applescript",
|
||||
"ahk",
|
||||
"au3",
|
||||
"tcl",
|
||||
"c", "h", "cpp", "cc", "cxx", "hpp", "hh", "hxx",
|
||||
"cs", "vb",
|
||||
"java", "class", "jar",
|
||||
"go",
|
||||
"rs",
|
||||
"swift",
|
||||
"kt", "kts",
|
||||
"scala",
|
||||
"groovy", "gradle",
|
||||
"d",
|
||||
"nim",
|
||||
"cr",
|
||||
"zig",
|
||||
"v",
|
||||
"vhd", "vhdl",
|
||||
"asm", "s",
|
||||
"f", "f90", "f95", "for",
|
||||
"pas", "pp",
|
||||
"ada", "adb", "ads",
|
||||
"cob", "cbl",
|
||||
"hs", "lhs",
|
||||
"ml", "mli",
|
||||
"fs", "fsx", "fsi",
|
||||
"clj", "cljs", "cljc", "edn",
|
||||
"lisp", "lsp",
|
||||
"scm", "ss",
|
||||
"rkt",
|
||||
"ex", "exs",
|
||||
"erl", "hrl",
|
||||
"jl",
|
||||
"elm",
|
||||
"purs",
|
||||
"re", "rei",
|
||||
"sol",
|
||||
"move",
|
||||
"pro",
|
||||
"m",
|
||||
"html", "htm",
|
||||
"css", "scss", "sass", "less",
|
||||
"vue", "svelte",
|
||||
"json5",
|
||||
"o", "so", "dll", "exe", "dylib",
|
||||
"wasm", "wat", "bin",
|
||||
"out",
|
||||
"deb", "rpm",
|
||||
"app", "apk", "ipa",
|
||||
"sql", "psql",
|
||||
"ino", "pde",
|
||||
"sas", "do",
|
||||
])
|
||||
|
||||
export function getAllExtensions(name: string): string[] {
|
||||
const parts = name.split(".")
|
||||
if (parts.length <= 1) return []
|
||||
return parts.slice(1).map((ext) => ext.toLowerCase())
|
||||
}
|
||||
|
||||
export function hasBlockedCodeExtension(name: string): boolean {
|
||||
const exts = getAllExtensions(name)
|
||||
return exts.some((ext) => BLOCKED_CODE_EXTENSIONS.has(ext))
|
||||
}
|
||||
|
||||
export function filterBlockedFiles<T extends { name: string }>(
|
||||
files: T[],
|
||||
): { allowed: T[]; rejected: T[] } {
|
||||
const allowed: T[] = []
|
||||
const rejected: T[] = []
|
||||
for (const f of files) {
|
||||
if (hasBlockedCodeExtension(f.name)) {
|
||||
rejected.push(f)
|
||||
} else {
|
||||
allowed.push(f)
|
||||
}
|
||||
}
|
||||
return { allowed, rejected }
|
||||
}
|
||||
Reference in New Issue
Block a user