t-comm
Version:
专业、稳定、纯粹的工具库
56 lines (51 loc) • 1.74 kB
JavaScript
;
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;