json-react-layouts-data-loader
Advanced tools
Comparing version 4.0.0 to 4.0.1
# json-react-layouts-data-loader | ||
## 4.0.1 | ||
### Patch Changes | ||
- 3a3c67a: Fixed packaging issues where can throw depending on the tslib version of target project | ||
- Updated dependencies [3a3c67a] | ||
- json-react-layouts@3.0.1 | ||
## 4.0.0 | ||
@@ -4,0 +12,0 @@ |
@@ -1,84 +0,146 @@ | ||
import { __assign, __rest } from "tslib"; | ||
import React from 'react'; | ||
import { getComponentDataArgs } from './get-data-args'; | ||
// TODO this could have a better name | ||
export function init(resources, | ||
/** Hook into data load functions */ | ||
wrapLoad) { | ||
var useComponentData = resources.registerResource('component-data-loader', function (_a) { | ||
var dataDefinitionArgs = _a.dataDefinitionArgs, dataDefinition = _a.dataDefinition, layout = _a.layout, resourceType = _a.resourceType, paramsCacheKey = _a.paramsCacheKey, services = __rest(_a, ["dataDefinitionArgs", "dataDefinition", "layout", "resourceType", "paramsCacheKey"]); | ||
var loadFn = wrapLoad ? wrapLoad(dataDefinition.loadData) : dataDefinition.loadData; | ||
return loadFn(dataDefinitionArgs, services, { | ||
resourceType: resourceType, | ||
paramsCacheKey: paramsCacheKey, | ||
}); | ||
}, ['dataDefinitionArgs']); | ||
function DataLoaderWithRuntimeParams(_a) { | ||
var dataDefinition = _a.dataDefinition, componentProps = _a.componentProps, services = _a.services, next = _a.next, middlewareProps = _a.middlewareProps; | ||
var dataDefinitionArgs = __assign(__assign({}, componentProps.dataDefinitionArgs), dataDefinition.useRuntimeParams(componentProps.dataDefinitionArgs, services.services)); | ||
componentProps = __assign(__assign({}, componentProps), { dataDefinitionArgs: dataDefinitionArgs }); | ||
var renderProps = useComponentData({ | ||
dataDefinition: dataDefinition, | ||
dataDefinitionArgs: dataDefinitionArgs, | ||
layout: services.layout, | ||
}); | ||
if (!renderProps.lastAction.success) { | ||
// We have failed to load data, use error boundaries | ||
// to send error back up and render error page | ||
throw renderProps.lastAction.error; | ||
var __defProp = Object.defineProperty; | ||
var __defProps = Object.defineProperties; | ||
var __getOwnPropDescs = Object.getOwnPropertyDescriptors; | ||
var __getOwnPropSymbols = Object.getOwnPropertySymbols; | ||
var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
var __propIsEnum = Object.prototype.propertyIsEnumerable; | ||
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; | ||
var __spreadValues = (a, b) => { | ||
for (var prop in b || (b = {})) | ||
if (__hasOwnProp.call(b, prop)) | ||
__defNormalProp(a, prop, b[prop]); | ||
if (__getOwnPropSymbols) | ||
for (var prop of __getOwnPropSymbols(b)) { | ||
if (__propIsEnum.call(b, prop)) | ||
__defNormalProp(a, prop, b[prop]); | ||
} | ||
return a; | ||
}; | ||
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); | ||
var __objRest = (source, exclude) => { | ||
var target = {}; | ||
for (var prop in source) | ||
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) | ||
target[prop] = source[prop]; | ||
if (source != null && __getOwnPropSymbols) | ||
for (var prop of __getOwnPropSymbols(source)) { | ||
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) | ||
target[prop] = source[prop]; | ||
} | ||
return target; | ||
}; | ||
// packages/json-react-layouts-data-loader/src/index.tsx | ||
import React from "react"; | ||
// packages/json-react-layouts-data-loader/src/get-data-args.ts | ||
function getComponentDataArgs(layout, componentType) { | ||
const componentDataDefinition = layout.componentRegistrations.get(componentType); | ||
if (!componentDataDefinition) { | ||
return; | ||
} | ||
const dataDefinition = componentDataDefinition.dataDefinition; | ||
return dataDefinition; | ||
} | ||
// packages/json-react-layouts-data-loader/src/index.tsx | ||
function init(resources, wrapLoad) { | ||
const useComponentData = resources.registerResource("component-data-loader", (_a) => { | ||
var _b = _a, { | ||
dataDefinitionArgs, | ||
dataDefinition, | ||
layout, | ||
resourceType, | ||
paramsCacheKey | ||
} = _b, services = __objRest(_b, [ | ||
"dataDefinitionArgs", | ||
"dataDefinition", | ||
"layout", | ||
"resourceType", | ||
"paramsCacheKey" | ||
]); | ||
const loadFn = wrapLoad ? wrapLoad(dataDefinition.loadData) : dataDefinition.loadData; | ||
return loadFn(dataDefinitionArgs, services, { | ||
resourceType, | ||
paramsCacheKey | ||
}); | ||
}, ["dataDefinitionArgs"]); | ||
function DataLoaderWithRuntimeParams({ | ||
dataDefinition, | ||
componentProps, | ||
services, | ||
next, | ||
middlewareProps | ||
}) { | ||
const dataDefinitionArgs = __spreadValues(__spreadValues({}, componentProps.dataDefinitionArgs), dataDefinition.useRuntimeParams(componentProps.dataDefinitionArgs, services.services)); | ||
componentProps = __spreadProps(__spreadValues({}, componentProps), { dataDefinitionArgs }); | ||
const renderProps = useComponentData({ | ||
dataDefinition, | ||
dataDefinitionArgs, | ||
layout: services.layout | ||
}); | ||
if (!renderProps.lastAction.success) { | ||
throw renderProps.lastAction.error; | ||
} | ||
const data = renderProps.data.hasData ? { data: { loaded: true, result: renderProps.data.result } } : { data: { loaded: false } }; | ||
return next(__spreadValues(__spreadValues({}, componentProps), data), middlewareProps, services) || null; | ||
} | ||
function WithDataLoad({ | ||
dataDefinition, | ||
componentProps, | ||
services, | ||
next, | ||
middlewareProps | ||
}) { | ||
const dataDefinitionArgs = componentProps.dataDefinitionArgs; | ||
const renderProps = useComponentData({ | ||
dataDefinition, | ||
dataDefinitionArgs, | ||
layout: services.layout | ||
}); | ||
if (!renderProps.lastAction.success) { | ||
throw renderProps.lastAction.error; | ||
} | ||
const data = renderProps.data.hasData ? { data: { loaded: true, result: renderProps.data.result } } : { data: { loaded: false } }; | ||
return next(__spreadValues(__spreadValues({}, componentProps), data), middlewareProps, services) || null; | ||
} | ||
return { | ||
createRegisterableComponentWithData: function createRegisterableComponentWithData(type, dataDefinition, render) { | ||
const normalRender = (_a, services) => { | ||
var _b = _a, { data, dataDefinitionArgs } = _b, rest = __objRest(_b, ["data", "dataDefinitionArgs"]); | ||
return render(rest, __spreadProps(__spreadValues({}, data), { | ||
dataDefinitionArgs | ||
}), services); | ||
}; | ||
const registrationWithData = { type, render: normalRender, dataDefinition }; | ||
return registrationWithData; | ||
}, | ||
middleware: (componentProps, middlewareProps, services, next) => { | ||
const dataDefinition = getComponentDataArgs(services.layout, componentProps.componentType); | ||
if (dataDefinition) { | ||
if (dataDefinition.useRuntimeParams) { | ||
return /* @__PURE__ */ React.createElement(DataLoaderWithRuntimeParams, { | ||
dataDefinition, | ||
componentProps, | ||
services, | ||
next, | ||
middlewareProps | ||
}); | ||
} | ||
var data = renderProps.data.hasData | ||
? { data: { loaded: true, result: renderProps.data.result } } | ||
: { data: { loaded: false } }; | ||
return (next(__assign(__assign({}, componentProps), data), middlewareProps, services) || null); | ||
} | ||
function WithDataLoad(_a) { | ||
var dataDefinition = _a.dataDefinition, componentProps = _a.componentProps, services = _a.services, next = _a.next, middlewareProps = _a.middlewareProps; | ||
var dataDefinitionArgs = componentProps.dataDefinitionArgs; | ||
var renderProps = useComponentData({ | ||
dataDefinition: dataDefinition, | ||
dataDefinitionArgs: dataDefinitionArgs, | ||
layout: services.layout, | ||
return /* @__PURE__ */ React.createElement(WithDataLoad, { | ||
dataDefinition, | ||
componentProps, | ||
services, | ||
next, | ||
middlewareProps | ||
}); | ||
if (!renderProps.lastAction.success) { | ||
// We have failed to load data, use error boundaries | ||
// to send error back up and render error page | ||
throw renderProps.lastAction.error; | ||
} | ||
var data = renderProps.data.hasData | ||
? { data: { loaded: true, result: renderProps.data.result } } | ||
: { data: { loaded: false } }; | ||
return (next(__assign(__assign({}, componentProps), data), middlewareProps, services) || null); | ||
} | ||
return next(componentProps, middlewareProps, services); | ||
} | ||
return { | ||
createRegisterableComponentWithData: function createRegisterableComponentWithData(type, dataDefinition, render) { | ||
// This is quite a complex transform which can't be modelled in typescript. | ||
// | ||
// The dataDefinition which is passed to this object is hidden from the types returned | ||
// The content area renderer has a data loader which will look for this property | ||
// Then use the loadData function | ||
var normalRender = function (_a, services) { | ||
var data = _a.data, dataDefinitionArgs = _a.dataDefinitionArgs, rest = __rest(_a, ["data", "dataDefinitionArgs"]); | ||
return render(rest, __assign(__assign({}, data), { dataDefinitionArgs: dataDefinitionArgs }), services); | ||
}; | ||
var registrationWithData = { type: type, render: normalRender, dataDefinition: dataDefinition }; | ||
// Once the data is loaded it will be passed to the render function on the | ||
// data prop, which will be typed as LoadedData<TData> | ||
// The route info looks like this: | ||
// { type: TType, props: TProps & { dataDefinition: TData } } | ||
return registrationWithData; | ||
}, | ||
middleware: function (componentProps, middlewareProps, services, next) { | ||
var dataDefinition = getComponentDataArgs(services.layout, componentProps.componentType); | ||
if (dataDefinition) { | ||
if (dataDefinition.useRuntimeParams) { | ||
return (React.createElement(DataLoaderWithRuntimeParams, { dataDefinition: dataDefinition, componentProps: componentProps, services: services, next: next, middlewareProps: middlewareProps })); | ||
} | ||
return (React.createElement(WithDataLoad, { dataDefinition: dataDefinition, componentProps: componentProps, services: services, next: next, middlewareProps: middlewareProps })); | ||
} | ||
return next(componentProps, middlewareProps, services); | ||
}, | ||
}; | ||
}; | ||
} | ||
export { getComponentDataArgs }; | ||
//# sourceMappingURL=index.js.map | ||
export { | ||
getComponentDataArgs, | ||
init | ||
}; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "json-react-layouts-data-loader", | ||
"version": "4.0.0", | ||
"version": "4.0.1", | ||
"repository": "github:sevenwestmedia-labs/json-react-layouts", | ||
@@ -8,7 +8,9 @@ "author": "Seven West Media WA", | ||
"sideEffects": false, | ||
"main": "dist/cjs/index.js", | ||
"module": "dist/esm/index.js", | ||
"devDependencies": {}, | ||
"main": "out-tsc/index.js", | ||
"publishConfig": { | ||
"main": "dist/index.js", | ||
"module": "dist/esm/index.js" | ||
}, | ||
"dependencies": { | ||
"json-react-layouts": "^3.0.0" | ||
"json-react-layouts": "^3.0.1" | ||
}, | ||
@@ -15,0 +17,0 @@ "peerDependencies": { |
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
113714
29
1154
1
Updatedjson-react-layouts@^3.0.1