
Security News
High Salaries No Longer Enough to Attract Top Cybersecurity Talent
A survey of 500 cybersecurity pros reveals high pay isn't enough—lack of growth and flexibility is driving attrition and risking organizational security.
react-fast-hoc
Advanced tools
Lightweight and type-safe High-Order Components (HOCs) library for React, leveraging high-order types from [`hotscript`](https://github.com/gvergnaud/hotscript) and JavaScript Proxies for zero VDOM overhead.
Lightweight and type-safe High-Order Components (HOCs) library for React, leveraging high-order types from hotscript
and JavaScript Proxies for zero VDOM overhead.
Install the react-fast-hoc
package:
pnpm:
pnpm i react-fast-hoc
npm:
npm i react-fast-hoc
yarn:
yarn add react-fast-hoc
Or with ni:
ni react-fast-hoc
Install the hotscript
for creating complex props transformations:
ni -D hotscript
// without (extra VDOM overhead)
const BirthdayInput = React.forwardRef(
(
{ onChange, value }: Pick<DatePickerProps, "value" | "onChange">,
ref: null | DataPickerProps["ref"]
) => (
<InputDate
onChange={onChange}
ref={ref}
value={value ?? DEFAULT_DATE_OF_BIRTH}
maxDate={MAXIMAL_DATE_OF_BIRTH}
minDate={MINIMAL_DATE_OF_BIRTH}
/>
)
);
// with (zero VDOM overhead, can be used multiple times)
import { transformProps } from "react-fast-hoc";
const BirthdayInput = transformProps(
InputDate,
({
onChange,
value,
ref,
}: Pick<DatePickerProps, "ref" | "value" | "onChange">) => ({
onChange,
value: value ?? DEFAULT_DATE_OF_BIRTH,
maxDate: MAXIMAL_DATE_OF_BIRTH,
minDate: MINIMAL_DATE_OF_BIRTH,
ref,
}),
{ displayNameTransform: { type: "rewrite", value: "BirthdayInput" } }
);
Directly create a new component with transformed props.
import { transformProps } from "react-fast-hoc";
const EnhancedComponent = transformProps(
MyComponent,
(props) => {
// Transform props here
return { ...props, transformedProp: "Transformed Value" };
},
{ displayNameTransform: { type: "rewrite", value: "WithTransformedProps." } }
);
Create a new HOC with a custom props transformer and optional display name prefix.
import { createHoc } from "react-fast-hoc";
const withCustomLogic = createHoc({
propsTransformer: (props) => {
// Apply custom logic here
return { ...props, customProp: "Custom Value" };
},
resultTransformer: null,
displayNameTransform: {
type: "prefix",
value: "WithCustomLogic.",
},
});
const EnhancedComponent = withCustomLogic(MyComponent);
Create a new HOC that transforms the props passed to the wrapped component.
import { createTransformProps } from "react-fast-hoc";
const withTransformedProps = createTransformProps(
(props) => {
// Transform props here
return { ...props, transformedProp: "Transformed Value" };
},
{
displayNameTransform: {
type: "prefix",
value: "WithTransformedProps.",
},
}
);
const EnhancedComponent = withTransformedProps(MyComponent);
You can use
wrapIntoProxy
to create more customizable hocs
Detailed API documentation can be found in the API.md file.
You can find example usage of react-fast-hoc
in the examples folder.
React Fast HOC is MIT licensed.
FAQs
Lightweight and type-safe High-Order Components (HOCs) library for React, leveraging high-order types from [`hotscript`](https://github.com/gvergnaud/hotscript) and JavaScript Proxies for zero VDOM overhead.
The npm package react-fast-hoc receives a total of 3,429 weekly downloads. As such, react-fast-hoc popularity was classified as popular.
We found that react-fast-hoc demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A survey of 500 cybersecurity pros reveals high pay isn't enough—lack of growth and flexibility is driving attrition and risking organizational security.
Product
Socket, the leader in open source security, is now available on Google Cloud Marketplace for simplified procurement and enhanced protection against supply chain attacks.
Security News
Corepack will be phased out from future Node.js releases following a TSC vote.