-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) {
},
async _ensureConfiguration(remoteConfig) {
+
try {
const configuration = await readFile(remoteConfig, { encoding: 'utf8' });
return configuration;
throw new Error(internals.strings.configurationNotFound);
}
}
-}
+};