@vaadin/hilla-file-router
Version:
Hilla file-based router
47 lines • 1.4 kB
JavaScript
/**
* Extends a router module's config with additional properties. The original
* module config is preferred over the extension.
*
* @param module - The module to extend.
* @param config - The extension config.
* @returns
*
* @deprecated Use object spread syntax instead.
*/
export function extendModule(module, config) {
return {
...module,
config: {
...config,
...module?.config
}
};
}
function isReactComponent(value) {
return !!value && (typeof value === "function" || typeof value === "object" && "$$typeof" in value && value.$$typeof === Symbol.for("react.lazy"));
}
export function createRoute(path, moduleOrChildrenOrComponent, childrenOrConfig, children) {
let isDeprecatedModuleUsed = false;
let component;
let config;
if (Array.isArray(moduleOrChildrenOrComponent)) {
children = moduleOrChildrenOrComponent;
} else if (isReactComponent(moduleOrChildrenOrComponent) || !moduleOrChildrenOrComponent && !!childrenOrConfig && typeof childrenOrConfig === "object") {
component = moduleOrChildrenOrComponent;
config = childrenOrConfig;
} else if (moduleOrChildrenOrComponent) {
({default: component, config} = moduleOrChildrenOrComponent);
isDeprecatedModuleUsed = true;
}
return {
path,
module: isDeprecatedModuleUsed ? {
default: component,
config
} : undefined,
component,
config,
children
};
}
//# sourceMappingURL=./createRoute.js.map