Commit 131e6c9

Anton Golub <antongolub@antongolub.com>
2024-12-25 20:35:44
refactor: simplify quote regexp (#1038)
1 parent 95f8bfd
Changed files (2)
src/cli.ts
@@ -187,14 +187,12 @@ export async function importPath(
   filepath: string,
   origin = filepath
 ): Promise<void> {
-  const ext = path.extname(filepath)
-  const base = path.basename(filepath)
-  const dir = path.dirname(filepath)
+  const { ext, base, dir } = path.parse(filepath)
 
   if (ext === '') {
-    const tmpFilename = fs.existsSync(`${filepath}.mjs`)
-      ? `${base}-${randomId()}.mjs`
-      : `${base}.mjs`
+    const tmpFilename = fs.existsSync(filepath + EXT)
+      ? base + '-' + randomId() + EXT
+      : base + EXT
 
     return writeAndImport(
       await fs.readFile(filepath),
@@ -205,7 +203,7 @@ export async function importPath(
   if (ext === '.md') {
     return writeAndImport(
       transformMarkdown(await fs.readFile(filepath)),
-      path.join(dir, base + '.mjs'),
+      path.join(dir, base + EXT),
       origin
     )
   }
src/util.ts
@@ -101,7 +101,7 @@ export function preferLocalBin(
 // }
 
 export function quote(arg: string): string {
-  if (/^[a-z0-9/_.\-@:=]+$/i.test(arg) || arg === '') {
+  if (/^[\w/.-@:=]+$/.test(arg) || arg === '') {
     return arg
   }
   return (
@@ -120,7 +120,7 @@ export function quote(arg: string): string {
 }
 
 export function quotePowerShell(arg: string): string {
-  if (/^[a-z0-9/_.\-]+$/i.test(arg) || arg === '') {
+  if (/^[\w/.-]+$/.test(arg) || arg === '') {
     return arg
   }
   return `'` + arg.replace(/'/g, "''") + `'`