Socket
Socket
Sign inDemoInstall

json-react-layouts-data-loader

Package Overview
Dependencies
17
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 4.0.0 to 4.0.1

dist/data-loading.test.d.ts

8

CHANGELOG.md
# 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 @@

222

dist/esm/index.js

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc