@storybook/server 7.0.0-alpha.4 → 7.0.0-alpha.7

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.
@@ -0,0 +1,4 @@
1
+ var h=Object.defineProperty;var l=Object.getOwnPropertySymbols;var T=Object.prototype.hasOwnProperty,x=Object.prototype.propertyIsEnumerable;var y=(r,t,e)=>t in r?h(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,n=(r,t)=>{for(var e in t||(t={}))T.call(t,e)&&y(r,e,t[e]);if(l)for(var e of l(t))x.call(t,e)&&y(r,e,t[e]);return r};var f=(r,t)=>h(r,"name",{value:t,configurable:!0});import C from"global";import D from"ts-dedent";import{simulatePageLoad as U,simulateDOMContentLoaded as $}from"@storybook/preview-web";var{fetch:A,Node:I}=C,P=f(async(r,t,e,o)=>{let s=new URL(`${r}/${t}`);return s.search=new URLSearchParams(n(n({},o.globals),e)).toString(),(await A(s)).text()},"defaultFetchStoryHtml"),j=f((r,t)=>{let e=n({},r);return Object.keys(t).forEach(o=>{let s=t[o],{control:a}=s,d=a&&a.type.toLowerCase(),p=e[o];switch(d){case"date":e[o]=new Date(p).toISOString();break;case"object":e[o]=JSON.stringify(p);break;default:}}),e},"buildStoryArgs"),k=f(r=>{},"render");async function q({id:r,title:t,name:e,showMain:o,showError:s,forceRemount:a,storyFn:d,storyContext:p,storyContext:{parameters:g,args:u,argTypes:L}},c){d();let m=j(u,L),{server:{url:w,id:S,fetchStoryHtml:b=P,params:M}}=g,H=S||r,O=n(n({},M),m),i=await b(w,H,O,p);if(o(),typeof i=="string")c.innerHTML=i,U(c);else if(i instanceof I){if(c.firstChild===i&&a===!1)return;c.innerHTML="",c.appendChild(i),$()}else s({title:`Expecting an HTML snippet or DOM node from the story: "${e}" of "${t}".`,description:D`
2
+ Did you forget to return the HTML snippet from the story?
3
+ Use "() => <your snippet or node>" or when defining the story.
4
+ `})}f(q,"renderToDOM");export{f as a,k as b,q as c};
@@ -0,0 +1,12 @@
1
+ import { RenderContext } from '@storybook/store';
2
+ import { a as StoryFn, S as ServerFramework } from './public-types-07d4abb5.js';
3
+ import '@storybook/csf';
4
+
5
+ declare const render: StoryFn<ServerFramework>;
6
+ declare function renderToDOM({ id, title, name, showMain, showError, forceRemount, storyFn, storyContext, storyContext: { parameters, args, argTypes }, }: RenderContext<ServerFramework>, domElement: Element): Promise<void>;
7
+
8
+ declare const parameters: {
9
+ framework: "server";
10
+ };
11
+
12
+ export { parameters, render, renderToDOM };
package/dist/config.js ADDED
@@ -0,0 +1,4 @@
1
+ var P=Object.create;var n=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames,h=Object.getOwnPropertySymbols,N=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,R=Object.prototype.propertyIsEnumerable;var g=(t,e,r)=>e in t?n(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,a=(t,e)=>{for(var r in e||(e={}))u.call(e,r)&&g(t,r,e[r]);if(h)for(var r of h(e))R.call(e,r)&&g(t,r,e[r]);return t};var p=(t,e)=>n(t,"name",{value:e,configurable:!0});var k=(t,e)=>{for(var r in e)n(t,r,{get:e[r],enumerable:!0})},m=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of v(e))!u.call(t,o)&&o!==r&&n(t,o,{get:()=>e[o],enumerable:!(s=j(e,o))||s.enumerable});return t};var w=(t,e,r)=>(r=t!=null?P(N(t)):{},m(e||!t||!t.__esModule?n(r,"default",{value:t,enumerable:!0}):r,t)),F=t=>m(n({},"__esModule",{value:!0}),t);var K={};k(K,{parameters:()=>G,render:()=>S,renderToDOM:()=>b});module.exports=F(K);var L=w(require("global")),M=w(require("ts-dedent")),l=require("@storybook/preview-web"),{fetch:V,Node:q}=L.default,z=p(async(t,e,r,s)=>{let o=new URL(`${t}/${e}`);return o.search=new URLSearchParams(a(a({},s.globals),r)).toString(),(await V(o)).text()},"defaultFetchStoryHtml"),B=p((t,e)=>{let r=a({},t);return Object.keys(e).forEach(s=>{let o=e[s],{control:c}=o,y=c&&c.type.toLowerCase(),d=r[s];switch(y){case"date":r[s]=new Date(d).toISOString();break;case"object":r[s]=JSON.stringify(d);break;default:}}),r},"buildStoryArgs"),S=p(t=>{},"render");async function b({id:t,title:e,name:r,showMain:s,showError:o,forceRemount:c,storyFn:y,storyContext:d,storyContext:{parameters:x,args:O,argTypes:T}},i){y();let D=B(O,T),{server:{url:H,id:C,fetchStoryHtml:U=z,params:$}}=x,A=C||t,I=a(a({},$),D),f=await U(H,A,I,d);if(s(),typeof f=="string")i.innerHTML=f,(0,l.simulatePageLoad)(i);else if(f instanceof q){if(i.firstChild===f&&c===!1)return;i.innerHTML="",i.appendChild(f),(0,l.simulateDOMContentLoaded)()}else o({title:`Expecting an HTML snippet or DOM node from the story: "${r}" of "${e}".`,description:M.default`
2
+ Did you forget to return the HTML snippet from the story?
3
+ Use "() => <your snippet or node>" or when defining the story.
4
+ `})}p(b,"renderToDOM");var G={framework:"server"};0&&(module.exports={parameters,render,renderToDOM});
@@ -0,0 +1 @@
1
+ import{b as r,c as e}from"./chunk-43Y6KZXY.mjs";var a={framework:"server"};export{a as parameters,r as render,e as renderToDOM};
@@ -0,0 +1,31 @@
1
+ import * as lib_store_dist_types from 'lib/store/dist/types';
2
+ import * as lib_client_api_dist_types_ClientApi from 'lib/client-api/dist/types/ClientApi';
3
+ import * as _storybook_csf from '@storybook/csf';
4
+ export { ArgTypes, Args, Parameters, StoryContext } from '@storybook/csf';
5
+ import * as _storybook_addons from '@storybook/addons';
6
+ import { ClientStoryApi, Loadable } from '@storybook/addons';
7
+ import { S as ServerFramework, I as IStorybookSection } from './public-types-07d4abb5.js';
8
+ export { M as Meta, c as Story, a as StoryFn, b as StoryObj } from './public-types-07d4abb5.js';
9
+
10
+ interface ClientApi extends ClientStoryApi<ServerFramework['storyResult']> {
11
+ setAddon(addon: any): void;
12
+ configure(loader: Loadable, module: NodeModule): void;
13
+ getStorybook(): IStorybookSection[];
14
+ clearDecorators(): void;
15
+ forceReRender(): void;
16
+ raw: () => any;
17
+ }
18
+ declare const storiesOf: ClientApi['storiesOf'];
19
+ declare const configure: ClientApi['configure'];
20
+ declare const addDecorator: (() => never) | ((decorator: _storybook_csf.DecoratorFunction<ServerFramework, _storybook_addons.Args>) => void);
21
+ declare const addParameters: (() => never) | (({ globals, globalTypes, ...parameters }: _storybook_csf.Parameters & {
22
+ globals?: _storybook_csf.Globals;
23
+ globalTypes?: _storybook_csf.GlobalTypes;
24
+ }) => void);
25
+ declare const clearDecorators: (() => never) | (() => void);
26
+ declare const setAddon: (() => never) | ((addon: any) => void);
27
+ declare const getStorybook: (() => never) | (() => lib_client_api_dist_types_ClientApi.GetStorybookKind<ServerFramework>[]);
28
+ declare const raw: (() => never) | (() => lib_store_dist_types.BoundStory<ServerFramework>[]);
29
+ declare const forceReRender: (() => never) | (() => void);
30
+
31
+ export { addDecorator, addParameters, clearDecorators, configure, forceReRender, getStorybook, raw, setAddon, storiesOf };
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ var v=Object.create;var a=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames,h=Object.getOwnPropertySymbols,K=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var w=(t,r,o)=>r in t?a(t,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[r]=o,c=(t,r)=>{for(var o in r||(r={}))O.call(r,o)&&w(t,o,r[o]);if(h)for(var o of h(r))W.call(r,o)&&w(t,o,r[o]);return t};var s=(t,r)=>a(t,"name",{value:r,configurable:!0});var B=(t,r)=>{for(var o in r)a(t,o,{get:r[o],enumerable:!0})},x=(t,r,o,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of F(r))!O.call(t,e)&&e!==o&&a(t,e,{get:()=>r[e],enumerable:!(n=E(r,e))||n.enumerable});return t};var y=(t,r,o)=>(o=t!=null?v(K(t)):{},x(r||!t||!t.__esModule?a(o,"default",{value:t,enumerable:!0}):o,t)),J=t=>x(a({},"__esModule",{value:!0}),t);var at={};B(at,{addDecorator:()=>Z,addParameters:()=>tt,clearDecorators:()=>rt,configure:()=>X,forceReRender:()=>st,getStorybook:()=>et,raw:()=>nt,setAddon:()=>ot,storiesOf:()=>Q});module.exports=J(at);var S=y(require("global")),{window:Y}=S.default;Y.STORYBOOK_ENV="SERVER";var D=require("@storybook/core-client");var b=y(require("global")),L=y(require("ts-dedent")),m=require("@storybook/preview-web"),{fetch:_,Node:q}=b.default,z=s(async(t,r,o,n)=>{let e=new URL(`${t}/${r}`);return e.search=new URLSearchParams(c(c({},n.globals),o)).toString(),(await _(e)).text()},"defaultFetchStoryHtml"),G=s((t,r)=>{let o=c({},t);return Object.keys(r).forEach(n=>{let e=r[n],{control:i}=e,u=i&&i.type.toLowerCase(),d=o[n];switch(u){case"date":o[n]=new Date(d).toISOString();break;case"object":o[n]=JSON.stringify(d);break;default:}}),o},"buildStoryArgs"),M=s(t=>{},"render");async function R({id:t,title:r,name:o,showMain:n,showError:e,forceRemount:i,storyFn:u,storyContext:d,storyContext:{parameters:H,args:C,argTypes:P}},f){u();let U=G(C,P),{server:{url:$,id:I,fetchStoryHtml:N=z,params:V}}=H,j=I||t,k=c(c({},V),U),p=await N($,j,k,d);if(n(),typeof p=="string")f.innerHTML=p,(0,m.simulatePageLoad)(f);else if(p instanceof q){if(f.firstChild===p&&i===!1)return;f.innerHTML="",f.appendChild(p),(0,m.simulateDOMContentLoaded)()}else e({title:`Expecting an HTML snippet or DOM node from the story: "${o}" of "${r}".`,description:L.default`
2
+ Did you forget to return the HTML snippet from the story?
3
+ Use "() => <your snippet or node>" or when defining the story.
4
+ `})}s(R,"renderToDOM");var T="server",g=(0,D.start)(R,{render:M}),Q=s((t,r)=>g.clientApi.storiesOf(t,r).addParameters({framework:T}),"storiesOf"),X=s((...t)=>g.configure(T,...t),"configure"),{addDecorator:Z,addParameters:tt,clearDecorators:rt,setAddon:ot,getStorybook:et,raw:nt}=g.clientApi,{forceReRender:st}=g;var A;(A=module==null?void 0:module.hot)==null||A.decline();0&&(module.exports={addDecorator,addParameters,clearDecorators,configure,forceReRender,getStorybook,raw,setAddon,storiesOf});
package/dist/index.mjs ADDED
@@ -0,0 +1 @@
1
+ import{a as e,b as s,c as a}from"./chunk-43Y6KZXY.mjs";import p from"global";var{window:m}=p;m.STORYBOOK_ENV="SERVER";import{start as f}from"@storybook/core-client";var c="server",o=f(a,{render:s}),R=e((r,d)=>o.clientApi.storiesOf(r,d).addParameters({framework:c}),"storiesOf"),g=e((...r)=>o.configure(c,...r),"configure"),{addDecorator:w,addParameters:u,clearDecorators:A,setAddon:E,getStorybook:b,raw:D}=o.clientApi,{forceReRender:S}=o;var i;(i=module==null?void 0:module.hot)==null||i.decline();export{w as addDecorator,u as addParameters,A as clearDecorators,g as configure,S as forceReRender,b as getStorybook,D as raw,E as setAddon,R as storiesOf};
@@ -0,0 +1,42 @@
1
+ import { Args, ComponentAnnotations, AnnotatedStoryFn, StoryAnnotations } from '@storybook/csf';
2
+
3
+ declare type StoryFnServerReturnType = any;
4
+ declare type ServerFramework = {
5
+ component: string;
6
+ storyResult: StoryFnServerReturnType;
7
+ };
8
+ interface IStorybookStory {
9
+ name: string;
10
+ render: (context: any) => any;
11
+ }
12
+ interface IStorybookSection {
13
+ kind: string;
14
+ stories: IStorybookStory[];
15
+ }
16
+
17
+ /**
18
+ * Metadata to configure the stories for a component.
19
+ *
20
+ * @see [Default export](https://storybook.js.org/docs/formats/component-story-format/#default-export)
21
+ */
22
+ declare type Meta<TArgs = Args> = ComponentAnnotations<ServerFramework, TArgs>;
23
+ /**
24
+ * Story function that represents a CSFv2 component example.
25
+ *
26
+ * @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports)
27
+ */
28
+ declare type StoryFn<TArgs = Args> = AnnotatedStoryFn<ServerFramework, TArgs>;
29
+ /**
30
+ * Story function that represents a CSFv3 component example.
31
+ *
32
+ * @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports)
33
+ */
34
+ declare type StoryObj<TArgs = Args> = StoryAnnotations<ServerFramework, TArgs>;
35
+ /**
36
+ * Story function that represents a CSFv3 component example.
37
+ *
38
+ * @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports)
39
+ */
40
+ declare type Story<TArgs = Args> = StoryObj<TArgs>;
41
+
42
+ export { IStorybookSection as I, Meta as M, ServerFramework as S, StoryFn as a, StoryObj as b, Story as c };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/server",
3
- "version": "7.0.0-alpha.4",
3
+ "version": "7.0.0-alpha.7",
4
4
  "description": "Storybook Server renderer",
5
5
  "keywords": [
6
6
  "storybook"
@@ -19,9 +19,26 @@
19
19
  "url": "https://opencollective.com/storybook"
20
20
  },
21
21
  "license": "MIT",
22
- "main": "dist/cjs/index.js",
23
- "module": "dist/esm/index.js",
24
- "types": "dist/types/index.d.ts",
22
+ "exports": {
23
+ ".": {
24
+ "require": "./dist/index.js",
25
+ "import": "./dist/index.mjs",
26
+ "types": "./dist/index.d.ts"
27
+ },
28
+ "./preview": {
29
+ "require": "./dist/config.js",
30
+ "import": "./dist/config.mjs",
31
+ "types": "./dist/config.d.ts"
32
+ },
33
+ "./package.json": {
34
+ "require": "./package.json",
35
+ "import": "./package.json",
36
+ "types": "./package.json"
37
+ }
38
+ },
39
+ "main": "dist/index.js",
40
+ "module": "dist/index.mjs",
41
+ "types": "dist/index.d.ts",
25
42
  "files": [
26
43
  "dist/**/*",
27
44
  "README.md",
@@ -29,25 +46,32 @@
29
46
  "*.d.ts"
30
47
  ],
31
48
  "scripts": {
32
- "prepare": "node ../../scripts/prepare.js"
49
+ "prepare": "esrun ../../scripts/prepare/bundle.ts"
33
50
  },
34
51
  "dependencies": {
35
- "@storybook/addons": "7.0.0-alpha.4",
36
- "@storybook/core-client": "7.0.0-alpha.4",
52
+ "@storybook/addons": "7.0.0-alpha.7",
53
+ "@storybook/core-client": "7.0.0-alpha.7",
37
54
  "@storybook/csf": "0.0.2--canary.4566f4d.1",
38
- "@storybook/preview-web": "7.0.0-alpha.4",
39
- "@storybook/store": "7.0.0-alpha.4",
55
+ "@storybook/preview-web": "7.0.0-alpha.7",
56
+ "@storybook/store": "7.0.0-alpha.7",
40
57
  "core-js": "^3.8.2",
41
58
  "global": "^4.4.0",
42
59
  "react": "16.14.0",
43
60
  "react-dom": "16.14.0",
44
61
  "ts-dedent": "^2.0.0"
45
62
  },
63
+ "devDependencies": {
64
+ "@digitak/esrun": "^3.2.2"
65
+ },
46
66
  "engines": {
47
67
  "node": ">=10.13.0"
48
68
  },
49
69
  "publishConfig": {
50
70
  "access": "public"
51
71
  },
52
- "gitHead": "006ed54452dd7c37a8cbe91a84f5312182f7ca00"
72
+ "bundlerEntrypoint": [
73
+ "./src/index.ts",
74
+ "./src/config.ts"
75
+ ],
76
+ "gitHead": "d334cabd251cd0ed8b845a87707dc84f007d4074"
53
77
  }
package/preview.js CHANGED
@@ -1 +1 @@
1
- export * from './dist/esm/preview/config';
1
+ export * from './dist/config';
package/dist/cjs/index.js DELETED
@@ -1,60 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "addDecorator", {
7
- enumerable: true,
8
- get: function () {
9
- return _preview.addDecorator;
10
- }
11
- });
12
- Object.defineProperty(exports, "addParameters", {
13
- enumerable: true,
14
- get: function () {
15
- return _preview.addParameters;
16
- }
17
- });
18
- Object.defineProperty(exports, "configure", {
19
- enumerable: true,
20
- get: function () {
21
- return _preview.configure;
22
- }
23
- });
24
- Object.defineProperty(exports, "forceReRender", {
25
- enumerable: true,
26
- get: function () {
27
- return _preview.forceReRender;
28
- }
29
- });
30
- Object.defineProperty(exports, "getStorybook", {
31
- enumerable: true,
32
- get: function () {
33
- return _preview.getStorybook;
34
- }
35
- });
36
- Object.defineProperty(exports, "raw", {
37
- enumerable: true,
38
- get: function () {
39
- return _preview.raw;
40
- }
41
- });
42
- Object.defineProperty(exports, "setAddon", {
43
- enumerable: true,
44
- get: function () {
45
- return _preview.setAddon;
46
- }
47
- });
48
- Object.defineProperty(exports, "storiesOf", {
49
- enumerable: true,
50
- get: function () {
51
- return _preview.storiesOf;
52
- }
53
- });
54
-
55
- var _preview = require("./preview");
56
-
57
- var _module, _module$hot;
58
-
59
- // optimization: stop HMR propagation in webpack
60
- (_module = module) === null || _module === void 0 ? void 0 : (_module$hot = _module.hot) === null || _module$hot === void 0 ? void 0 : _module$hot.decline();
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.parameters = void 0;
7
- Object.defineProperty(exports, "render", {
8
- enumerable: true,
9
- get: function () {
10
- return _render.render;
11
- }
12
- });
13
- Object.defineProperty(exports, "renderToDOM", {
14
- enumerable: true,
15
- get: function () {
16
- return _render.renderToDOM;
17
- }
18
- });
19
-
20
- var _render = require("./render");
21
-
22
- const parameters = {
23
- framework: 'server'
24
- };
25
- exports.parameters = parameters;
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- var _global = _interopRequireDefault(require("global"));
4
-
5
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
-
7
- const {
8
- window: globalWindow
9
- } = _global.default;
10
- globalWindow.STORYBOOK_ENV = 'SERVER';
@@ -1,47 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.storiesOf = exports.setAddon = exports.raw = exports.getStorybook = exports.forceReRender = exports.configure = exports.clearDecorators = exports.addParameters = exports.addDecorator = void 0;
7
-
8
- var _coreClient = require("@storybook/core-client");
9
-
10
- require("./globals");
11
-
12
- var _render = require("./render");
13
-
14
- const framework = 'server';
15
- const api = (0, _coreClient.start)(_render.renderToDOM, {
16
- render: _render.render
17
- });
18
-
19
- const storiesOf = (kind, m) => {
20
- return api.clientApi.storiesOf(kind, m).addParameters({
21
- framework
22
- });
23
- };
24
-
25
- exports.storiesOf = storiesOf;
26
-
27
- const configure = (...args) => api.configure(framework, ...args);
28
-
29
- exports.configure = configure;
30
- const {
31
- addDecorator,
32
- addParameters,
33
- clearDecorators,
34
- setAddon,
35
- getStorybook,
36
- raw
37
- } = api.clientApi;
38
- exports.raw = raw;
39
- exports.getStorybook = getStorybook;
40
- exports.setAddon = setAddon;
41
- exports.clearDecorators = clearDecorators;
42
- exports.addParameters = addParameters;
43
- exports.addDecorator = addDecorator;
44
- const {
45
- forceReRender
46
- } = api;
47
- exports.forceReRender = forceReRender;
@@ -1,113 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.render = void 0;
7
- exports.renderToDOM = renderToDOM;
8
-
9
- var _global = _interopRequireDefault(require("global"));
10
-
11
- var _tsDedent = _interopRequireDefault(require("ts-dedent"));
12
-
13
- var _previewWeb = require("@storybook/preview-web");
14
-
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
-
17
- /* eslint-disable no-param-reassign */
18
- const {
19
- fetch,
20
- Node
21
- } = _global.default;
22
-
23
- const defaultFetchStoryHtml = async (url, path, params, storyContext) => {
24
- const fetchUrl = new URL(`${url}/${path}`);
25
- fetchUrl.search = new URLSearchParams(Object.assign({}, storyContext.globals, params)).toString();
26
- const response = await fetch(fetchUrl);
27
- return response.text();
28
- };
29
-
30
- const buildStoryArgs = (args, argTypes) => {
31
- const storyArgs = Object.assign({}, args);
32
- Object.keys(argTypes).forEach(key => {
33
- const argType = argTypes[key];
34
- const {
35
- control
36
- } = argType;
37
- const controlType = control && control.type.toLowerCase();
38
- const argValue = storyArgs[key];
39
-
40
- switch (controlType) {
41
- case 'date':
42
- // For cross framework & language support we pick a consistent representation of Dates as strings
43
- storyArgs[key] = new Date(argValue).toISOString();
44
- break;
45
-
46
- case 'object':
47
- // send objects as JSON strings
48
- storyArgs[key] = JSON.stringify(argValue);
49
- break;
50
-
51
- default:
52
- }
53
- });
54
- return storyArgs;
55
- };
56
-
57
- const render = args => {};
58
-
59
- exports.render = render;
60
-
61
- async function renderToDOM({
62
- id,
63
- title,
64
- name,
65
- showMain,
66
- showError,
67
- forceRemount,
68
- storyFn,
69
- storyContext,
70
- storyContext: {
71
- parameters,
72
- args,
73
- argTypes
74
- }
75
- }, domElement) {
76
- // Some addons wrap the storyFn so we need to call it even though Server doesn't need the answer
77
- storyFn();
78
- const storyArgs = buildStoryArgs(args, argTypes);
79
- const {
80
- server: {
81
- url,
82
- id: storyId,
83
- fetchStoryHtml = defaultFetchStoryHtml,
84
- params
85
- }
86
- } = parameters;
87
- const fetchId = storyId || id;
88
- const storyParams = Object.assign({}, params, storyArgs);
89
- const element = await fetchStoryHtml(url, fetchId, storyParams, storyContext);
90
- showMain();
91
-
92
- if (typeof element === 'string') {
93
- domElement.innerHTML = element;
94
- (0, _previewWeb.simulatePageLoad)(domElement);
95
- } else if (element instanceof Node) {
96
- // Don't re-mount the element if it didn't change and neither did the story
97
- if (domElement.firstChild === element && forceRemount === false) {
98
- return;
99
- }
100
-
101
- domElement.innerHTML = '';
102
- domElement.appendChild(element);
103
- (0, _previewWeb.simulateDOMContentLoaded)();
104
- } else {
105
- showError({
106
- title: `Expecting an HTML snippet or DOM node from the story: "${name}" of "${title}".`,
107
- description: (0, _tsDedent.default)`
108
- Did you forget to return the HTML snippet from the story?
109
- Use "() => <your snippet or node>" or when defining the story.
110
- `
111
- });
112
- }
113
- }
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
package/dist/esm/index.js DELETED
@@ -1,3 +0,0 @@
1
- export { storiesOf, setAddon, addDecorator, addParameters, configure, getStorybook, forceReRender, raw } from './preview'; // optimization: stop HMR propagation in webpack
2
-
3
- module?.hot?.decline();
@@ -1,4 +0,0 @@
1
- export { render, renderToDOM } from './render';
2
- export const parameters = {
3
- framework: 'server'
4
- };
@@ -1,5 +0,0 @@
1
- import global from 'global';
2
- const {
3
- window: globalWindow
4
- } = global;
5
- globalWindow.STORYBOOK_ENV = 'SERVER';
@@ -1,24 +0,0 @@
1
- import { start } from '@storybook/core-client';
2
- import './globals';
3
- import { renderToDOM, render } from './render';
4
- const framework = 'server';
5
- const api = start(renderToDOM, {
6
- render
7
- });
8
- export const storiesOf = (kind, m) => {
9
- return api.clientApi.storiesOf(kind, m).addParameters({
10
- framework
11
- });
12
- };
13
- export const configure = (...args) => api.configure(framework, ...args);
14
- export const {
15
- addDecorator,
16
- addParameters,
17
- clearDecorators,
18
- setAddon,
19
- getStorybook,
20
- raw
21
- } = api.clientApi;
22
- export const {
23
- forceReRender
24
- } = api;
@@ -1,97 +0,0 @@
1
- /* eslint-disable no-param-reassign */
2
- import global from 'global';
3
- import dedent from 'ts-dedent';
4
- import { simulatePageLoad, simulateDOMContentLoaded } from '@storybook/preview-web';
5
- const {
6
- fetch,
7
- Node
8
- } = global;
9
-
10
- const defaultFetchStoryHtml = async (url, path, params, storyContext) => {
11
- const fetchUrl = new URL(`${url}/${path}`);
12
- fetchUrl.search = new URLSearchParams(Object.assign({}, storyContext.globals, params)).toString();
13
- const response = await fetch(fetchUrl);
14
- return response.text();
15
- };
16
-
17
- const buildStoryArgs = (args, argTypes) => {
18
- const storyArgs = Object.assign({}, args);
19
- Object.keys(argTypes).forEach(key => {
20
- const argType = argTypes[key];
21
- const {
22
- control
23
- } = argType;
24
- const controlType = control && control.type.toLowerCase();
25
- const argValue = storyArgs[key];
26
-
27
- switch (controlType) {
28
- case 'date':
29
- // For cross framework & language support we pick a consistent representation of Dates as strings
30
- storyArgs[key] = new Date(argValue).toISOString();
31
- break;
32
-
33
- case 'object':
34
- // send objects as JSON strings
35
- storyArgs[key] = JSON.stringify(argValue);
36
- break;
37
-
38
- default:
39
- }
40
- });
41
- return storyArgs;
42
- };
43
-
44
- export const render = args => {};
45
- export async function renderToDOM({
46
- id,
47
- title,
48
- name,
49
- showMain,
50
- showError,
51
- forceRemount,
52
- storyFn,
53
- storyContext,
54
- storyContext: {
55
- parameters,
56
- args,
57
- argTypes
58
- }
59
- }, domElement) {
60
- // Some addons wrap the storyFn so we need to call it even though Server doesn't need the answer
61
- storyFn();
62
- const storyArgs = buildStoryArgs(args, argTypes);
63
- const {
64
- server: {
65
- url,
66
- id: storyId,
67
- fetchStoryHtml = defaultFetchStoryHtml,
68
- params
69
- }
70
- } = parameters;
71
- const fetchId = storyId || id;
72
- const storyParams = Object.assign({}, params, storyArgs);
73
- const element = await fetchStoryHtml(url, fetchId, storyParams, storyContext);
74
- showMain();
75
-
76
- if (typeof element === 'string') {
77
- domElement.innerHTML = element;
78
- simulatePageLoad(domElement);
79
- } else if (element instanceof Node) {
80
- // Don't re-mount the element if it didn't change and neither did the story
81
- if (domElement.firstChild === element && forceRemount === false) {
82
- return;
83
- }
84
-
85
- domElement.innerHTML = '';
86
- domElement.appendChild(element);
87
- simulateDOMContentLoaded();
88
- } else {
89
- showError({
90
- title: `Expecting an HTML snippet or DOM node from the story: "${name}" of "${title}".`,
91
- description: dedent`
92
- Did you forget to return the HTML snippet from the story?
93
- Use "() => <your snippet or node>" or when defining the story.
94
- `
95
- });
96
- }
97
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export { storiesOf, setAddon, addDecorator, addParameters, configure, getStorybook, forceReRender, raw, } from './preview';
@@ -1,4 +0,0 @@
1
- export { render, renderToDOM } from './render';
2
- export declare const parameters: {
3
- framework: string;
4
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1,20 +0,0 @@
1
- /// <reference types="webpack-env" />
2
- import type { ClientStoryApi, Loadable } from '@storybook/addons';
3
- import './globals';
4
- import type { IStorybookSection, ServerFramework } from './types';
5
- interface ClientApi extends ClientStoryApi<ServerFramework['storyResult']> {
6
- setAddon(addon: any): void;
7
- configure(loader: Loadable, module: NodeModule): void;
8
- getStorybook(): IStorybookSection[];
9
- clearDecorators(): void;
10
- forceReRender(): void;
11
- raw: () => any;
12
- }
13
- export declare const storiesOf: ClientApi['storiesOf'];
14
- export declare const configure: ClientApi['configure'];
15
- export declare const addDecorator: (() => never) | ((decorator: import("@storybook/csf").DecoratorFunction<ServerFramework, import("@storybook/addons").Args>) => void), addParameters: (({ globals, globalTypes, ...parameters }: import("@storybook/csf").Parameters & {
16
- globals?: import("@storybook/csf").Globals;
17
- globalTypes?: import("@storybook/csf").GlobalTypes;
18
- }) => void) | (() => never), clearDecorators: (() => void) | (() => never), setAddon: ((addon: any) => void) | (() => never), getStorybook: (() => never) | (() => import("lib/client-api/dist/types/ClientApi").GetStorybookKind<ServerFramework>[]), raw: (() => never) | (() => import("lib/store/dist/types").BoundStory<ServerFramework>[]);
19
- export declare const forceReRender: (() => never) | (() => void);
20
- export {};
@@ -1,5 +0,0 @@
1
- import type { RenderContext } from '@storybook/store';
2
- import type { StoryFn } from '@storybook/csf';
3
- import type { ServerFramework } from './types';
4
- export declare const render: StoryFn<ServerFramework>;
5
- export declare function renderToDOM({ id, title, name, showMain, showError, forceRemount, storyFn, storyContext, storyContext: { parameters, args, argTypes }, }: RenderContext<ServerFramework>, domElement: Element): Promise<void>;
@@ -1,20 +0,0 @@
1
- import type { StoryContext } from '@storybook/csf';
2
- export type { RenderContext } from '@storybook/core-client';
3
- export declare type StoryFnServerReturnType = any;
4
- export declare type ServerFramework = {
5
- component: string;
6
- storyResult: StoryFnServerReturnType;
7
- };
8
- export declare type FetchStoryHtmlType = (url: string, id: string, params: any, context: StoryContext<ServerFramework>) => Promise<string | Node>;
9
- export interface IStorybookStory {
10
- name: string;
11
- render: (context: any) => any;
12
- }
13
- export interface IStorybookSection {
14
- kind: string;
15
- stories: IStorybookStory[];
16
- }
17
- export interface ShowErrorArgs {
18
- title: string;
19
- description: string;
20
- }