Skip to content

Commit

Permalink
Fixed the generators not being exposed, also fixed the wrong repare c…
Browse files Browse the repository at this point in the history
…ommand being used.
  • Loading branch information
Earthmark committed Jul 2, 2022
1 parent bcadbcb commit 3dc3705
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 19 deletions.
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"name": "react-neos",
"version": "0.11.0",
"version": "0.12.0",
"license": "MIT",
"repository": "https://github.com/Earthmark/React-Neos",
"type": "module",
"readme": "README.md",
"scripts": {
"prepublish": "npm run build",
"prepare": "npm run build",
"test": "npx jest",
"prebuild": "rimraf dist",
"build": "tsc",
Expand Down
10 changes: 5 additions & 5 deletions src/components.test.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from 'react';
import TestRenderer from "react-test-renderer";
import { PropUpdate } from "./signal.js";
import n, { Props, componentDefs} from "./components.js";
import n, { ElementProps, componentDefs} from "./components.js";
import prop from "./props.js";
import {
elementPropsToTemplate,
Expand Down Expand Up @@ -90,10 +90,10 @@ Array [
});

const testCases : Partial<{
[key in keyof Props]:
[key in keyof ElementProps]:
{
oldProps: Partial<Props[key]>,
newProps: Partial<Props[key]>,
oldProps: Partial<ElementProps[key]>,
newProps: Partial<ElementProps[key]>,
expected: Array<PropUpdate>
}[]
}> = {
Expand Down Expand Up @@ -147,7 +147,7 @@ const testCases : Partial<{

it.each(
Object.entries(testCases).flatMap(([k, v]) =>
(v as any).map((o: any) => ({ name: k as keyof Props, ...o}))
(v as any).map((o: any) => ({ name: k as keyof ElementProps, ...o}))
)
)("element processes expected diff for set %s", ({name, oldProps, newProps, expected}) => {
const src: Array<PropUpdate> = [];
Expand Down
2 changes: 1 addition & 1 deletion src/components.ts
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,6 @@ export const componentDefs = elementPropsSetToTemplates({
...rectElements,
});

export type Props = ElementTemplateSetJsxSignatureLibrary<typeof componentDefs>;
export type ElementProps = ElementTemplateSetJsxSignatureLibrary<typeof componentDefs>;

export default elementTemplatesToJsxPrototypes(componentDefs);
30 changes: 28 additions & 2 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,34 @@
import wsNeosProxyServer from "./wsNeosProxyServer.js";
import n, { Props, componentDefs as coreElements } from "./components.js";
import n, { ElementProps, componentDefs } from "./components.js";
import { useNeosRef } from "./componentsBase.js";
import createRender from "./renderer.js";
import prop from "./props.js";
import {
PropComponents,
propComponentsToPropFactories,
refComponentsToRefFactories,
} from "./propsBase.js";
import {
hasReactChildren,
elementPropsSetToTemplates,
elementTemplatesToJsxPrototypes,
ElementTemplateSetJsxSignatureLibrary,
} from "./componentsBase.js";

export { createRender, coreElements, useNeosRef, wsNeosProxyServer, Props };
export {
createRender,
componentDefs,
useNeosRef,
wsNeosProxyServer,
ElementProps,
prop,
PropComponents,
propComponentsToPropFactories,
refComponentsToRefFactories,
hasReactChildren,
elementPropsSetToTemplates,
elementTemplatesToJsxPrototypes,
ElementTemplateSetJsxSignatureLibrary
};

export default n;
10 changes: 5 additions & 5 deletions src/renderer.test.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from 'react';
import createRender from "./renderer.js";
import { useNeosRef } from "./componentsBase.js";
import n from "./components.js";
import n, { componentDefs } from "./components.js";
import { EventSignal, OutboundSignal } from './signal.js';

interface Fixture {
Expand Down Expand Up @@ -48,7 +48,7 @@ test("Verify hierarchy shows as expected", () => {
</React.Fragment>;
}

const renderer = createRender(<TestComponent />);
const renderer = createRender(<TestComponent />, componentDefs);
const items: Array<OutboundSignal> = [];
const instance = renderer.createInstance(signal => items.push(signal));

Expand Down Expand Up @@ -119,21 +119,21 @@ test("Refs Interconnect", () => {
</React.Fragment>;
}

const renderer = createRender(<TestComponent />);
const renderer = createRender(<TestComponent />, componentDefs);
const items: Array<OutboundSignal> = [];
renderer.createInstance(signal => items.push(signal));

expect(items).toMatchSnapshot();
});

test("unexpected components raise errors", () => {
const renderer = createRender(<div />);
const renderer = createRender(<div />, componentDefs);
const items: Array<OutboundSignal> = [];
expect(() => renderer.createInstance(signal => items.push(signal))).toThrowError();
});

test("components raise errors when they unexpectedly contain text", () => {
const renderer = createRender(<n.transform>{"I'm illegal!" as any}</n.transform>);
const renderer = createRender(<n.transform>{"I'm illegal!" as any}</n.transform>, componentDefs);
const items: Array<OutboundSignal> = [];
expect(() => renderer.createInstance(signal => items.push(signal))).toThrowError();
});
6 changes: 2 additions & 4 deletions src/renderer.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import React from "react";
import Reconciler from "react-reconciler";
import { performance } from "perf_hooks";
import { ElementId, InboundSignal, OutboundSignal, PropUpdate } from "./signal.js";
import { componentDefs } from "./components.js";

export interface ElementTemplate<Props, Refs> {
updater: ElementUpdater<Props>;
Expand Down Expand Up @@ -75,11 +73,11 @@ export default function createRender<
>
>(
node: React.ReactNode,
elementTemplates?: AdditionalComponents
elementTemplates: AdditionalComponents
): ReactNeosRenderer {
return {
createInstance(handler: (signal: OutboundSignal) => void) {
const components = elementTemplates ?? componentDefs;
const components = elementTemplates;
const reconciler = Reconciler<
Extract<keyof typeof components, string>,
Record<string, any>,
Expand Down

0 comments on commit 3dc3705

Please sign in to comment.