UNPKG

route-sage-react

Version:

A TypeScript utility for managing and configuring routes with type safety and nested route support

42 lines (41 loc) 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.connect = void 0; exports.createPathConfig = createPathConfig; const transformPathConfig = (paths) => { const transform = (node, parentUrl = "") => { return ((...args) => { const result = node(...args); const currentUrl = `${parentUrl}${result.url}`; // Recursively transform any nested objects while preserving other properties const transformedResult = Object.entries(result).reduce((acc, [key, value]) => { if (key !== "element" && typeof value === "function") { // @ts-expect-error Type error acc[key] = transform(value, currentUrl); } else { // @ts-expect-error Type error acc[key] = value; } return acc; }, {}); return Object.assign(Object.assign({}, transformedResult), { url: currentUrl }); }); }; return Object.entries(paths).reduce((acc, [key, value]) => { // @ts-expect-error Type error acc[key] = transform(value); console.log("Transformed paths", acc); return acc; }, {}); }; // Transformed paths const connect = (pathConfig) => ({ paths: transformPathConfig(pathConfig), count: Object.keys(pathConfig).length, }); exports.connect = connect; function createPathConfig(config) { return (0, exports.connect)(config); } exports.default = createPathConfig;