@stacksjs/storage 0.61.24 → 0.63.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +64 -281
- package/dist/index.js.map +20 -0
- package/package.json +1 -1
- package/src/fs.ts +2 -2
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@ import {detectIndent, detectNewline} from "@stacksjs/strings";
|
|
|
17
17
|
|
|
18
18
|
// src/fs.ts
|
|
19
19
|
import * as fs from "fs-extra";
|
|
20
|
-
import {pathExists as existsSync, mkdirSync, readFileSync, writeFileSync} from "fs-extra";
|
|
20
|
+
import {pathExists as existsSync, watch as fsWatch, mkdirSync, readFileSync, watchFile, writeFileSync} from "fs-extra";
|
|
21
21
|
async function exists(path) {
|
|
22
22
|
return await existsSync(path);
|
|
23
23
|
}
|
|
@@ -420,286 +420,64 @@ function inflateSync(data) {
|
|
|
420
420
|
// src/storage.ts
|
|
421
421
|
var exports_storage = {};
|
|
422
422
|
__export(exports_storage, {
|
|
423
|
-
zip: () =>
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
}
|
|
482
|
-
},
|
|
483
|
-
readJsonFile: () => {
|
|
484
|
-
{
|
|
485
|
-
return readJsonFile;
|
|
486
|
-
}
|
|
487
|
-
},
|
|
488
|
-
readFileSync: () => {
|
|
489
|
-
{
|
|
490
|
-
return readFileSync;
|
|
491
|
-
}
|
|
492
|
-
},
|
|
493
|
-
put: () => {
|
|
494
|
-
{
|
|
495
|
-
return put;
|
|
496
|
-
}
|
|
497
|
-
},
|
|
498
|
-
move: () => {
|
|
499
|
-
{
|
|
500
|
-
return move;
|
|
501
|
-
}
|
|
502
|
-
},
|
|
503
|
-
mkdirSync: () => {
|
|
504
|
-
{
|
|
505
|
-
return mkdirSync;
|
|
506
|
-
}
|
|
507
|
-
},
|
|
508
|
-
isFolder: () => {
|
|
509
|
-
{
|
|
510
|
-
return isFolder;
|
|
511
|
-
}
|
|
512
|
-
},
|
|
513
|
-
isFile: () => {
|
|
514
|
-
{
|
|
515
|
-
return isFile;
|
|
516
|
-
}
|
|
517
|
-
},
|
|
518
|
-
isDirectoryEmpty: () => {
|
|
519
|
-
{
|
|
520
|
-
return isDirectoryEmpty;
|
|
521
|
-
}
|
|
522
|
-
},
|
|
523
|
-
isDirectory: () => {
|
|
524
|
-
{
|
|
525
|
-
return isDirectory;
|
|
526
|
-
}
|
|
527
|
-
},
|
|
528
|
-
isDir: () => {
|
|
529
|
-
{
|
|
530
|
-
return isDir;
|
|
531
|
-
}
|
|
532
|
-
},
|
|
533
|
-
inflateSync: () => {
|
|
534
|
-
{
|
|
535
|
-
return inflateSync;
|
|
536
|
-
}
|
|
537
|
-
},
|
|
538
|
-
helpers: () => {
|
|
539
|
-
{
|
|
540
|
-
return helpers;
|
|
541
|
-
}
|
|
542
|
-
},
|
|
543
|
-
hasFunctions: () => {
|
|
544
|
-
{
|
|
545
|
-
return hasFunctions;
|
|
546
|
-
}
|
|
547
|
-
},
|
|
548
|
-
hasFiles: () => {
|
|
549
|
-
{
|
|
550
|
-
return hasFiles;
|
|
551
|
-
}
|
|
552
|
-
},
|
|
553
|
-
hasComponents: () => {
|
|
554
|
-
{
|
|
555
|
-
return hasComponents;
|
|
556
|
-
}
|
|
557
|
-
},
|
|
558
|
-
gzipSync: () => {
|
|
559
|
-
{
|
|
560
|
-
return gzipSync;
|
|
561
|
-
}
|
|
562
|
-
},
|
|
563
|
-
gunzipSync: () => {
|
|
564
|
-
{
|
|
565
|
-
return gunzipSync;
|
|
566
|
-
}
|
|
567
|
-
},
|
|
568
|
-
getFolders: () => {
|
|
569
|
-
{
|
|
570
|
-
return getFolders;
|
|
571
|
-
}
|
|
572
|
-
},
|
|
573
|
-
getFiles: () => {
|
|
574
|
-
{
|
|
575
|
-
return getFiles;
|
|
576
|
-
}
|
|
577
|
-
},
|
|
578
|
-
get: () => {
|
|
579
|
-
{
|
|
580
|
-
return get;
|
|
581
|
-
}
|
|
582
|
-
},
|
|
583
|
-
fs: () => {
|
|
584
|
-
{
|
|
585
|
-
return fs;
|
|
586
|
-
}
|
|
587
|
-
},
|
|
588
|
-
folders: () => {
|
|
589
|
-
{
|
|
590
|
-
return folders;
|
|
591
|
-
}
|
|
592
|
-
},
|
|
593
|
-
files: () => {
|
|
594
|
-
{
|
|
595
|
-
return files;
|
|
596
|
-
}
|
|
597
|
-
},
|
|
598
|
-
existsSync: () => {
|
|
599
|
-
{
|
|
600
|
-
return existsSync;
|
|
601
|
-
}
|
|
602
|
-
},
|
|
603
|
-
exists: () => {
|
|
604
|
-
{
|
|
605
|
-
return exists;
|
|
606
|
-
}
|
|
607
|
-
},
|
|
608
|
-
doesNotExist: () => {
|
|
609
|
-
{
|
|
610
|
-
return doesNotExist;
|
|
611
|
-
}
|
|
612
|
-
},
|
|
613
|
-
doesFolderExist: () => {
|
|
614
|
-
{
|
|
615
|
-
return doesFolderExist;
|
|
616
|
-
}
|
|
617
|
-
},
|
|
618
|
-
doesExist: () => {
|
|
619
|
-
{
|
|
620
|
-
return doesExist;
|
|
621
|
-
}
|
|
622
|
-
},
|
|
623
|
-
deleteGlob: () => {
|
|
624
|
-
{
|
|
625
|
-
return deleteGlob;
|
|
626
|
-
}
|
|
627
|
-
},
|
|
628
|
-
deleteFolder: () => {
|
|
629
|
-
{
|
|
630
|
-
return deleteFolder;
|
|
631
|
-
}
|
|
632
|
-
},
|
|
633
|
-
deleteFiles: () => {
|
|
634
|
-
{
|
|
635
|
-
return deleteFiles;
|
|
636
|
-
}
|
|
637
|
-
},
|
|
638
|
-
deleteFile: () => {
|
|
639
|
-
{
|
|
640
|
-
return deleteFile;
|
|
641
|
-
}
|
|
642
|
-
},
|
|
643
|
-
deleteEmptyFolders: () => {
|
|
644
|
-
{
|
|
645
|
-
return deleteEmptyFolders;
|
|
646
|
-
}
|
|
647
|
-
},
|
|
648
|
-
deleteEmptyFolder: () => {
|
|
649
|
-
{
|
|
650
|
-
return deleteEmptyFolder;
|
|
651
|
-
}
|
|
652
|
-
},
|
|
653
|
-
del: () => {
|
|
654
|
-
{
|
|
655
|
-
return del;
|
|
656
|
-
}
|
|
657
|
-
},
|
|
658
|
-
deflateSync: () => {
|
|
659
|
-
{
|
|
660
|
-
return deflateSync;
|
|
661
|
-
}
|
|
662
|
-
},
|
|
663
|
-
decompress: () => {
|
|
664
|
-
{
|
|
665
|
-
return decompress;
|
|
666
|
-
}
|
|
667
|
-
},
|
|
668
|
-
createFolder: () => {
|
|
669
|
-
{
|
|
670
|
-
return createFolder;
|
|
671
|
-
}
|
|
672
|
-
},
|
|
673
|
-
copyFolder: () => {
|
|
674
|
-
{
|
|
675
|
-
return copyFolder;
|
|
676
|
-
}
|
|
677
|
-
},
|
|
678
|
-
copyFile: () => {
|
|
679
|
-
{
|
|
680
|
-
return copyFile;
|
|
681
|
-
}
|
|
682
|
-
},
|
|
683
|
-
copy: () => {
|
|
684
|
-
{
|
|
685
|
-
return copy;
|
|
686
|
-
}
|
|
687
|
-
},
|
|
688
|
-
compress: () => {
|
|
689
|
-
{
|
|
690
|
-
return compress;
|
|
691
|
-
}
|
|
692
|
-
},
|
|
693
|
-
archive: () => {
|
|
694
|
-
{
|
|
695
|
-
return archive;
|
|
696
|
-
}
|
|
697
|
-
},
|
|
698
|
-
_dirname: () => {
|
|
699
|
-
{
|
|
700
|
-
return _dirname;
|
|
701
|
-
}
|
|
702
|
-
}
|
|
423
|
+
zip: () => zip,
|
|
424
|
+
writeTextFile: () => writeTextFile,
|
|
425
|
+
writeJsonFile: () => writeJsonFile,
|
|
426
|
+
writeFileSync: () => writeFileSync,
|
|
427
|
+
writeFile: () => writeFile,
|
|
428
|
+
watchFile: () => watchFile,
|
|
429
|
+
updateConfigFile: () => updateConfigFile,
|
|
430
|
+
unzip: () => unzip,
|
|
431
|
+
unarchive: () => unarchive,
|
|
432
|
+
setVisibility: () => setVisibility,
|
|
433
|
+
rename: () => rename,
|
|
434
|
+
readTextFile: () => readTextFile,
|
|
435
|
+
readPackageJson: () => readPackageJson,
|
|
436
|
+
readJsonFile: () => readJsonFile,
|
|
437
|
+
readFileSync: () => readFileSync,
|
|
438
|
+
put: () => put,
|
|
439
|
+
move: () => move,
|
|
440
|
+
mkdirSync: () => mkdirSync,
|
|
441
|
+
isFolder: () => isFolder,
|
|
442
|
+
isFile: () => isFile,
|
|
443
|
+
isDirectoryEmpty: () => isDirectoryEmpty,
|
|
444
|
+
isDirectory: () => isDirectory,
|
|
445
|
+
isDir: () => isDir,
|
|
446
|
+
inflateSync: () => inflateSync,
|
|
447
|
+
helpers: () => helpers,
|
|
448
|
+
hasFunctions: () => hasFunctions,
|
|
449
|
+
hasFiles: () => hasFiles,
|
|
450
|
+
hasComponents: () => hasComponents,
|
|
451
|
+
gzipSync: () => gzipSync,
|
|
452
|
+
gunzipSync: () => gunzipSync,
|
|
453
|
+
getFolders: () => getFolders,
|
|
454
|
+
getFiles: () => getFiles,
|
|
455
|
+
get: () => get,
|
|
456
|
+
fsWatch: () => fsWatch,
|
|
457
|
+
fs: () => fs,
|
|
458
|
+
folders: () => folders,
|
|
459
|
+
files: () => files,
|
|
460
|
+
existsSync: () => existsSync,
|
|
461
|
+
exists: () => exists,
|
|
462
|
+
doesNotExist: () => doesNotExist,
|
|
463
|
+
doesFolderExist: () => doesFolderExist,
|
|
464
|
+
doesExist: () => doesExist,
|
|
465
|
+
deleteGlob: () => deleteGlob,
|
|
466
|
+
deleteFolder: () => deleteFolder,
|
|
467
|
+
deleteFiles: () => deleteFiles,
|
|
468
|
+
deleteFile: () => deleteFile,
|
|
469
|
+
deleteEmptyFolders: () => deleteEmptyFolders,
|
|
470
|
+
deleteEmptyFolder: () => deleteEmptyFolder,
|
|
471
|
+
del: () => del,
|
|
472
|
+
deflateSync: () => deflateSync,
|
|
473
|
+
decompress: () => decompress,
|
|
474
|
+
createFolder: () => createFolder,
|
|
475
|
+
copyFolder: () => copyFolder,
|
|
476
|
+
copyFile: () => copyFile,
|
|
477
|
+
copy: () => copy,
|
|
478
|
+
compress: () => compress,
|
|
479
|
+
archive: () => archive,
|
|
480
|
+
_dirname: () => _dirname
|
|
703
481
|
});
|
|
704
482
|
|
|
705
483
|
// src/move.ts
|
|
@@ -765,6 +543,7 @@ export {
|
|
|
765
543
|
writeJsonFile,
|
|
766
544
|
writeFileSync,
|
|
767
545
|
writeFile,
|
|
546
|
+
watchFile,
|
|
768
547
|
updateConfigFile,
|
|
769
548
|
unzip,
|
|
770
549
|
unarchive,
|
|
@@ -795,6 +574,7 @@ export {
|
|
|
795
574
|
getFolders,
|
|
796
575
|
getFiles,
|
|
797
576
|
get,
|
|
577
|
+
fsWatch,
|
|
798
578
|
fs,
|
|
799
579
|
folders,
|
|
800
580
|
files,
|
|
@@ -820,3 +600,6 @@ export {
|
|
|
820
600
|
archive,
|
|
821
601
|
_dirname
|
|
822
602
|
};
|
|
603
|
+
|
|
604
|
+
//# debugId=27105D11366120D564756E2164756E21
|
|
605
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/files.ts", "../src/fs.ts", "../src/folders.ts", "../src/hash.ts", "../src/helpers.ts", "../src/copy.ts", "../src/glob.ts", "../src/delete.ts", "../src/zip.ts", "../src/move.ts", "../src/visibility.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { contains } from '@stacksjs/arrays'\nimport { dirname, join, path as p } from '@stacksjs/path'\nimport { createFolder, isFolder } from '@stacksjs/storage'\nimport { detectIndent, detectNewline } from '@stacksjs/strings'\nimport type { JsonFile, PackageJson, TextFile } from '@stacksjs/types'\nimport { fs, existsSync } from './fs'\n\n/**\n * Reads a JSON file and returns the parsed data.\n */\nexport async function readJsonFile(name: string, cwd?: string): Promise<JsonFile> {\n const file = await readTextFile(name, cwd)\n const data = JSON.parse(file.data)\n const indent = detectIndent(file.data).indent\n const newline = detectNewline(file.data)\n\n return { ...file, data, indent, newline }\n}\n\n/**\n * Reads a package.json file and returns the parsed data.\n */\nexport async function readPackageJson(name: string, cwd?: string) {\n const file = await readJsonFile(name, cwd)\n return file.data as PackageJson\n}\n\n/**\n * Writes the given text to the specified file.\n */\nexport async function writeFile(path: string, data: any): Promise<number> {\n // export async function writeFile(path: Path, data: Data): Promise<number> {\n if (typeof path === 'string') {\n const dirPath = dirname(path)\n if (!(await existsSync(dirPath))) await createFolder(dirPath)\n\n return await Bun.write(Bun.file(path), data)\n }\n\n return await Bun.write(path, data)\n}\n\n/**\n * Writes the given data to the specified JSON file.\n */\nexport async function writeJsonFile(file: JsonFile): Promise<number> {\n let json = JSON.stringify(file.data, undefined, file.indent)\n\n if (file.newline) json += file.newline\n\n return writeTextFile({ ...file, data: json })\n}\n\n/**\n * Reads a text file and returns its contents.\n */\nexport function readTextFile(name: string, cwd?: string): Promise<TextFile> {\n return new Promise((resolve, reject) => {\n let filePath: string\n\n if (cwd) filePath = join(cwd, name)\n else filePath = name\n\n fs.readFile(filePath, 'utf8', (err, text) => {\n if (err) {\n reject(err)\n } else {\n resolve({\n path: filePath,\n data: text,\n })\n }\n })\n })\n}\n\n/**\n * Writes the given text to the specified file.\n */\nexport async function writeTextFile(file: TextFile): Promise<number> {\n return await Bun.write(file.path, file.data)\n}\n\n/**\n * Determine whether a path exists.\n */\nexport function isFile(path: string): boolean {\n return fs.existsSync(path)\n}\n\nexport function doesExist(path: string): boolean {\n return !isFile(path) || !isFolder(path)\n}\n\nexport function doesNotExist(path: string): boolean {\n return !isFile(path) && !isFolder(path)\n}\n\n/**\n * Determine whether a folder has any files in it.\n */\nexport function hasFiles(folder: string): boolean {\n try {\n return fs.readdirSync(folder).length > 0\n } catch (err) {\n return false\n }\n}\n\nexport function hasComponents(): boolean {\n return hasFiles(p.componentsPath())\n}\n\nexport function hasFunctions(): boolean {\n return hasFiles(p.functionsPath())\n}\n\nexport function deleteFiles(dir: string, exclude: string[] = []) {\n if (fs.existsSync(dir)) {\n fs.readdirSync(dir).forEach((file) => {\n const p = join(dir, file)\n if (fs.statSync(p).isDirectory()) {\n if (fs.readdirSync(p).length === 0) fs.rmSync(p, { recursive: true, force: true })\n else deleteFiles(p, exclude)\n } else if (!contains(p, exclude)) {\n fs.rmSync(p)\n }\n })\n }\n}\n\nexport function getFiles(dir: string, exclude: string[] = []): string[] {\n let results: string[] = []\n const list = fs.readdirSync(dir)\n\n list.forEach((file) => {\n file = join(dir, file)\n const stat = fs.statSync(file)\n\n if (stat.isDirectory()) results = results.concat(getFiles(file, exclude))\n else if (!contains(file, exclude)) results.push(file)\n })\n\n return results\n}\n\nexport function put(path: string, contents: string) {\n const dirPath = dirname(path)\n\n if (!fs.existsSync(dirPath)) fs.mkdirSync(dirPath, { recursive: true })\n\n fs.writeFileSync(path, contents, 'utf-8')\n}\n\nexport async function get(path: string): Promise<string> {\n return Bun.file(path).text()\n}\n\nexport const files = {\n readJsonFile,\n readPackageJson,\n readTextFile,\n writeJsonFile,\n writeTextFile,\n isFile,\n hasFiles,\n hasComponents,\n hasFunctions,\n deleteFiles,\n getFiles,\n put,\n get,\n}\n",
|
|
6
|
+
"import * as fs from 'fs-extra'\nimport { pathExists as existsSync, watch as fsWatch, mkdirSync, readFileSync, watchFile, writeFileSync } from 'fs-extra'\n\nexport async function exists(path: string): Promise<boolean> {\n return await existsSync(path)\n}\n\nexport { fs, existsSync, mkdirSync, writeFileSync, readFileSync, fsWatch, watchFile }\n",
|
|
7
|
+
"import { join } from '@stacksjs/path'\nimport { fs } from './fs'\n\n/**\n * Determine whether a path is a folder.\n */\nexport function isFolder(path: string): boolean {\n try {\n return fs.statSync(path).isDirectory()\n } catch {\n return false\n }\n}\n\nexport function isDirectory(path: string): boolean {\n return isFolder(path)\n}\n\nexport function isDir(path: string): boolean {\n return isFolder(path)\n}\n\nexport function doesFolderExist(path: string) {\n return fs.existsSync(path)\n}\n\nexport function createFolder(dir: string): Promise<void> {\n return new Promise((resolve, reject) => {\n fs.mkdirs(dir, (err: any) => {\n if (err) reject(err)\n else resolve()\n })\n })\n}\n\nexport function getFolders(dir: string): string[] {\n return fs.readdirSync(dir).filter((file) => {\n return fs.statSync(join(dir, file)).isDirectory()\n })\n}\n\nexport const folders = {\n isFolder,\n doesFolderExist,\n createFolder,\n getFolders,\n}\n",
|
|
8
|
+
"import type { Hash } from 'node:crypto'\nimport { createHash } from 'node:crypto'\nimport { path as p } from '@stacksjs/path'\nimport { fs } from './fs'\n\nexport function hashFileOrDirectory(path: string, hash: Hash): void {\n // Check if the path exists before proceeding\n if (!fs.existsSync(path)) {\n console.error(`Path does not exist: ${path}`)\n // Handle the non-existent path as needed (e.g., skip or log)\n return\n }\n\n if (fs.statSync(path).isDirectory()) {\n const files = fs.readdirSync(path)\n for (const file of files) {\n const filePath = p.join(path, file)\n hashFileOrDirectory(filePath, hash)\n }\n } else {\n hash.update(fs.readFileSync(path))\n }\n}\n\nexport function hashDirectory(directory: string): string {\n const hash = createHash('sha256')\n hashFileOrDirectory(directory, hash)\n return hash.digest('hex')\n}\n\nexport function hashPath(path: string): string {\n const hash = createHash('sha256')\n hashFileOrDirectory(path, hash)\n return hash.digest('hex')\n}\n\nexport function hashPaths(paths: string | string[]): string {\n const hash = createHash('sha256')\n const pathsArray = Array.isArray(paths) ? paths : [paths]\n\n for (const path of pathsArray) hashFileOrDirectory(path, hash)\n\n return hash.digest('hex')\n}\n",
|
|
9
|
+
"import { fileURLToPath } from 'node:url'\nimport { dirname } from '@stacksjs/path'\nimport { fs } from './fs'\n\nexport const _dirname = typeof __dirname !== 'undefined' ? __dirname : dirname(fileURLToPath(import.meta.url))\n\nexport function updateConfigFile(filePath: string, newConfig: Record<string, unknown>): Promise<void> {\n return new Promise((resolve, reject) => {\n const config = JSON.parse(fs.readFileSync(filePath, 'utf8')) as Record<string, unknown>\n\n for (const key in newConfig) config[key] = newConfig[key]\n\n try {\n fs.writeFileSync(filePath, JSON.stringify(config, null, 2))\n resolve()\n } catch (error) {\n reject(error)\n }\n })\n}\n\nexport const helpers = {\n _dirname,\n updateConfigFile,\n}\n",
|
|
10
|
+
"import { contains } from '@stacksjs/arrays'\nimport { join } from '@stacksjs/path'\nimport { fs } from './fs'\n\nexport function copy(src: string | string[], dest: string, exclude: string[] = []): void {\n if (Array.isArray(src)) {\n src.forEach((file) => {\n copy(file, dest, exclude)\n })\n } else {\n if (fs.statSync(src).isDirectory()) copyFolder(src, dest, exclude)\n else copyFile(src, dest)\n }\n}\n\nexport function copyFile(src: string, dest: string): void {\n fs.copyFileSync(src, dest)\n}\n\nexport function copyFolder(src: string, dest: string, exclude: string[] = []): void {\n if (!fs.existsSync(dest)) fs.mkdirSync(dest, { recursive: true })\n\n if (fs.existsSync(src)) {\n fs.readdirSync(src).forEach((file) => {\n if (!contains(join(src, file), exclude)) {\n const srcPath = join(src, file)\n const destPath = join(dest, file)\n\n if (fs.statSync(srcPath).isDirectory()) copyFolder(srcPath, destPath, exclude)\n else fs.copyFileSync(srcPath, destPath)\n }\n })\n }\n}\n",
|
|
11
|
+
"export { default as glob } from 'fast-glob'\n",
|
|
12
|
+
"import { italic, log } from '@stacksjs/cli'\nimport type { Result } from '@stacksjs/error-handling'\nimport { err, handleError, ok } from '@stacksjs/error-handling'\nimport { join } from '@stacksjs/path'\nimport { isFile } from './files'\nimport { isFolder } from './folders'\nimport { fs } from './fs'\nimport { glob } from './glob'\n\nexport function deleteFolder(path: string): Promise<Result<string, Error>> {\n return new Promise((resolve, reject) => {\n try {\n if (isFolder(path)) {\n fs.rmSync(path, { recursive: true, force: true })\n return resolve(ok(`Deleted ${path}`))\n }\n\n return resolve(ok(`Path ${path} was not a directory`))\n } catch (error) {\n return reject(err(error))\n }\n })\n}\n\nexport async function isDirectoryEmpty(path: string): Promise<Result<boolean, Error>> {\n return new Promise((resolve, reject) => {\n try {\n if (fs.statSync(path).isDirectory()) {\n if (fs.readdirSync(path).length === 0) return resolve(ok(true))\n return resolve(ok(false))\n }\n\n return resolve(ok(false))\n } catch (error) {\n return reject(err(error))\n }\n })\n}\n\nexport async function deleteEmptyFolder(path: string): Promise<Result<string, Error>> {\n return new Promise((resolve, reject) => {\n try {\n if (fs.statSync(path).isDirectory()) {\n if (fs.readdirSync(path).length === 0) {\n fs.rmSync(path, { recursive: true, force: true })\n return resolve(ok(`Deleted ${path}`))\n }\n\n return resolve(ok(`Path ${path} was not empty`))\n }\n\n return resolve(ok(`Path ${path} was not a directory`))\n } catch (error) {\n return reject(err(error))\n }\n })\n}\n\nexport async function deleteEmptyFolders(dir: string): Promise<Result<string, Error>> {\n try {\n if (!fs.existsSync(dir)) return ok(`Path ${dir} does not exist`)\n\n const files = fs.readdirSync(dir)\n for (const file of files) {\n const p = join(dir, file)\n if (isFolder(p)) {\n if (fs.readdirSync(p).length === 0) fs.rmSync(p, { recursive: true, force: true })\n else await deleteEmptyFolders(p)\n }\n }\n\n return ok(`Deleted empty folders located in ${dir}`)\n } catch (error: any) {\n return err(error)\n }\n}\n\nexport function deleteFile(path: string): Promise<Result<string, Error>> {\n return new Promise((resolve, reject) => {\n try {\n if (isFile(path)) {\n fs.rmSync(path, { recursive: true, force: true })\n return resolve(ok(`Deleted ${path}`))\n }\n\n return resolve(ok(`Path ${path} was not a file`))\n } catch (error) {\n return reject(err(error))\n }\n })\n}\n\nexport async function deleteGlob(path: string): Promise<Result<string, Error>> {\n if (!path.includes('*')) return err(handleError(`Path ${path} does not contain a glob`))\n\n const directories = await glob([path], { onlyDirectories: true })\n\n for (const directory of directories) {\n const result = await deleteFolder(directory)\n if (result.isErr()) {\n log.error(result.error)\n return result\n }\n\n log.info(`Deleted ${italic(directory)}`)\n }\n\n return ok(`Deleted ${directories.length} directories`)\n}\n\nexport async function del(path: string): Promise<Result<string, Error>> {\n if (isFile(path)) return await deleteFile(path)\n\n if (isFolder(path)) return await deleteFolder(path)\n\n if (path.includes('*')) return await deleteGlob(path)\n\n return err(handleError(`Path ${path} cannot be deleted due to an unhandled condition. Please report this issue.`))\n}\n",
|
|
13
|
+
"import { runCommand } from '@stacksjs/cli'\nimport type { ZlibCompressionOptions } from 'bun'\n\ninterface ZipOptions {\n cwd?: string\n}\n\nexport async function zip(from: string | string[], to?: string, options?: ZipOptions) {\n const toPath = to || 'archive.zip'\n const fromPath = Array.isArray(from) ? from.join(' ') : from\n\n if (Array.isArray(from)) return runCommand(`zip -r ${toPath} ${fromPath}`, options)\n\n return runCommand(`zip -r ${to} ${from}`, options)\n}\n\nexport async function unzip(paths: string | string[]) {\n if (Array.isArray(paths)) return runCommand(`unzip ${paths.join(' ')}`)\n\n return runCommand(`unzip ${paths}`)\n}\n\nexport function archive(paths: string | string[]) {\n return zip(paths)\n}\n\nexport function unarchive(paths: string | string[]) {\n return unzip(paths)\n}\n\nexport function compress(paths: string[]) {\n return zip(paths)\n}\n\nexport function decompress(paths: string | string[]) {\n return unzip(paths)\n}\n\nexport function gzipSync(data: Uint8Array, options?: ZlibCompressionOptions) {\n return Bun.gzipSync(data, options) // buffer extends Uint8Array\n}\n\nexport function gunzipSync(data: Uint8Array) {\n return Bun.gunzipSync(data) // decompressed\n}\n\nexport function deflateSync(data: Uint8Array, options?: ZlibCompressionOptions) {\n return Bun.deflateSync(data, options) // compressed\n}\n\nexport function inflateSync(data: Uint8Array) {\n return Bun.inflateSync(data) // decompressed\n}\n",
|
|
14
|
+
"import { type Result, err, handleError, ok } from '@stacksjs/error-handling'\nimport { log } from '@stacksjs/logging'\nimport { path } from '@stacksjs/path'\nimport { fs } from './fs'\n\ninterface MoveOptions {\n // glob?: glob.Options\n overwrite?: boolean\n}\n\nexport async function move(\n src: string | string[],\n dest: string,\n options?: MoveOptions,\n): Promise<Result<{ message: string }, Error>> {\n try {\n if (Array.isArray(src)) {\n const operations = src.map(async (file) => {\n const from = file\n const to = path.resolve(dest, path.basename(file))\n const result = await rename(from, to, options)\n\n if (result.isErr()) return log.error(result.error)\n })\n\n await Promise.all(operations)\n\n return ok({ message: 'Files moved successfully' })\n }\n\n const from = src\n const to = dest\n const result = await rename(from, to, options)\n\n if (result.isErr()) {\n log.error(result.error)\n return err(handleError(result.error))\n }\n\n return ok({ message: 'File moved successfully' })\n } catch (error: any) {\n return err(handleError(error))\n }\n}\n\nexport async function rename(\n from: string,\n to: string,\n options?: MoveOptions,\n): Promise<Result<{ message: string }, Error>> {\n return new Promise((resolve, reject) => {\n try {\n // Check if the \"to\" directory exists\n const dir = path.dirname(to)\n if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true })\n\n // Ensure the \"from\" file exists\n if (!fs.existsSync(from)) return reject(err(new Error(`File or directory does not exist: ${from}`)))\n\n // Ensure the \"to\" file does not exist\n if (fs.existsSync(to)) {\n if (!options?.overwrite) return reject(err(new Error(`File or directory already exists: ${to}`)))\n\n fs.unlinkSync(to)\n }\n\n // \"Move\" the file\n fs.renameSync(from, to)\n\n return resolve(ok({ message: 'File moved successfully' }))\n } catch (error: any) {\n if (error.code === 'ENOENT') log.error('File or directory does not exist\\n\\n', error)\n else log.error(error)\n\n return reject(err(new Error(error)))\n }\n })\n}\n",
|
|
15
|
+
"// type Visibility = 'public' | 'private'\n\n// export function setVisibility(path: string, visibility: Visibility) {\nexport function setVisibility() {\n return 'wip'\n}\n"
|
|
16
|
+
],
|
|
17
|
+
"mappings": "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",
|
|
18
|
+
"debugId": "27105D11366120D564756E2164756E21",
|
|
19
|
+
"names": []
|
|
20
|
+
}
|
package/package.json
CHANGED
package/src/fs.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as fs from 'fs-extra'
|
|
2
|
-
import { pathExists as existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs-extra'
|
|
2
|
+
import { pathExists as existsSync, watch as fsWatch, mkdirSync, readFileSync, watchFile, writeFileSync } from 'fs-extra'
|
|
3
3
|
|
|
4
4
|
export async function exists(path: string): Promise<boolean> {
|
|
5
5
|
return await existsSync(path)
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
export { fs, existsSync, mkdirSync, writeFileSync, readFileSync }
|
|
8
|
+
export { fs, existsSync, mkdirSync, writeFileSync, readFileSync, fsWatch, watchFile }
|