bingo-systems 0.6.0 → 0.7.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.
@@ -1,5 +1,6 @@
1
1
  import { CreatedFileMetadata } from "bingo-fs";
2
2
  export declare function createWritingFileSystem(): {
3
+ removeFile: (filePath: string) => Promise<void>;
3
4
  writeDirectory: (directoryPath: string) => Promise<undefined>;
4
5
  writeFile: (filePath: string, contents: string, options?: CreatedFileMetadata) => Promise<void>;
5
6
  glob: import("./types.js").Glob;
@@ -1 +1 @@
1
- {"version":3,"file":"createWritingFileSystem.d.ts","sourceRoot":"","sources":["../../src/files/createWritingFileSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAK/C,wBAAgB,uBAAuB;oCAGC,MAAM;0BAGjC,MAAM,YACN,MAAM,YACN,mBAAmB;;;;EAoB/B"}
1
+ {"version":3,"file":"createWritingFileSystem.d.ts","sourceRoot":"","sources":["../../src/files/createWritingFileSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAK/C,wBAAgB,uBAAuB;2BAGR,MAAM;oCAGG,MAAM;0BAGjC,MAAM,YACN,MAAM,YACN,mBAAmB;;;;EAoB/B"}
@@ -3,6 +3,9 @@ import { createReadingFileSystem } from "./createReadingFileSystem.js";
3
3
  export function createWritingFileSystem() {
4
4
  return {
5
5
  ...createReadingFileSystem(),
6
+ removeFile: async (filePath) => {
7
+ await fs.rm(filePath, { force: true });
8
+ },
6
9
  writeDirectory: async (directoryPath) => void (await fs.mkdir(directoryPath, { recursive: true })),
7
10
  writeFile: async (filePath, contents, options) => {
8
11
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"createWritingFileSystem.js","sourceRoot":"","sources":["../../src/files/createWritingFileSystem.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,MAAM,UAAU,uBAAuB;IACtC,OAAO;QACN,GAAG,uBAAuB,EAAE;QAC5B,cAAc,EAAE,KAAK,EAAE,aAAqB,EAAE,EAAE,CAC/C,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,SAAS,EAAE,KAAK,EACf,QAAgB,EAChB,QAAgB,EAChB,OAA6B,EAC5B,EAAE;YACH,IAAI,CAAC;gBACJ,+DAA+D;gBAC/D,0CAA0C;gBAC1C,+CAA+C;gBAC/C,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACR,6CAA6C;gBAC7C,6DAA6D;gBAC7D,4DAA4D;YAC7D,CAAC;YAED,MAAM,EAAE,CAAC,SAAS,CACjB,QAAQ,EACR,QAAQ,EACR,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CACjD,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"createWritingFileSystem.js","sourceRoot":"","sources":["../../src/files/createWritingFileSystem.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,MAAM,UAAU,uBAAuB;IACtC,OAAO;QACN,GAAG,uBAAuB,EAAE;QAC5B,UAAU,EAAE,KAAK,EAAE,QAAgB,EAAE,EAAE;YACtC,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,aAAqB,EAAE,EAAE,CAC/C,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,SAAS,EAAE,KAAK,EACf,QAAgB,EAChB,QAAgB,EAChB,OAA6B,EAC5B,EAAE;YACH,IAAI,CAAC;gBACJ,+DAA+D;gBAC/D,0CAA0C;gBAC1C,+CAA+C;gBAC/C,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACR,6CAA6C;gBAC7C,6DAA6D;gBAC7D,4DAA4D;YAC7D,CAAC;YAED,MAAM,EAAE,CAAC,SAAS,CACjB,QAAQ,EACR,QAAQ,EACR,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CACjD,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -27,6 +27,13 @@ describe("createWritingFileSystem", () => {
27
27
  });
28
28
  });
29
29
  });
30
+ describe("removeFile", () => {
31
+ it("removes with force: true", async () => {
32
+ const system = createWritingFileSystem();
33
+ await system.removeFile(filePath);
34
+ expect(mockRm).toHaveBeenCalledWith(filePath, { force: true });
35
+ });
36
+ });
30
37
  describe("writeFile", () => {
31
38
  it("writes without mode when options does not exist and rm rejects", async () => {
32
39
  mockRm.mockRejectedValueOnce(new Error("Oh no!"));
@@ -1 +1 @@
1
- {"version":3,"file":"createWritingFileSystem.test.js","sourceRoot":"","sources":["../../src/files/createWritingFileSystem.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createWritingFileSystem.test.js","sourceRoot":"","sources":["../../src/files/createWritingFileSystem.test.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,11 @@ export interface ReadingFileSystem {
33
33
  */
34
34
  readFile: ReadFile;
35
35
  }
36
+ /**
37
+ * Removes a file if it exists.
38
+ * @param filePath Path to the file on disk.
39
+ */
40
+ export type RemoveFile = (filePath: string) => Promise<void>;
36
41
  /**
37
42
  * Creates a directory if it doesn't yet exist.
38
43
  * @param directoryPath Path to the directory on disk.
@@ -59,6 +64,10 @@ export interface WriteFileOptions {
59
64
  * APIs to read from and write to a file system.
60
65
  */
61
66
  export interface WritingFileSystem extends ReadingFileSystem {
67
+ /**
68
+ * Removes a file if it exists.
69
+ */
70
+ removeFile: RemoveFile;
62
71
  /**
63
72
  * Creates a directory if it doesn't yet exist.
64
73
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/files/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAEtE;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAEzE;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;IAE7B;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEtE;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,CACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,gBAAgB,KACtB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC3D;;OAEG;IACH,cAAc,EAAE,cAAc,CAAC;IAE/B;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/files/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAEtE;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAEzE;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;IAE7B;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7D;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEtE;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,CACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,gBAAgB,KACtB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC3D;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;IAEvB;;OAEG;IACH,cAAc,EAAE,cAAc,CAAC;IAE/B;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;CACrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bingo-systems",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "File, network, and shell wrapper APIs used by Bingo. 🧰",
5
5
  "homepage": "https://www.create.bingo/build/packages/bingo-systems",
6
6
  "repository": {
@@ -22,7 +22,7 @@
22
22
  "execa": "^9.6.1",
23
23
  "get-github-auth-token": "^0.1.2",
24
24
  "octokit": "^5.0.5",
25
- "bingo-fs": "^0.5.6"
25
+ "bingo-fs": "^0.6.0"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "24.10.1"