+6
-0
@@ -16,3 +16,8 @@ export declare type ForgoRef<T> = { | ||
| }; | ||
| export declare type ForgoErrorArgs = { | ||
| element: ForgoElementArg; | ||
| error: any; | ||
| }; | ||
| export declare type ForgoComponent<TProps extends ForgoElementProps> = { | ||
| error?: (props: TProps, args: ForgoErrorArgs) => ForgoElement<ForgoComponentCtor<TProps>, TProps>; | ||
| render: (props: TProps, args: ForgoRenderArgs) => ForgoElement<ForgoComponentCtor<TProps>, TProps>; | ||
@@ -46,2 +51,3 @@ unmount?: () => void; | ||
| node: ChildNode; | ||
| boundary?: ForgoComponent<any> | undefined; | ||
| }; | ||
@@ -48,0 +54,0 @@ export declare function rerender(element: ForgoElementArg | undefined, props?: undefined, fullRerender?: boolean): void; |
+43
-19
@@ -30,3 +30,3 @@ "use strict"; | ||
| */ | ||
| function internalRender(forgoNode, node, pendingAttachStates, fullRerender) { | ||
| function internalRender(forgoNode, node, pendingAttachStates, fullRerender, boundary) { | ||
| // Just a string | ||
@@ -38,3 +38,3 @@ if (!isForgoElement(forgoNode)) { | ||
| else if (typeof forgoNode.type === "string") { | ||
| return renderDOMElement(forgoNode, node, pendingAttachStates, fullRerender); | ||
| return renderDOMElement(forgoNode, node, pendingAttachStates, fullRerender, boundary); | ||
| } | ||
@@ -44,3 +44,3 @@ // Custom Component. | ||
| else { | ||
| return renderCustomComponent(forgoNode, node, pendingAttachStates, fullRerender); | ||
| return renderCustomComponent(forgoNode, node, pendingAttachStates, fullRerender, boundary); | ||
| } | ||
@@ -88,3 +88,3 @@ } | ||
| */ | ||
| function renderDOMElement(forgoElement, node, pendingAttachStates, fullRerender) { | ||
| function renderDOMElement(forgoElement, node, pendingAttachStates, fullRerender, boundary) { | ||
| var _a; | ||
@@ -111,3 +111,3 @@ if (node) { | ||
| attachProps(forgoElement, nodeToBindTo, pendingAttachStates); | ||
| renderChildNodes(forgoElement, nodeToBindTo, fullRerender); | ||
| renderChildNodes(forgoElement, nodeToBindTo, fullRerender, boundary); | ||
| return { node: nodeToBindTo }; | ||
@@ -122,6 +122,21 @@ } | ||
| attachProps(forgoElement, newElement, pendingAttachStates); | ||
| renderChildNodes(forgoElement, newElement, fullRerender); | ||
| renderChildNodes(forgoElement, newElement, fullRerender, boundary); | ||
| return { node: newElement }; | ||
| } | ||
| } | ||
| function boundaryFallback(node, props, args, statesToAttach, fullRerender, boundary, exec) { | ||
| try { | ||
| return exec(); | ||
| } | ||
| catch (error) { | ||
| if (boundary && boundary.error) { | ||
| const errorArgs = Object.assign(Object.assign({}, args), { error }); | ||
| const newForgoElement = boundary.error(props, errorArgs); | ||
| return internalRender(newForgoElement, node, statesToAttach, fullRerender, boundary); | ||
| } | ||
| else { | ||
| throw error; | ||
| } | ||
| } | ||
| } | ||
| /* | ||
@@ -131,3 +146,3 @@ Render a Custom Component | ||
| */ | ||
| function renderCustomComponent(forgoElement, node, pendingAttachStates, fullRerender) { | ||
| function renderCustomComponent(forgoElement, node, pendingAttachStates, fullRerender, boundary) { | ||
| if (node) { | ||
@@ -143,2 +158,3 @@ const state = getExistingForgoState(node); | ||
| const component = ctor(forgoElement.props); | ||
| boundary = component.error ? component : boundary; | ||
| // Create new component state | ||
@@ -154,6 +170,8 @@ // ... and push it to pendingAttachStates | ||
| const statesToAttach = pendingAttachStates.concat(componentState); | ||
| // Create an element by rendering the component | ||
| const newForgoElement = component.render(forgoElement.props, args); | ||
| // Pass it on for rendering... | ||
| return internalRender(newForgoElement, node, statesToAttach, fullRerender); | ||
| return boundaryFallback(node, forgoElement.props, args, statesToAttach, fullRerender, boundary, () => { | ||
| // Create an element by rendering the component | ||
| const newForgoElement = component.render(forgoElement.props, args); | ||
| // Pass it on for rendering... | ||
| return internalRender(newForgoElement, node, statesToAttach, fullRerender, boundary); | ||
| }); | ||
| } | ||
@@ -172,7 +190,9 @@ // We have compatible state, and this is a rerender | ||
| const newForgoElement = savedComponentState.component.render(forgoElement.props, args); | ||
| // Pass it on for rendering... | ||
| return internalRender(newForgoElement, node, statesToAttach, fullRerender); | ||
| return boundaryFallback(node, forgoElement.props, args, statesToAttach, fullRerender, boundary, () => { | ||
| // Pass it on for rendering... | ||
| return internalRender(newForgoElement, node, statesToAttach, fullRerender, boundary); | ||
| }); | ||
| } | ||
| else { | ||
| return { node }; | ||
| return { node, boundary }; | ||
| } | ||
@@ -186,2 +206,3 @@ } | ||
| const component = ctor(forgoElement.props); | ||
| boundary = component.error ? component : boundary; | ||
| // We'll have to create a new component state | ||
@@ -197,5 +218,8 @@ // ... and push it to pendingAttachStates | ||
| const statesToAttach = pendingAttachStates.concat(componentState); | ||
| const newForgoElement = component.render(forgoElement.props, args); | ||
| // We have no node to render to yet. So pass undefined for the node. | ||
| return internalRender(newForgoElement, undefined, statesToAttach, fullRerender); | ||
| return boundaryFallback(undefined, forgoElement.props, args, statesToAttach, fullRerender, boundary, () => { | ||
| const newForgoElement = component.render(forgoElement.props, args); | ||
| // Pass it on for rendering... | ||
| return internalRender(newForgoElement, undefined, statesToAttach, fullRerender, boundary); | ||
| }); | ||
| } | ||
@@ -216,3 +240,3 @@ } | ||
| */ | ||
| function renderChildNodes(forgoElement, parentElement, fullRerender) { | ||
| function renderChildNodes(forgoElement, parentElement, fullRerender, boundary) { | ||
| const { children: forgoChildrenObj } = forgoElement.props; | ||
@@ -236,7 +260,7 @@ const childNodes = parentElement.childNodes; | ||
| childNodes[forgoChildIndex].nodeType === TEXT_NODE_TYPE) { | ||
| internalRender(stringOfPrimitiveNode(forgoChild), childNodes[forgoChildIndex], [], fullRerender); | ||
| internalRender(stringOfPrimitiveNode(forgoChild), childNodes[forgoChildIndex], [], fullRerender, boundary); | ||
| } | ||
| // But otherwise, don't pass a replacement node. Just insert instead. | ||
| else { | ||
| const { node } = internalRender(stringOfPrimitiveNode(forgoChild), undefined, [], fullRerender); | ||
| const { node } = internalRender(stringOfPrimitiveNode(forgoChild), undefined, [], fullRerender, boundary); | ||
| parentElement.insertBefore(node, childNodes[forgoChildIndex]); | ||
@@ -243,0 +267,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "forgo", | ||
| "version": "0.0.14", | ||
| "version": "0.0.15", | ||
| "main": "./dist", | ||
@@ -5,0 +5,0 @@ "devDependencies": { |
+33
-0
@@ -132,2 +132,35 @@ # forgo | ||
| ## Error handling | ||
| By defining the error() function, Forgo lets you catch errors in child components (at any level, and not necessarily immediate children). | ||
| ```jsx | ||
| // Here's a component which throws an error. | ||
| function BadComponent() { | ||
| return { | ||
| render() { | ||
| throw new Error("Some error occurred :("); | ||
| }, | ||
| }; | ||
| } | ||
| // Parent can catch the error by defining the error() function. | ||
| function Parent( | ||
| props | ||
| ) { | ||
| return { | ||
| render() { | ||
| return <div><BadComponent /></div>; | ||
| }, | ||
| error(props, args) { | ||
| return ( | ||
| <p> | ||
| Error in {props.name}: {args.error.message} | ||
| </p> | ||
| ); | ||
| }, | ||
| }; | ||
| } | ||
| ``` | ||
| ## Additional Rerender options | ||
@@ -134,0 +167,0 @@ |
+115
-29
@@ -33,2 +33,7 @@ /* | ||
| export type ForgoErrorArgs = { | ||
| element: ForgoElementArg; | ||
| error: any; | ||
| }; | ||
| /* | ||
@@ -40,2 +45,6 @@ ForgoComponent contains three functions. | ||
| export type ForgoComponent<TProps extends ForgoElementProps> = { | ||
| error?: ( | ||
| props: TProps, | ||
| args: ForgoErrorArgs | ||
| ) => ForgoElement<ForgoComponentCtor<TProps>, TProps>; | ||
| render: ( | ||
@@ -148,4 +157,5 @@ props: TProps, | ||
| pendingAttachStates: NodeAttachedComponentState<any>[], | ||
| fullRerender: boolean | ||
| ): { node: ChildNode } { | ||
| fullRerender: boolean, | ||
| boundary?: ForgoComponent<any> | ||
| ): { node: ChildNode; boundary?: ForgoComponent<any> } { | ||
| // Just a string | ||
@@ -166,3 +176,4 @@ if (!isForgoElement(forgoNode)) { | ||
| pendingAttachStates, | ||
| fullRerender | ||
| fullRerender, | ||
| boundary | ||
| ); | ||
@@ -177,3 +188,4 @@ } | ||
| pendingAttachStates, | ||
| fullRerender | ||
| fullRerender, | ||
| boundary | ||
| ); | ||
@@ -233,3 +245,4 @@ } | ||
| pendingAttachStates: NodeAttachedComponentState<any>[], | ||
| fullRerender: boolean | ||
| fullRerender: boolean, | ||
| boundary?: ForgoComponent<any> | ||
| ): { node: ChildNode } { | ||
@@ -260,3 +273,8 @@ if (node) { | ||
| renderChildNodes(forgoElement, nodeToBindTo as HTMLElement, fullRerender); | ||
| renderChildNodes( | ||
| forgoElement, | ||
| nodeToBindTo as HTMLElement, | ||
| fullRerender, | ||
| boundary | ||
| ); | ||
| return { node: nodeToBindTo }; | ||
@@ -270,3 +288,3 @@ } else { | ||
| attachProps(forgoElement, newElement, pendingAttachStates); | ||
| renderChildNodes(forgoElement, newElement, fullRerender); | ||
| renderChildNodes(forgoElement, newElement, fullRerender, boundary); | ||
| return { node: newElement }; | ||
@@ -276,2 +294,30 @@ } | ||
| function boundaryFallback<T>( | ||
| node: ChildNode | undefined, | ||
| props: any, | ||
| args: ForgoRenderArgs, | ||
| statesToAttach: NodeAttachedComponentState<any>[], | ||
| fullRerender: boolean, | ||
| boundary: ForgoComponent<any> | undefined, | ||
| exec: () => T | ||
| ) { | ||
| try { | ||
| return exec(); | ||
| } catch (error) { | ||
| if (boundary && boundary.error) { | ||
| const errorArgs = { ...args, error }; | ||
| const newForgoElement = boundary.error(props, errorArgs); | ||
| return internalRender( | ||
| newForgoElement, | ||
| node, | ||
| statesToAttach, | ||
| fullRerender, | ||
| boundary | ||
| ); | ||
| } else { | ||
| throw error; | ||
| } | ||
| } | ||
| } | ||
| /* | ||
@@ -285,4 +331,5 @@ Render a Custom Component | ||
| pendingAttachStates: NodeAttachedComponentState<any>[], | ||
| fullRerender: boolean | ||
| ): { node: ChildNode } { | ||
| fullRerender: boolean, | ||
| boundary?: ForgoComponent<any> | ||
| ): { node: ChildNode; boundary?: ForgoComponent<any> } { | ||
| if (node) { | ||
@@ -301,2 +348,3 @@ const state = getExistingForgoState(node); | ||
| const component = ctor(forgoElement.props); | ||
| boundary = component.error ? component : boundary; | ||
@@ -314,11 +362,22 @@ // Create new component state | ||
| // Create an element by rendering the component | ||
| const newForgoElement = component.render(forgoElement.props, args); | ||
| // Pass it on for rendering... | ||
| return internalRender( | ||
| newForgoElement, | ||
| return boundaryFallback( | ||
| node, | ||
| forgoElement.props, | ||
| args, | ||
| statesToAttach, | ||
| fullRerender | ||
| fullRerender, | ||
| boundary, | ||
| () => { | ||
| // Create an element by rendering the component | ||
| const newForgoElement = component.render(forgoElement.props, args); | ||
| // Pass it on for rendering... | ||
| return internalRender( | ||
| newForgoElement, | ||
| node, | ||
| statesToAttach, | ||
| fullRerender, | ||
| boundary | ||
| ); | ||
| } | ||
| ); | ||
@@ -332,3 +391,3 @@ } | ||
| ) { | ||
| const args = { | ||
| const args: ForgoRenderArgs = { | ||
| element: { componentIndex: pendingAttachStates.length }, | ||
@@ -350,11 +409,22 @@ }; | ||
| // Pass it on for rendering... | ||
| return internalRender( | ||
| newForgoElement, | ||
| return boundaryFallback( | ||
| node, | ||
| forgoElement.props, | ||
| args, | ||
| statesToAttach, | ||
| fullRerender | ||
| fullRerender, | ||
| boundary, | ||
| () => { | ||
| // Pass it on for rendering... | ||
| return internalRender( | ||
| newForgoElement, | ||
| node, | ||
| statesToAttach, | ||
| fullRerender, | ||
| boundary | ||
| ); | ||
| } | ||
| ); | ||
| } else { | ||
| return { node }; | ||
| return { node, boundary }; | ||
| } | ||
@@ -368,2 +438,3 @@ } | ||
| const component = ctor(forgoElement.props); | ||
| boundary = component.error ? component : boundary; | ||
@@ -381,10 +452,22 @@ // We'll have to create a new component state | ||
| const statesToAttach = pendingAttachStates.concat(componentState); | ||
| const newForgoElement = component.render(forgoElement.props, args); | ||
| // We have no node to render to yet. So pass undefined for the node. | ||
| return internalRender( | ||
| newForgoElement, | ||
| return boundaryFallback( | ||
| undefined, | ||
| forgoElement.props, | ||
| args, | ||
| statesToAttach, | ||
| fullRerender | ||
| fullRerender, | ||
| boundary, | ||
| () => { | ||
| const newForgoElement = component.render(forgoElement.props, args); | ||
| // Pass it on for rendering... | ||
| return internalRender( | ||
| newForgoElement, | ||
| undefined, | ||
| statesToAttach, | ||
| fullRerender, | ||
| boundary | ||
| ); | ||
| } | ||
| ); | ||
@@ -410,3 +493,4 @@ } | ||
| parentElement: HTMLElement, | ||
| fullRerender: boolean | ||
| fullRerender: boolean, | ||
| boundary?: ForgoComponent<any> | ||
| ) { | ||
@@ -445,3 +529,4 @@ const { children: forgoChildrenObj } = forgoElement.props; | ||
| [], | ||
| fullRerender | ||
| fullRerender, | ||
| boundary | ||
| ); | ||
@@ -455,3 +540,4 @@ } | ||
| [], | ||
| fullRerender | ||
| fullRerender, | ||
| boundary | ||
| ); | ||
@@ -458,0 +544,0 @@ parentElement.insertBefore(node, childNodes[forgoChildIndex]); |
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
77378
7.35%1333
9.35%356
10.22%5
66.67%