« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/thing/structures.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/thing/structures.js')
-rw-r--r--src/thing/structures.js13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/thing/structures.js b/src/thing/structures.js
index e1bf06c..89c9bd3 100644
--- a/src/thing/structures.js
+++ b/src/thing/structures.js
@@ -1,5 +1,18 @@
 // Generic structure utilities common across various Thing types.
 
+export function validateDirectory(directory) {
+    if (typeof directory !== 'string')
+        throw new TypeError(`Expected a string, got ${directory}`);
+
+    if (directory.length === 0)
+        throw new TypeError(`Expected directory to be non-zero length`);
+
+    if (directory.match(/[^a-zA-Z0-9\-]/))
+        throw new TypeError(`Expected only letters, numbers, and dash, got "${directory}"`);
+
+    return true;
+}
+
 export function validateReference(type = '') {
     return ref => {
         if (typeof ref !== 'string')