'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

var fs_fs = require('../fs/fs.js');
var nodejs_fs = require('../nodejs/fs.js');
var nodejs_path = require('../nodejs/path.js');
require('../nodejs/crypto.js');
require('../nodejs/os.js');

/**
 * 获取复制目标路径
 * @param copySourceDir 复制源目录，注意，这里是绝对路径
 * @param domainDir 域名目录，注意，这里是绝对路径
 * @returns 要复制的列表，注意，这里是相对路径，如 ['os-x/en', 'os-x/zh-hant']
 * @example
 * ```ts
 * // 假设 /tmp/dist/os-x 下有 en、zh-hans、zh-hant 三个语言目录
 * getCopyTargetDirs(
 *   '/tmp/dist/os-x/zh-hans',
 *   '/tmp/dist',
 * );
 * // ['os-x/en', 'os-x/zh-hant']
 *
 * // 仅保留指定前缀
 * getCopyTargetDirs(
 *   '/tmp/dist/os-x/zh-hans',
 *   '/tmp/dist',
 *   { copyTargetPrefix: 'os-x/zh-' },
 * );
 * // ['os-x/zh-hant']
 * ```
 */
function getCopyTargetDirs(copySourceDir, domainDir, options) {
  var baseDir = nodejs_path.getPath().dirname(copySourceDir);
  var list = (nodejs_fs.getFs().readdirSync(baseDir) || []).map(function (item) {
    return nodejs_path.getPath().resolve(baseDir, item);
  }).filter(function (item) {
    return fs_fs.isDirectory(item);
  });
  var copyTargetDirs = list.filter(function (item) {
    return item !== copySourceDir;
  });
  var result = copyTargetDirs.map(function (item) {
    return item.replace(domainDir, '').replace(/^\//, '');
  });
  if (options === null || options === void 0 ? void 0 : options.copyTargetPrefix) {
    result = result.filter(function (item) {
      return item.startsWith(options.copyTargetPrefix);
    });
  }
  return result;
}

exports.getCopyTargetDirs = getCopyTargetDirs;
