docs: function babelTransform(srcFile, destFile) {
      return new Promise((resolve, reject) => {
          // copy src file to local first
          const localSrcFile = `${destFile}.local`;
  
          // if file exist, then delete it
          Promise.resolve(existsFile(localSrcFile, READ_WRITE_PERMISSION))
            .then((value) => {
                if (!value) {
                    return true;
                }
  
                return fsPromise.unlinkAsync(localSrcFile);
            })
            .then(() => fsPromise.linkAsync(srcFile, localSrcFile))
            .then(() => {
                babel.transformFile(localSrcFile, (error, result) => {
                    if (error) {
                        console.error(`Error in babel compiling ${srcFile} - ${error}`);
                        reject(error);
                        return;
                    }
  
                    // if file exist, then delete it
                    Promise.resolve(existsFile(destFile, READ_WRITE_PERMISSION))
                      .then((value) => {
                          if (!value) {
                              return true;
                          }
  
                          return fsPromise.unlinkAsync(destFile);
                      })
                      .then(() => {
                          const stream = FS.createWriteStream(destFile);
  
                          stream.on('finish', () => {
                              resolve(true);
                          });
  
                          stream.write(result.code);
                          stream.end();
                      });
                });
            });
      });
  }