Split collection config validator.

Also clarify collection validation messages.
This commit is contained in:
Caleb 2017-11-17 20:11:23 -07:00 committed by Shawn Erquhart
parent 864083bc8b
commit db14b9747a

View File

@ -12,12 +12,11 @@ const collections = (state = null, action) => {
case CONFIG_SUCCESS:
return OrderedMap().withMutations((map) => {
(configCollections || []).forEach((configCollection) => {
validateCollection(configCollection);
if (has(configCollection, 'folder')) {
configCollection.type = FOLDER; // eslint-disable-line no-param-reassign
} else if (has(configCollection, 'files')) {
configCollection.type = FILES; // eslint-disable-line no-param-reassign
} else {
throw new Error('Unknown collection type. Collections can be either Folder based or File based. Please verify your site configuration');
}
map.set(configCollection.name, fromJS(configCollection));
});
@ -27,6 +26,13 @@ const collections = (state = null, action) => {
}
};
function validateCollection(configCollection) {
const collectionName = get(configCollection, 'name');
if (!has(configCollection, 'folder') && !has(configCollection, 'files')) {
throw new Error(`Unknown collection type for collection "${ collectionName }". Collections can be either Folder based or File based.`);
}
}
const selectors = {
[FOLDER]: {
entryExtension(collection) {