feat: gatherFlat
This commit is contained in:
parent
09d1e03da5
commit
442826f287
|
@ -13,6 +13,17 @@ const debug = D('@latus/core/gather');
|
||||||
|
|
||||||
export const hotGathered = new Map();
|
export const hotGathered = new Map();
|
||||||
|
|
||||||
|
const transformPath = (transformer, path) => {
|
||||||
|
const parts = dirname(path).split('/');
|
||||||
|
if ('.' === parts[0]) {
|
||||||
|
parts.shift();
|
||||||
|
}
|
||||||
|
if ('index' === parts[parts.length - 1]) {
|
||||||
|
parts.pop();
|
||||||
|
}
|
||||||
|
return transformer(join(parts.join('-'), basename(path, extname(path))));
|
||||||
|
};
|
||||||
|
|
||||||
export const decorateWithLatus = (
|
export const decorateWithLatus = (
|
||||||
context,
|
context,
|
||||||
{
|
{
|
||||||
|
@ -26,20 +37,30 @@ export const decorateWithLatus = (
|
||||||
`decorateWithLatus: require(${path}).default is not a function (from: ${context.id})`,
|
`decorateWithLatus: require(${path}).default is not a function (from: ${context.id})`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
const parts = dirname(path).split('/');
|
const key = transformPath(transformer, path);
|
||||||
if ('.' === parts[0]) {
|
|
||||||
parts.shift();
|
|
||||||
}
|
|
||||||
if ('index' === parts[parts.length - 1]) {
|
|
||||||
parts.pop();
|
|
||||||
}
|
|
||||||
const key = transformer(join(parts.join('-'), basename(path, extname(path))));
|
|
||||||
// eslint-disable-next-line no-param-reassign
|
// eslint-disable-next-line no-param-reassign
|
||||||
Gathered[key] = M(Gathered[key], latus);
|
Gathered[key] = M(Gathered[key], latus);
|
||||||
});
|
});
|
||||||
return Gathered;
|
return Gathered;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const gatherFlat = (
|
||||||
|
context,
|
||||||
|
{
|
||||||
|
transformer = camelCase,
|
||||||
|
} = {},
|
||||||
|
) => () => (
|
||||||
|
Object.fromEntries(
|
||||||
|
context.keys()
|
||||||
|
.map(
|
||||||
|
(path) => [
|
||||||
|
transformPath(transformer, path),
|
||||||
|
context(path).default,
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
export const gatherWithLatus = (
|
export const gatherWithLatus = (
|
||||||
context,
|
context,
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,7 +11,12 @@ export {default as ensureUniqueReduction} from './ensure-unique-reduction';
|
||||||
export {default as EventEmitter} from './event-emitter';
|
export {default as EventEmitter} from './event-emitter';
|
||||||
export {deflate, inflate} from './flate';
|
export {deflate, inflate} from './flate';
|
||||||
export {compose, fastApply} from './function';
|
export {compose, fastApply} from './function';
|
||||||
export {decorateWithLatus, gatherWithLatus, default as gather} from './gather';
|
export {
|
||||||
|
decorateWithLatus,
|
||||||
|
gatherFlat,
|
||||||
|
gatherWithLatus,
|
||||||
|
default as gather,
|
||||||
|
} from './gather';
|
||||||
export {default as Middleware} from './middleware';
|
export {default as Middleware} from './middleware';
|
||||||
export {default as Latus} from './latus';
|
export {default as Latus} from './latus';
|
||||||
export {default as require} from './require';
|
export {default as require} from './require';
|
||||||
|
|
Loading…
Reference in New Issue
Block a user