docs: async function mkProxyOrMockFile({dirPath, exclude, targetDir, proxyFolderName,
      mockFolderName, time, interval, isProxy, libPath}) {
  //@formatter:on
      
      const relativePath = dirPath.replace(targetDir, '') || '/';
      const childList = await loadChildList(dirPath, exclude);
  
      const taskList = childList.map(child => {
          return ((async function handleFile() {
              const stat = await Fs.stat(Path.join(dirPath, child));
              if (stat.isFile()) {
                  const fileRelativePath = relativePath + child;
                  const isWs = _.endsWith(child, '-ws.js');
  
                  const factory = {
                      'proxy_api'() {
                          return Render(PROXY_TPL,
                              {note: Common.NOTE, proxyFolderName, fileRelativePath});
                      },
                      'mock_api'() {
                          return Render(MOCK_API_TPL,
                              {note: Common.NOTE, mockFolderName, fileRelativePath, time});
                      },
                      'proxy_ws'() {
                          return Render(PROXY_TPL,
                              {note: Common.NOTE, proxyFolderName, fileRelativePath});
                      },
                      'mock_ws'() {
                          return Render(MOCK_WS_TPL, {
                              note: Common.NOTE,
                              mockFolderName,
                              fileRelativePath,
                              interval
                          });
                      }
                  }[`${isProxy ? 'proxy' : 'mock'}_${isWs ? 'ws' : 'api'}`]();
  
                  await Fs.writeFile(Path.join(libPath, child), factory);
                  return;
              }
  
              if (stat.isDirectory()) {
                  await mkProxyOrMockFile({
                      dirPath: Path.join(dirPath, child), exclude, targetDir, proxyFolderName,
                      mockFolderName, time, interval, isProxy, libPath
                  });
              }
          })());
      });
  
      await Promise.all(taskList);
  }