dit
This commit is contained in:
Vendored
+105
@@ -0,0 +1,105 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
|
||||
var _fs = _interopRequireDefault(require("fs"));
|
||||
|
||||
var _path = _interopRequireDefault(require("path"));
|
||||
|
||||
var _lodash = _interopRequireDefault(require("lodash"));
|
||||
|
||||
var _chalk = _interopRequireDefault(require("chalk"));
|
||||
|
||||
var _createIndexCode = _interopRequireDefault(require("./createIndexCode"));
|
||||
|
||||
var _validateTargetDirectory = _interopRequireDefault(require("./validateTargetDirectory"));
|
||||
|
||||
var _readDirectory = _interopRequireDefault(require("./readDirectory"));
|
||||
|
||||
var _readIndexConfig = _interopRequireDefault(require("./readIndexConfig"));
|
||||
|
||||
var _sortByDepth = _interopRequireDefault(require("./sortByDepth"));
|
||||
|
||||
var _log = _interopRequireDefault(require("./log"));
|
||||
|
||||
var _findIndexFiles = _interopRequireDefault(require("./findIndexFiles"));
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var _default = function _default(directoryPaths) {
|
||||
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
let sortedDirectoryPaths;
|
||||
sortedDirectoryPaths = (0, _sortByDepth.default)(directoryPaths);
|
||||
(0, _log.default)('Target directories', sortedDirectoryPaths);
|
||||
(0, _log.default)('Output file', options.outputFile);
|
||||
|
||||
if (options.updateIndex) {
|
||||
(0, _log.default)('Update index:', options.updateIndex ? _chalk.default.green('true') : _chalk.default.red('false'));
|
||||
} else {
|
||||
(0, _log.default)('Recursive:', options.recursive ? _chalk.default.green('true') : _chalk.default.red('false'));
|
||||
(0, _log.default)('Ignore unsafe:', options.ignoreUnsafe ? _chalk.default.green('true') : _chalk.default.red('false'));
|
||||
(0, _log.default)('Extensions:', _chalk.default.green(options.extensions));
|
||||
}
|
||||
|
||||
if (options.updateIndex || options.recursive) {
|
||||
sortedDirectoryPaths = _lodash.default.map(sortedDirectoryPaths, directory => {
|
||||
return (0, _findIndexFiles.default)(directory, {
|
||||
fileName: options.updateIndex ? options.outputFile || 'index.js' : '*',
|
||||
silent: options.updateIndex || options.ignoreUnsafe
|
||||
});
|
||||
});
|
||||
sortedDirectoryPaths = _lodash.default.flatten(sortedDirectoryPaths);
|
||||
sortedDirectoryPaths = _lodash.default.uniq(sortedDirectoryPaths);
|
||||
sortedDirectoryPaths = (0, _sortByDepth.default)(sortedDirectoryPaths);
|
||||
(0, _log.default)('Updating index files in:', sortedDirectoryPaths.reverse().join(', '));
|
||||
}
|
||||
|
||||
sortedDirectoryPaths = sortedDirectoryPaths.filter(directoryPath => {
|
||||
return (0, _validateTargetDirectory.default)(directoryPath, {
|
||||
outputFile: options.outputFile,
|
||||
silent: options.ignoreUnsafe
|
||||
});
|
||||
});
|
||||
|
||||
_lodash.default.forEach(sortedDirectoryPaths, directoryPath => {
|
||||
let existingIndexCode;
|
||||
const config = (0, _readIndexConfig.default)(directoryPath, options);
|
||||
const siblings = (0, _readDirectory.default)(directoryPath, {
|
||||
config,
|
||||
extensions: options.extensions,
|
||||
ignoreDirectories: options.ignoreDirectories,
|
||||
silent: options.ignoreUnsafe
|
||||
});
|
||||
const indexCode = (0, _createIndexCode.default)(siblings, {
|
||||
banner: options.banner,
|
||||
config
|
||||
});
|
||||
|
||||
const indexFilePath = _path.default.resolve(directoryPath, options.outputFile || 'index.js');
|
||||
|
||||
try {
|
||||
existingIndexCode = _fs.default.readFileSync(indexFilePath, 'utf8');
|
||||
/* eslint-disable no-empty */
|
||||
} catch {}
|
||||
/* eslint-enable no-empty */
|
||||
|
||||
|
||||
_fs.default.writeFileSync(indexFilePath, indexCode);
|
||||
|
||||
if (existingIndexCode && existingIndexCode === indexCode) {
|
||||
(0, _log.default)(indexFilePath, _chalk.default.yellow('[index has not changed]'));
|
||||
} else if (existingIndexCode && existingIndexCode !== indexCode) {
|
||||
(0, _log.default)(indexFilePath, _chalk.default.green('[updated index]'));
|
||||
} else {
|
||||
(0, _log.default)(indexFilePath, _chalk.default.green('[created index]'));
|
||||
}
|
||||
});
|
||||
|
||||
(0, _log.default)('Done');
|
||||
};
|
||||
|
||||
exports.default = _default;
|
||||
//# sourceMappingURL=writeIndexCli.js.map
|
||||
Reference in New Issue
Block a user