🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Sign inDemoInstall
Socket

react-fast-hoc

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-fast-hoc - npm Package Compare versions

Comparing version

to
0.2.0

6

CHANGELOG.md
# react-fast-hoc
## 0.2.0
### Minor Changes
- 309bcff: Add oportunity to transform component directly, not only props
## 0.1.7

@@ -4,0 +10,0 @@

25

lib/index.d.ts

@@ -1,2 +0,2 @@

import { Objects, Booleans, Fn, Pipe } from 'hotscript';
import { ComposeLeft, Objects, Booleans, Fn, Call, Identity } from 'hotscript';
import * as React$1 from 'react';

@@ -8,6 +8,3 @@ import React__default, { ComponentPropsWithRef, ComponentType, MemoExoticComponent, ForwardRefExoticComponent, FunctionComponent, ElementType, ReactNode } from 'react';

*/
type TransformPropsReturn<TComponent extends React.ComponentType<any>, TNewProps extends PropsBase> = WrappedComponent<[
Objects.OmitBy<Booleans.Not<never>>,
Objects.Assign<TNewProps>
], any, TComponent>;
type TransformPropsReturn<TComponent extends React.ComponentType<any>, TNewProps extends PropsBase> = WrappedComponent<ComposeLeft<[Objects.OmitBy<Booleans.Not<never>>, Objects.Assign<TNewProps>]>, any, TComponent>;
type TransformProps = <TComponent extends React.ComponentType<any>, TNewProps extends PropsBase = ComponentPropsWithRef<TComponent>, TPreviousProps extends ComponentPropsWithRef<TComponent> = ComponentPropsWithRef<TComponent>>(Component: TComponent, transformer: (props: TNewProps) => TPreviousProps, options?: CreateHocComponentOptions) => TransformPropsReturn<TComponent, TNewProps>;

@@ -22,3 +19,7 @@ type PropsBase = Record<string | number | symbol, any>;

*/
type WrappedComponent<TPipeTransform extends Fn[], TComponentPropsExtends extends object, TComponent extends ComponentType<any>, TComputedProps extends TComponentPropsExtends = TComponent extends ElementType<any> ? ComponentPropsWithRef<TComponent> : never> = ChangeComponentProps<TComponent, Pipe<TComputedProps, TPipeTransform>>;
type WrappedComponent<TPipeTransform extends Fn, TComponentPropsExtends extends object, TComponent extends ComponentType<any>, TComputedProps extends TComponentPropsExtends = TComponent extends ElementType<any> ? ComponentPropsWithRef<TComponent> : never> = ChangeComponentProps<TComponent, Call<TPipeTransform, TComputedProps>>;
type HocTypeTransform<TType extends "props" | "component", T extends Fn> = {
type: TType;
fn: T;
};
/**

@@ -28,4 +29,4 @@ * Higher-order component that wraps the input component

*/
type WrappedComponentCreator<TPipeTransform extends Fn[], TComponentPropsExtends extends object> = <TComponent extends ComponentType<any> = React.FC<any>>(component: TComponent) => WrappedComponent<TPipeTransform, TComponentPropsExtends, TComponent>;
type CreateHocReturn<TPipeTransform extends Fn[], TComponentPropsExtends extends PropsBase = PropsBase> = WrappedComponentCreator<TPipeTransform, TComponentPropsExtends>;
type WrappedComponentCreator<TPipeTransform extends HocTypeTransform<any, any>, TComponentPropsExtends extends object> = <TComponent extends ComponentType<any> = React.FC<any>>(component: TComponent) => TPipeTransform extends HocTypeTransform<"props", infer TPropsTransform> ? WrappedComponent<TPropsTransform, TComponentPropsExtends, TComponent> : TPipeTransform extends HocTypeTransform<"component", infer TComponentTransform> ? Call<TComponentTransform, TComponent> : never;
type CreateHocReturn<TPipeTransform extends HocTypeTransform<any, any>, TComponentPropsExtends extends PropsBase = PropsBase> = WrappedComponentCreator<TPipeTransform, TComponentPropsExtends>;
type PropsTransformer = (props: Record<string | symbol | number, unknown>) => Record<string | symbol | number, unknown>;

@@ -61,3 +62,3 @@ type CreateHocComponentOptions = ({

*/
declare const createHoc: <TPipeTransform extends Fn[], ComponentPropsExtends extends PropsBase = PropsBase>(params: CreateHocOptions) => CreateHocReturn<TPipeTransform, ComponentPropsExtends>;
declare const createHoc: <TPipeTransform extends Fn[] | HocTypeTransform<any, any>, ComponentPropsExtends extends PropsBase = PropsBase, TActualTransform extends HocTypeTransform<any, any> = TPipeTransform extends Fn[] ? HocTypeTransform<"props", ComposeLeft<TPipeTransform>> : TPipeTransform>(params: CreateHocOptions) => CreateHocReturn<TActualTransform, ComponentPropsExtends>;

@@ -78,3 +79,3 @@ /**

*/
declare const createTransformProps: <TPipeTransform extends Fn[] = [], ComponentPropsExtends extends PropsBase = PropsBase>(propsTransformer: PropsTransformer, options?: CreateHocComponentOptions) => CreateHocReturn<TPipeTransform, ComponentPropsExtends>;
declare const createTransformProps: <TPipeTransform extends Fn[] | HocTypeTransform<any, any> = HocTypeTransform<"props", Identity>, ComponentPropsExtends extends PropsBase = PropsBase, TActualTransform extends HocTypeTransform<any, any> = TPipeTransform extends Fn[] ? HocTypeTransform<"props", ComposeLeft<TPipeTransform>> : TPipeTransform>(propsTransformer: PropsTransformer, options?: CreateHocComponentOptions) => CreateHocReturn<TActualTransform extends Fn[] ? HocTypeTransform<"props", ComposeLeft<TActualTransform>> : TActualTransform, ComponentPropsExtends>;

@@ -125,4 +126,4 @@ declare class HocTransformer implements ProxyHandler<Function> {

*/
declare const wrapIntoProxy: (proxy: ProxyHandler<Function>) => <T extends React$1.ComponentType<{}>>(Component: T) => WrappedComponent<[], PropsBase, T>;
declare const wrapIntoProxy: (proxy: ProxyHandler<Function>) => <T extends React$1.ComponentType<{}>>(Component: T) => WrappedComponent<Identity, PropsBase, T>;
export { ChangeComponentProps, CreateHocComponentOptions, CreateHocOptions, CreateHocReturn, HocTransformer, MimicToNewComponentHandler, PropsBase, PropsTransformer, RewriteCall, TransformProps, TransformPropsReturn, WrappedComponent, WrappedComponentCreator, createHoc, createTransformProps, transformProps, wrapIntoProxy };
export { ChangeComponentProps, CreateHocComponentOptions, CreateHocOptions, CreateHocReturn, HocTransformer, HocTypeTransform, MimicToNewComponentHandler, PropsBase, PropsTransformer, RewriteCall, TransformProps, TransformPropsReturn, WrappedComponent, WrappedComponentCreator, createHoc, createTransformProps, transformProps, wrapIntoProxy };
{
"name": "react-fast-hoc",
"license": "MIT",
"version": "0.1.7",
"version": "0.2.0",
"sideEffects": false,

@@ -6,0 +6,0 @@ "type": "module",

@@ -1,7 +0,14 @@

import type { Fn } from "hotscript";
import type { ComposeLeft, Fn } from "hotscript";
import type { ComponentType } from "react";
import { HocTransformer, MimicToNewComponentHandler } from "./handlers";
import { wrapComponentIntoHoc, wrapPropsTransformer } from "./internals";
import type { CreateHocOptions, CreateHocReturn, PropsBase } from "./type";
import type {
CreateHocOptions,
CreateHocReturn,
HocTypeTransform,
PropsBase,
} from "./type";
type PropsTransformPipe = Fn[];
/**

@@ -14,4 +21,7 @@ * @description *Transformations is not typesafe, you should [hotscript](https://github.com/gvergnaud/HOTScript) for type transformation*

export const createHoc = <
TPipeTransform extends Fn[],
ComponentPropsExtends extends PropsBase = PropsBase
TPipeTransform extends Fn[] | HocTypeTransform<any, any>,
ComponentPropsExtends extends PropsBase = PropsBase,
TActualTransform extends HocTypeTransform<any, any> = TPipeTransform extends Fn[]
? HocTypeTransform<"props", ComposeLeft<TPipeTransform>>
: TPipeTransform
>(

@@ -38,3 +48,3 @@ params: CreateHocOptions

mimicToHandler
)) as CreateHocReturn<TPipeTransform, ComponentPropsExtends>;
)) as CreateHocReturn<TActualTransform, ComponentPropsExtends>;
};

@@ -1,5 +0,6 @@

import type { Fn } from "hotscript";
import type { ComposeLeft, Fn, Identity } from "hotscript";
import { createHoc } from "./createHoc";
import type {
CreateHocComponentOptions,
HocTypeTransform,
PropsBase,

@@ -25,4 +26,10 @@ PropsTransformer,

export const createTransformProps = <
TPipeTransform extends Fn[] = [],
ComponentPropsExtends extends PropsBase = PropsBase
TPipeTransform extends Fn[] | HocTypeTransform<any, any> = HocTypeTransform<
"props",
Identity
>,
ComponentPropsExtends extends PropsBase = PropsBase,
TActualTransform extends HocTypeTransform<any, any> = TPipeTransform extends Fn[]
? HocTypeTransform<"props", ComposeLeft<TPipeTransform>>
: TPipeTransform
>(

@@ -32,3 +39,3 @@ propsTransformer: PropsTransformer,

) =>
createHoc<TPipeTransform, ComponentPropsExtends>({
createHoc<TActualTransform, ComponentPropsExtends>({
propsTransformer,

@@ -35,0 +42,0 @@ resultTransformer: null,

@@ -1,2 +0,2 @@

import type { Booleans, Fn, Objects, Pipe } from "hotscript";
import type { Booleans, Call, ComposeLeft, Fn, Objects } from "hotscript";
import type {

@@ -19,3 +19,3 @@ ComponentPropsWithRef,

> = WrappedComponent<
[Objects.OmitBy<Booleans.Not<never>>, Objects.Assign<TNewProps>],
ComposeLeft<[Objects.OmitBy<Booleans.Not<never>>, Objects.Assign<TNewProps>]>,
any,

@@ -60,3 +60,3 @@ TComponent

export type WrappedComponent<
TPipeTransform extends Fn[],
TPipeTransform extends Fn,
TComponentPropsExtends extends object,

@@ -67,4 +67,12 @@ TComponent extends ComponentType<any>,

: never
> = ChangeComponentProps<TComponent, Pipe<TComputedProps, TPipeTransform>>;
> = ChangeComponentProps<TComponent, Call<TPipeTransform, TComputedProps>>;
export type HocTypeTransform<
TType extends "props" | "component",
T extends Fn
> = {
type: TType;
fn: T;
};
/**

@@ -75,10 +83,17 @@ * Higher-order component that wraps the input component

export type WrappedComponentCreator<
TPipeTransform extends Fn[],
TPipeTransform extends HocTypeTransform<any, any>,
TComponentPropsExtends extends object
> = <TComponent extends ComponentType<any> = React.FC<any>>(
component: TComponent
) => WrappedComponent<TPipeTransform, TComponentPropsExtends, TComponent>;
) => TPipeTransform extends HocTypeTransform<"props", infer TPropsTransform>
? WrappedComponent<TPropsTransform, TComponentPropsExtends, TComponent>
: TPipeTransform extends HocTypeTransform<
"component",
infer TComponentTransform
>
? Call<TComponentTransform, TComponent>
: never;
export type CreateHocReturn<
TPipeTransform extends Fn[],
TPipeTransform extends HocTypeTransform<any, any>,
TComponentPropsExtends extends PropsBase = PropsBase

@@ -85,0 +100,0 @@ > = WrappedComponentCreator<TPipeTransform, TComponentPropsExtends>;

@@ -0,1 +1,2 @@

import { Identity } from "hotscript";
import type { HocTransformer } from "./handlers";

@@ -15,2 +16,2 @@ import { wrapComponentIntoHoc } from "./internals";

null
) as WrappedComponent<[], PropsBase, T>;
) as WrappedComponent<Identity, PropsBase, T>;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet