import path from 'path';
import { error } from '@bb-cli/base';
const DIR_MAP = {
container: 'containers',
contenttype: 'contenttypes',
feature: 'features',
page: 'pages',
template: 'templates',
widget: 'widgets',
};
const typeDir = (type) => {
const dir = DIR_MAP[type];
if (!dir) {
throw error({
type: 'E_UNKNOWN_ITEM_TYPE',
message: `Unknown item type ${type}`,
});
}
return dir;
};
const cxp5ItemPaths = ({ name, type, files, srcDir }, context) =>
files.reduce((accum, file) => {
accum[path.join(srcDir, file)] = path.join( // eslint-disable-line no-param-reassign
typeDir(type),
context,
name,
file
);
return accum;
}, {});
const cxp6ItemPaths = ({ name, files, srcDir }) =>
files.reduce((accum, file) => {
accum[path.join(srcDir, file)] = path.join( // eslint-disable-line no-param-reassign
name,
file
);
return accum;
}, {});
const packagePaths = (itemMap) => (items, context) =>
items.map((item) => itemMap(item, context))
.reduce((accum, paths) => Object.assign(accum, paths), {});
const cxp5Statics = packagePaths(cxp5ItemPaths);
const cxp6Statics = packagePaths(cxp6ItemPaths);
export {
cxp5ItemPaths,
cxp6ItemPaths,
cxp5Statics,
cxp6Statics,
};
|