@teambit/ui 0.0.636 → 0.0.640
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{__preview-1643426469482.js → __preview-1643858579620.js} +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.js +4 -52
- package/dist/index.js.map +1 -1
- package/dist/react-ssr/index.d.ts +5 -0
- package/dist/react-ssr/index.js +23 -0
- package/dist/react-ssr/index.js.map +1 -0
- package/dist/react-ssr/react-ssr.d.ts +21 -0
- package/dist/react-ssr/react-ssr.js +285 -0
- package/dist/react-ssr/react-ssr.js.map +1 -0
- package/dist/{render-lifecycle.d.ts → react-ssr/render-lifecycle.d.ts} +8 -4
- package/dist/{render-lifecycle.js → react-ssr/render-lifecycle.js} +0 -0
- package/dist/{render-lifecycle.js.map → react-ssr/render-lifecycle.js.map} +0 -0
- package/dist/{ssr → react-ssr}/request-browser.d.ts +0 -5
- package/dist/react-ssr/request-browser.js +3 -0
- package/dist/{ssr/request-server.js.map → react-ssr/request-browser.js.map} +0 -0
- package/dist/{ssr → react-ssr}/request-server.d.ts +0 -0
- package/dist/{ssr → react-ssr}/request-server.js +0 -0
- package/dist/{ssr/ssr-content.js.map → react-ssr/request-server.js.map} +0 -0
- package/dist/{ssr → react-ssr}/ssr-content.d.ts +0 -0
- package/dist/{ssr → react-ssr}/ssr-content.js +0 -0
- package/dist/react-ssr/ssr-content.js.map +1 -0
- package/dist/ssr-middleware/extract-browser-data.d.ts +6 -0
- package/dist/{ssr/request-browser.js → ssr-middleware/extract-browser-data.js} +4 -5
- package/dist/ssr-middleware/extract-browser-data.js.map +1 -0
- package/dist/ssr-middleware/index.d.ts +1 -0
- package/dist/ssr-middleware/index.js +23 -0
- package/dist/ssr-middleware/index.js.map +1 -0
- package/dist/{ssr/render-middleware.d.ts → ssr-middleware/ssr-middleware.d.ts} +0 -0
- package/dist/{ssr/render-middleware.js → ssr-middleware/ssr-middleware.js} +5 -5
- package/dist/ssr-middleware/ssr-middleware.js.map +1 -0
- package/dist/ui-server.js +4 -4
- package/dist/ui-server.js.map +1 -1
- package/dist/ui.ui.runtime.d.ts +8 -20
- package/dist/ui.ui.runtime.js +25 -215
- package/dist/ui.ui.runtime.js.map +1 -1
- package/package-tar/teambit-ui-0.0.640.tgz +0 -0
- package/package.json +18 -17
- package/react-ssr/index.ts +6 -0
- package/react-ssr/react-ssr.tsx +183 -0
- package/{render-lifecycle.tsx → react-ssr/render-lifecycle.tsx} +6 -4
- package/{ssr → react-ssr}/request-browser.ts +0 -31
- package/{ssr → react-ssr}/request-server.ts +0 -0
- package/{ssr → react-ssr}/ssr-content.ts +0 -0
- package/ssr-middleware/extract-browser-data.ts +31 -0
- package/ssr-middleware/index.ts +1 -0
- package/{ssr/render-middleware.ts → ssr-middleware/ssr-middleware.ts} +3 -3
- package/ui.ui.runtime.tsx +29 -179
- package/compose.tsx +0 -27
- package/dist/compose.d.ts +0 -14
- package/dist/compose.js +0 -37
- package/dist/compose.js.map +0 -1
- package/dist/ssr/render-middleware.js.map +0 -1
- package/dist/ssr/request-browser.js.map +0 -1
- package/package-tar/teambit-ui-0.0.636.tgz +0 -0
package/compose.tsx
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import React, { ReactNode, ComponentType } from 'react';
|
|
2
|
-
|
|
3
|
-
type ComponentTuple<T = any> = [Component: ComponentType<T>, props?: T];
|
|
4
|
-
export type Wrapper<T = any> = ComponentType<T> | ComponentTuple<T>;
|
|
5
|
-
interface Props<T = any> {
|
|
6
|
-
/** Compose these components. Can be a ReactComponent, or a [ReactComponent, Props] tuple */
|
|
7
|
-
components: Wrapper<T>[];
|
|
8
|
-
children?: ReactNode;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* A react Component composer. equivalent to `(n+1) => <a[n+1]> <Compose(a[n]) /> </a[n+1]>`.
|
|
13
|
-
* Component can be a React Component, or a `[Component, { ...props }]` tuple.
|
|
14
|
-
*/
|
|
15
|
-
export function Compose(props: Props) {
|
|
16
|
-
const { components = [], children } = props;
|
|
17
|
-
|
|
18
|
-
const arrayified: ComponentTuple[] = components.map((tuple) => (Array.isArray(tuple) ? tuple : [tuple, undefined]));
|
|
19
|
-
|
|
20
|
-
return (
|
|
21
|
-
<>
|
|
22
|
-
{arrayified.reduceRight((acc, [Comp, forwardProps]) => {
|
|
23
|
-
return <Comp {...forwardProps}>{acc}</Comp>;
|
|
24
|
-
}, children)}
|
|
25
|
-
</>
|
|
26
|
-
);
|
|
27
|
-
}
|
package/dist/compose.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ReactNode, ComponentType } from 'react';
|
|
2
|
-
declare type ComponentTuple<T = any> = [Component: ComponentType<T>, props?: T];
|
|
3
|
-
export declare type Wrapper<T = any> = ComponentType<T> | ComponentTuple<T>;
|
|
4
|
-
interface Props<T = any> {
|
|
5
|
-
/** Compose these components. Can be a ReactComponent, or a [ReactComponent, Props] tuple */
|
|
6
|
-
components: Wrapper<T>[];
|
|
7
|
-
children?: ReactNode;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* A react Component composer. equivalent to `(n+1) => <a[n+1]> <Compose(a[n]) /> </a[n+1]>`.
|
|
11
|
-
* Component can be a React Component, or a `[Component, { ...props }]` tuple.
|
|
12
|
-
*/
|
|
13
|
-
export declare function Compose(props: Props): JSX.Element;
|
|
14
|
-
export {};
|
package/dist/compose.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
require("core-js/modules/es.array.iterator.js");
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports.Compose = Compose;
|
|
11
|
-
|
|
12
|
-
function _react() {
|
|
13
|
-
const data = _interopRequireDefault(require("react"));
|
|
14
|
-
|
|
15
|
-
_react = function () {
|
|
16
|
-
return data;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
return data;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* A react Component composer. equivalent to `(n+1) => <a[n+1]> <Compose(a[n]) /> </a[n+1]>`.
|
|
24
|
-
* Component can be a React Component, or a `[Component, { ...props }]` tuple.
|
|
25
|
-
*/
|
|
26
|
-
function Compose(props) {
|
|
27
|
-
const {
|
|
28
|
-
components = [],
|
|
29
|
-
children
|
|
30
|
-
} = props;
|
|
31
|
-
const arrayified = components.map(tuple => Array.isArray(tuple) ? tuple : [tuple, undefined]);
|
|
32
|
-
return /*#__PURE__*/_react().default.createElement(_react().default.Fragment, null, arrayified.reduceRight((acc, [Comp, forwardProps]) => {
|
|
33
|
-
return /*#__PURE__*/_react().default.createElement(Comp, forwardProps, acc);
|
|
34
|
-
}, children));
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
//# sourceMappingURL=compose.js.map
|
package/dist/compose.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["compose.tsx"],"names":["Compose","props","components","children","arrayified","map","tuple","Array","isArray","undefined","reduceRight","acc","Comp","forwardProps"],"mappings":";;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAUA;AACA;AACA;AACA;AACO,SAASA,OAAT,CAAiBC,KAAjB,EAA+B;AACpC,QAAM;AAAEC,IAAAA,UAAU,GAAG,EAAf;AAAmBC,IAAAA;AAAnB,MAAgCF,KAAtC;AAEA,QAAMG,UAA4B,GAAGF,UAAU,CAACG,GAAX,CAAgBC,KAAD,IAAYC,KAAK,CAACC,OAAN,CAAcF,KAAd,IAAuBA,KAAvB,GAA+B,CAACA,KAAD,EAAQG,SAAR,CAA1D,CAArC;AAEA,sBACE,gEACGL,UAAU,CAACM,WAAX,CAAuB,CAACC,GAAD,EAAM,CAACC,IAAD,EAAOC,YAAP,CAAN,KAA+B;AACrD,wBAAO,+BAAC,IAAD,EAAUA,YAAV,EAAyBF,GAAzB,CAAP;AACD,GAFA,EAEER,QAFF,CADH,CADF;AAOD","sourcesContent":["import React, { ReactNode, ComponentType } from 'react';\n\ntype ComponentTuple<T = any> = [Component: ComponentType<T>, props?: T];\nexport type Wrapper<T = any> = ComponentType<T> | ComponentTuple<T>;\ninterface Props<T = any> {\n /** Compose these components. Can be a ReactComponent, or a [ReactComponent, Props] tuple */\n components: Wrapper<T>[];\n children?: ReactNode;\n}\n\n/**\n * A react Component composer. equivalent to `(n+1) => <a[n+1]> <Compose(a[n]) /> </a[n+1]>`.\n * Component can be a React Component, or a `[Component, { ...props }]` tuple.\n */\nexport function Compose(props: Props) {\n const { components = [], children } = props;\n\n const arrayified: ComponentTuple[] = components.map((tuple) => (Array.isArray(tuple) ? tuple : [tuple, undefined]));\n\n return (\n <>\n {arrayified.reduceRight((acc, [Comp, forwardProps]) => {\n return <Comp {...forwardProps}>{acc}</Comp>;\n }, children)}\n </>\n );\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["render-middleware.ts"],"names":["denyList","createSsrMiddleware","root","port","title","logger","runtime","loadRuntime","undefined","render","assets","serverRenderMiddleware","req","res","next","query","url","browser","test","debug","rendering","method","server","request","response","props","rendered","set","send","e","error","entryFilepath","path","join","fs","existsSync","warn","manifestFilepath","parseManifest","imported","filepath","file","readFile","contents","toString","parsed","JSON","parse","getAssets","process","exit","manifest","css","js","entrypoints","filter","x","endsWith","map"],"mappings":"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","sourcesContent":["import type { Assets } from '@teambit/ui-foundation.ui.rendering.html';\nimport { Request, Response, NextFunction } from 'express';\nimport path from 'path';\nimport * as fs from 'fs-extra';\nimport type { Logger } from '@teambit/logger';\nimport { requestToObj } from './request-browser';\nimport { SsrContent } from './ssr-content';\n\nconst denyList = /^\\/favicon.ico$/;\n\ntype ssrRenderProps = {\n root: string;\n port: number;\n title: string;\n logger: Logger;\n};\n\ntype ManifestFile = {\n files?: Record<string, string>;\n entrypoints?: string[];\n};\n\nexport async function createSsrMiddleware({ root, port, title, logger }: ssrRenderProps) {\n const runtime = await loadRuntime(root, { logger });\n if (!runtime) return undefined;\n\n const { render } = runtime;\n const assets = { ...runtime.assets, title };\n\n return async function serverRenderMiddleware(req: Request, res: Response, next: NextFunction) {\n const { query, url } = req;\n\n const browser = requestToObj(req, port);\n\n if (denyList.test(url)) {\n logger.debug(`[ssr] skipping static denyList file ${url}`);\n next();\n return;\n }\n\n if (query.rendering === 'client') {\n logger.debug(`[ssr] skipping ${url}`);\n next();\n return;\n }\n\n logger.debug(`[ssr] ${req.method} ${url}`);\n const server = { port, request: req, response: res };\n const props: SsrContent = { assets, browser, server };\n\n try {\n const rendered = await render(props);\n res.set('Cache-Control', 'no-cache');\n res.send(rendered);\n logger.debug(`[ssr] success '${url}'`);\n } catch (e: any) {\n logger.error(`[ssr] failed at '${url}'`, e);\n next();\n }\n };\n}\n\nasync function loadRuntime(root: string, { logger }: { logger: Logger }) {\n let render: (...arg: any[]) => any;\n let assets: Assets | undefined;\n\n try {\n const entryFilepath = path.join(root, 'ssr', 'index.js');\n if (!fs.existsSync(entryFilepath)) {\n logger.warn(`[ssr] - Skipping setup - failed finding ssr bundle at \"${entryFilepath}\"`);\n return undefined;\n }\n\n const manifestFilepath = path.join(root, 'asset-manifest.json');\n if (!fs.existsSync(manifestFilepath)) {\n logger.warn('[ssr] - Skipping setup (cannot find asset manifest file)');\n return undefined;\n }\n\n assets = await parseManifest(manifestFilepath);\n if (!assets) {\n logger.warn('[ssr] - Skipping setup (failed parsing assets manifest)');\n return undefined;\n }\n\n const imported = await import(entryFilepath);\n render = imported?.render;\n\n if (!render || typeof render !== 'function') {\n logger.warn('[ssr] - index file does not export a render() function. Skipping setup.');\n return undefined;\n }\n } catch (e: any) {\n logger.error(e);\n return undefined;\n }\n\n return {\n render,\n assets,\n };\n}\n\nasync function parseManifest(filepath: string, logger?: Logger) {\n try {\n const file = await fs.readFile(filepath);\n logger?.debug('[ssr] - ✓ aread manifest file');\n const contents = file.toString();\n const parsed: ManifestFile = JSON.parse(contents);\n logger?.debug('[ssr] - ✓ prased manifest file', parsed);\n const assets = getAssets(parsed);\n logger?.debug('[ssr] - ✓ extracted data from manifest file', assets);\n\n return assets;\n } catch (e: any) {\n logger?.error('[ssr] - error parsing asset manifest', e);\n process.exit();\n return undefined;\n }\n}\n\nfunction getAssets(manifest: ManifestFile) {\n const assets: Assets = { css: [], js: [] };\n\n assets.css = manifest.entrypoints?.filter((x) => x.endsWith('css')).map((x) => path.join('/', x));\n assets.js = manifest.entrypoints?.filter((x) => x.endsWith('js')).map((x) => path.join('/', x));\n\n return assets;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["request-browser.ts"],"names":["requestToObj","req","port","browser","connection","secure","headers","body","location","host","hostname","href","protocol","url","origin","pathname","path","query","cookie","header"],"mappings":";;;;;;;AAyDA;AACA;AACA;AACO,SAASA,YAAT,CAAsBC,GAAtB,EAAoCC,IAApC,EAAkD;AACvD;AAEA,QAAMC,OAAoB,GAAG;AAC3BC,IAAAA,UAAU,EAAE;AACVC,MAAAA,MAAM,EAAEJ,GAAG,CAACI,MADF;AAEVC,MAAAA,OAAO,EAAEL,GAAG,CAACK,OAFH;AAGVC,MAAAA,IAAI,EAAEN,GAAG,CAACM;AAHA,KADe;AAM3B;AACAC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,IAAI,EAAG,GAAER,GAAG,CAACS,QAAS,IAAGR,IAAK,EADtB;AAERQ,MAAAA,QAAQ,EAAET,GAAG,CAACS,QAFN;AAGRC,MAAAA,IAAI,EAAG,GAAEV,GAAG,CAACW,QAAS,MAAKX,GAAG,CAACS,QAAS,IAAGR,IAAK,GAAED,GAAG,CAACY,GAAI,EAHlD;AAIRC,MAAAA,MAAM,EAAG,GAAEb,GAAG,CAACW,QAAS,MAAKX,GAAG,CAACS,QAAS,IAAGR,IAAK,EAJ1C;AAKRa,MAAAA,QAAQ,EAAEd,GAAG,CAACe,IALN;AAMRd,MAAAA,IANQ;AAORU,MAAAA,QAAQ,EAAG,GAAEX,GAAG,CAACW,QAAS,GAPlB;AAQRK,MAAAA,KAAK,EAAEhB,GAAG,CAACgB,KARH;AASRJ,MAAAA,GAAG,EAAEZ,GAAG,CAACY;AATD,KAPiB;AAkB3BK,IAAAA,MAAM,EAAEjB,GAAG,CAACkB,MAAJ,CAAW,QAAX;AAlBmB,GAA7B;AAqBA,SAAOhB,OAAP;AACD","sourcesContent":["import type { IncomingHttpHeaders } from 'http';\nimport type { Request } from 'express';\n\nexport type ParsedQuery = { [key: string]: undefined | string | string[] | ParsedQuery | ParsedQuery[] };\n\nexport type BrowserData = {\n connection: {\n secure: boolean;\n headers: IncomingHttpHeaders;\n body: any;\n };\n /**\n * isomorphic location object, resembling the browser's window.location\n */\n location: {\n /** hostname + port\n * @example localhost:3000\n */\n host: string;\n /**\n * @example localhost\n */\n hostname: string;\n /** full url\n * @example http://localhost:3000/components?q=button\n */\n href: string;\n /** full url without query\n * @example http://localhost:3000/components\n */\n origin: string;\n /**\n * @example /component\n */\n pathname: string;\n /**\n * @example 3000\n */\n port: number;\n /**\n * @example http\n */\n protocol: string;\n /**\n * parsed search params\n * @example { one: 1, two: [2,3]}\n */\n query: ParsedQuery;\n /**\n * full resource path, including query, without hostname\n * @example /components?q=button\n */\n url: string;\n };\n cookie?: string;\n};\n\n/**\n * extract relevant information from Express request.\n */\nexport function requestToObj(req: Request, port: number) {\n // apparently port is not readily available in request.\n\n const browser: BrowserData = {\n connection: {\n secure: req.secure,\n headers: req.headers,\n body: req.body,\n },\n // trying to match to browser.location\n location: {\n host: `${req.hostname}:${port}`,\n hostname: req.hostname,\n href: `${req.protocol}://${req.hostname}:${port}${req.url}`,\n origin: `${req.protocol}://${req.hostname}:${port}`,\n pathname: req.path,\n port,\n protocol: `${req.protocol}:`,\n query: req.query,\n url: req.url,\n },\n cookie: req.header('Cookie'),\n };\n\n return browser;\n}\n"]}
|
|
Binary file
|