@jsenv/filesystem 4.5.1 → 4.6.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/filesystem",
3
- "version": "4.5.1",
3
+ "version": "4.6.1",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
package/src/main.js CHANGED
@@ -36,9 +36,11 @@ export { ensureParentDirectoriesSync } from "./read_write/ensure_parent_director
36
36
  export { readDirectorySync } from "./read_write/read_directory_sync.js";
37
37
  export { getRealFileSystemUrlSync } from "./read_write/get_real_file_system_url_sync.js";
38
38
  export { readSymbolicLinkSync } from "./read_write/read_symbolic_link_sync.js";
39
+ export { writeSymbolicLinkSync } from "./read_write/write_symbolic_link_sync.js";
39
40
  export { writeDirectorySync } from "./read_write/write_directory_sync.js";
40
41
  export { readFileStructureSync } from "./read_write/read_file_structure_sync.js";
41
42
  export { writeFileStructureSync } from "./read_write/write_file_structure_sync.js";
43
+ export { saveDirectoryContentSync } from "./read_write/save_directory_content_sync.js";
42
44
 
43
45
  // stat
44
46
  export { readEntryStat } from "./read_write/stat/read_entry_stat.js";
@@ -2,9 +2,12 @@ import { readdirSync, statSync, readFileSync } from "node:fs";
2
2
  import { urlToRelativeUrl } from "@jsenv/urls";
3
3
  import { CONTENT_TYPE } from "@jsenv/utils/src/content_type/content_type.js";
4
4
 
5
+ import { assertAndNormalizeDirectoryUrl } from "../path_and_url/directory_url_validation.js";
5
6
  import { comparePathnames } from "../path_and_url/compare_pathnames.js";
6
7
 
7
8
  export const readFileStructureSync = (directoryUrl) => {
9
+ directoryUrl = assertAndNormalizeDirectoryUrl(directoryUrl);
10
+
8
11
  const fileStructure = {};
9
12
  const fileStructureNotOrdered = {};
10
13
  const visitDirectory = (url) => {
@@ -0,0 +1,11 @@
1
+ import { readFileStructureSync } from "./read_file_structure_sync.js";
2
+ import { writeFileStructureSync } from "./write_file_structure_sync.js";
3
+
4
+ export const saveDirectoryContentSync = (directoryUrl) => {
5
+ const fileStructure = readFileStructureSync(directoryUrl);
6
+ return {
7
+ restore: () => {
8
+ writeFileStructureSync(directoryUrl, fileStructure);
9
+ },
10
+ };
11
+ };