@juit/capacitor-updater 0.1.0 → 0.1.2

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/README.md CHANGED
@@ -72,3 +72,6 @@ created during an update with [`updateCapacitor(...)`](#updatecapacitor).
72
72
 
73
73
  This function is also asynchronous and will return a promise to a `boolean`
74
74
  indicating `true` when the path has been persisted.
75
+
76
+ This function will also prune the updates directory from all previous, unused
77
+ updates, preserving only the _current_ update.
package/dist/index.js CHANGED
@@ -61,7 +61,7 @@ async function updateCapacitor(url, progressOrVerbose, maybeVerbose) {
61
61
  path: `${UPDATES_DIRECTORY}/${uuid}`,
62
62
  directory: Directory.Library
63
63
  });
64
- const serverBasePath = new URL(uri, "file:///").pathname;
64
+ const serverBasePath = normalize(uri);
65
65
  log(`Update extracted to "${serverBasePath}"`);
66
66
  progress(1);
67
67
  return () => {
@@ -89,8 +89,29 @@ async function persistUpdates() {
89
89
  directory: Directory.Library,
90
90
  path: UPDATES_DIRECTORY
91
91
  });
92
- const serverBasePathPrefix = new URL(uri, "file:///").pathname;
92
+ const serverBasePathPrefix = normalize(uri);
93
93
  const { path } = await WebView.getServerBasePath();
94
+ let files;
95
+ try {
96
+ const result = await Filesystem.readdir({
97
+ directory: Directory.Library,
98
+ path: UPDATES_DIRECTORY
99
+ });
100
+ files = result.files;
101
+ } catch (error) {
102
+ console.error(`Failed to read updates directory "${UPDATES_DIRECTORY}"`, error);
103
+ files = [];
104
+ }
105
+ for (const file of files) {
106
+ if (file.type !== "directory") continue;
107
+ if (normalize(path) === normalize(file.uri)) continue;
108
+ console.log(`Deleting old update directory "${file.name}"`);
109
+ await Filesystem.rmdir({
110
+ directory: Directory.Library,
111
+ path: `${UPDATES_DIRECTORY}/${file.name}`,
112
+ recursive: true
113
+ });
114
+ }
94
115
  if (path.startsWith(serverBasePathPrefix)) {
95
116
  console.log(`Persisting Capacitor updates from "${path}"`);
96
117
  await WebView.persistServerBasePath();
@@ -100,6 +121,9 @@ async function persistUpdates() {
100
121
  return false;
101
122
  }
102
123
  }
124
+ function normalize(uriOrPath) {
125
+ return new URL(uriOrPath, "file:///").pathname.replaceAll(/\/+/g, "/").replace(/\/+$/, "");
126
+ }
103
127
  export {
104
128
  persistUpdates,
105
129
  updateCapacitor
package/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["data"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juit/capacitor-updater",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Capacitor utility to update an app from a ZIP file",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -29,7 +29,7 @@
29
29
  "@capacitor/filesystem": "^7.0.1"
30
30
  },
31
31
  "devDependencies": {
32
- "@plugjs/build": "^0.6.40"
32
+ "@plugjs/build": "^0.6.41"
33
33
  },
34
34
  "files": [
35
35
  "*.md",