|
|
|
const $ = require('dekko');
|
|
|
|
const chalk = require('chalk');
|
|
|
|
const path = require('path');
|
|
|
|
|
|
|
|
function getFileName(filePath) {
|
|
|
|
return filePath.slice(filePath.lastIndexOf(path.sep) + 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
$('lib').isDirectory().hasFile('index.js').hasFile('index.d.ts');
|
|
|
|
|
|
|
|
$('lib/style').isDirectory().hasFile('index.css').hasFile('default.css');
|
|
|
|
|
|
|
|
$('lib/*')
|
|
|
|
.filter(
|
|
|
|
filename =>
|
|
|
|
!filename.endsWith('index.js') &&
|
|
|
|
!filename.endsWith('index.d.ts') &&
|
|
|
|
!filename.endsWith('.map'),
|
|
|
|
)
|
|
|
|
.isDirectory()
|
|
|
|
.filter(
|
|
|
|
filename =>
|
|
|
|
!filename.endsWith('style') && !filename.endsWith('_util') && !filename.endsWith('locale'),
|
|
|
|
)
|
|
|
|
.hasFile('index.js')
|
|
|
|
.hasFile('index.d.ts')
|
|
|
|
.hasDirectory('style');
|
|
|
|
|
|
|
|
$('lib/*/style').hasFile('css.js').hasFile('index.js');
|
|
|
|
|
|
|
|
// locale
|
|
|
|
const filterLocaleFile = filePath => {
|
|
|
|
const fileName = getFileName(filePath);
|
|
|
|
return (
|
|
|
|
!fileName.endsWith('index.js') &&
|
|
|
|
!fileName.endsWith('.d.ts') &&
|
|
|
|
!fileName.endsWith('.map') &&
|
|
|
|
!fileName.endsWith('style') &&
|
|
|
|
!fileName.includes('-') &&
|
|
|
|
!fileName.endsWith('LocaleReceiver.js') &&
|
|
|
|
!fileName.endsWith('context.js')
|
|
|
|
);
|
|
|
|
};
|
|
|
|
const localeFiles = $('lib/locale/*').filter(filterLocaleFile);
|
|
|
|
const localeProviderFiles = $('lib/locale-provider/*').filter(filterLocaleFile);
|
|
|
|
|
|
|
|
function compare(originFiles, targetFiles, targetPath) {
|
|
|
|
originFiles.assert(
|
|
|
|
`not exist in '${targetPath}'. Please use 'scripts/generateLegacyLocale.js' to refresh locale files.`,
|
|
|
|
filePath => {
|
|
|
|
const fileName = getFileName(filePath);
|
|
|
|
|
|
|
|
return targetFiles.filenames.some(targetFilePath => getFileName(targetFilePath) === fileName);
|
|
|
|
},
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
compare(localeFiles, localeProviderFiles, '/locale-provider');
|
|
|
|
compare(localeProviderFiles, localeFiles, '/locale');
|
|
|
|
|
|
|
|
// eslint-disable-next-line no-console
|
|
|
|
console.log(chalk.green('✨ `lib` directory is valid.'));
|