]> git.r.bdr.sh - rbdr/blog/blobdiff - lib/remote.js
Add remote management
[rbdr/blog] / lib / remote.js
index d8f73f9325daf2be886495e9efd952e50ed459c9..ad0a4fc77f2a71aa64dd8bd6856957c21708caa3 100644 (file)
@@ -1,32 +1,40 @@
-const { readFile, rm, writeFile } = require('fs/promises');
+import { readFile, writeFile } from 'fs/promises';
+import { rmIfExists } from './utils.js';
+
+import GitStrategy from './remotes/git.js';
 
 const internals = {
   strings: {
     configurationNotFound: 'Remote configuration not set, consult help for more info.'
   },
   strategies: [
-    require('./remotes/git')
+    GitStrategy
   ]
 };
 
-module.exports = {
+export default {
   async add(remoteConfig, remote) {
+
     await writeFile(remoteConfig, remote);
   },
 
   async remove(remoteConfig) {
-    await rm(remoteConfig, { force: true })
+
+    await rmIfExists(remoteConfig);
   },
 
   async syncUp(remoteConfig, blogDirectory) {
-    this._executeMethodOnStrategy(remoteConfig, 'syncUp', blogDirectory);
+
+    await this._executeMethodOnStrategy(remoteConfig, 'syncUp', blogDirectory);
   },
 
   async syncDown(remoteConfig, blogDirectory) {
-    this._executeMethodOnStrategy(remoteConfig, 'syncDown', blogDirectory);
+
+    await this._executeMethodOnStrategy(remoteConfig, 'syncDown', blogDirectory);
   },
 
   async _executeMethodOnStrategy(remoteConfig, method, blogDirectory) {
+
     const remote = await this._ensureConfiguration(remoteConfig);
 
     for (const strategy of internals.strategies) {
@@ -37,6 +45,7 @@ module.exports = {
   },
 
   async _ensureConfiguration(remoteConfig) {
+
     try {
       const configuration = await readFile(remoteConfig, { encoding: 'utf8' });
       return configuration;
@@ -45,4 +54,4 @@ module.exports = {
       throw new Error(internals.strings.configurationNotFound);
     }
   }
-}
+};