@ms-cloudpack/storybook-builder 0.7.82 → 0.7.83
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/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAWzD,KAAK,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAwBzC,eAAO,MAAM,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAOzC,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,gBAAgB,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAWzD,KAAK,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAwBzC,eAAO,MAAM,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAOzC,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAqH3C,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAI3C,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -103,7 +103,7 @@ export const start = async ({ options, startTime, router, server: expressServer
|
|
|
103
103
|
const apiServer = await createCloudpackServer({}, apiContext);
|
|
104
104
|
addDisposableServer(apiServer, 'api server');
|
|
105
105
|
// Kick off bundling app package as soon as api server is ready.
|
|
106
|
-
void ensurePackageBundled({ name: appDefinition.name, version: appDefinition.version }, apiContext);
|
|
106
|
+
void ensurePackageBundled({ name: appDefinition.name, version: appDefinition.version, shouldGetBundleInfo: false }, apiContext);
|
|
107
107
|
// Start bundle and app servers for hosting the app.
|
|
108
108
|
const { appServer, bundleServer } = await startServers({
|
|
109
109
|
definition: appDefinition,
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { ensurePackageBundled } from '@ms-cloudpack/api-server';\nimport { startServers } from '@ms-cloudpack/app-server';\nimport type { PackageJsonExportsObject } from '@ms-cloudpack/common-types';\nimport { getLocalCachePath } from '@ms-cloudpack/config';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\nimport { findPackageRoot, normalizedPathRelativeTo, resolve } from '@ms-cloudpack/path-utilities';\nimport { loadPreviewOrConfigFile } from '@storybook/core-common';\nimport type { Builder, Options } from '@storybook/types';\nimport fsPromises from 'fs/promises';\nimport path from 'path';\nimport serveStatic from 'serve-static';\nimport { fileURLToPath } from 'url';\nimport { generateIframeHtml } from './generateIFrameHtml.js';\nimport { listStories } from './listStories.js';\nimport { createCloudpackContext } from './createCloudpackContext.js';\n\nconst currentDir = path.dirname(fileURLToPath(import.meta.url));\n\ntype CloudpackBuilder = Builder<Options>;\n\ntype ClosableServer = {\n close: () => Promise<void>;\n url: string;\n};\n\nconst disposables: Array<() => void | Promise<void>> = [];\n\nfunction addDisposableServer(server: ClosableServer | undefined, name: string) {\n if (!server) return;\n\n disposables.push(async () => {\n const desc = `${name} (${server.url})`;\n console.info(`Closing ${desc}`);\n try {\n await server.close();\n console.info(`Closed ${desc}`);\n } catch (err) {\n console.warn(`Error closing ${desc}:`, err);\n }\n });\n}\n\nexport const bail: CloudpackBuilder['bail'] = async (error) => {\n if (error) {\n console.error('Error:', error);\n }\n\n // eslint-disable-next-line @typescript-eslint/await-thenable -- mix of promise and not\n await Promise.all(disposables.map((d) => d()));\n};\n\nexport const start: CloudpackBuilder['start'] = async ({ options, startTime, router, server: expressServer }) => {\n const previewResolvedDir = await resolve('@storybook/preview', currentDir);\n if (!previewResolvedDir) {\n throw new Error(`Could not resolve @storybook/preview from ${currentDir}`);\n }\n const previewDirOrigin = path.join(previewResolvedDir, 'dist');\n\n router.use('/sb-preview', serveStatic(previewDirOrigin, { immutable: true, maxAge: '5m' }));\n\n // TODO: This might be useful later on.\n // const env = await options.presets.apply<Record<string, string>>('env');\n\n // eslint-disable-next-line no-restricted-properties -- this is where we find the appPath\n const cwd = process.cwd();\n const appPath = findPackageRoot(cwd);\n if (!appPath) {\n throw new Error(`Could not find package.json relative to ${cwd}`);\n }\n\n const apiContext = await createCloudpackContext({ appPath, storybookOptions: options });\n disposables.push(() => apiContext.dispose?.());\n const { packages, session } = apiContext;\n const { config } = session;\n\n // Resolve the story files, and find the preview/config file.\n const { storySpecifiers, resolvedStories } = await listStories({ storybookOptions: options, appPath });\n const previewOrConfigFile = loadPreviewOrConfigFile(options);\n\n // Overwrite the exports of the app package to just contain the stories and preview/config file.\n packages.registerTransform(() => ({ definition, packagePath }) => {\n if (slash(appPath) !== slash(packagePath)) {\n return;\n }\n\n // We just need a simple path mapping for the stories, so it's not necessary to use addExportsMapEntry.\n const exports: PackageJsonExportsObject = {};\n\n for (const story of resolvedStories) {\n if (!story.startsWith('./')) {\n // Not sure if this is even allowed by Storybook, but check just in case...\n // In theory we could handle this by either modifying the exports of the other package too,\n // or possibly by enabling autoUpdateEntries so the file will be bundled on import.\n throw new Error(`Cloudpack does not support stories outside of the package root: ${story}`);\n }\n exports[story] = story;\n }\n\n if (previewOrConfigFile) {\n const normalizedPreview = normalizedPathRelativeTo(appPath, previewOrConfigFile);\n if (!normalizedPreview.startsWith('./')) {\n // Not sure if this is allowed by storybook either\n throw new Error(\n `Cloudpack does not support preview/config files outside of the package root: ${previewOrConfigFile}`,\n );\n }\n exports[normalizedPreview] = normalizedPreview;\n }\n\n return { ...definition, exports };\n });\n\n const appDefinition = await packages.get(appPath);\n\n // Storybook set up is mostly done here.\n const generated = await generateIframeHtml(\n { storybookOptions: options, storySpecifiers, resolvedStories, appDefinition, previewOrConfigFile },\n apiContext,\n );\n\n // TODO: Currently saving it to disk as the config only accepts a path.\n const cachePath = getLocalCachePath(appPath);\n await fsPromises.mkdir(cachePath, { recursive: true });\n const iFramePath = path.join(cachePath, 'iframe.html');\n const relativeIframePath = normalizedPathRelativeTo(appPath, iFramePath);\n await fsPromises.writeFile(iFramePath, generated, { encoding: 'utf-8' });\n\n // iFrame script is required for storybook to work.\n config.routes ??= [];\n config.routes.push({\n match: '/iframe.html',\n serverEntry: { importPath: relativeIframePath, sourcePath: iFramePath },\n });\n\n const { createCloudpackServer } = await import('@ms-cloudpack/api-server');\n\n // Start api server for tracking status and handling remote requests.\n const apiServer = await createCloudpackServer({}, apiContext);\n addDisposableServer(apiServer, 'api server');\n\n // Kick off bundling app package as soon as api server is ready.\n void ensurePackageBundled({ name: appDefinition.name, version: appDefinition.version }, apiContext);\n\n // Start bundle and app servers for hosting the app.\n const { appServer, bundleServer } = await startServers(\n {\n definition: appDefinition,\n expressServer,\n // TODO: Get options and enable this.\n bundleServerOptions: { disableCache: false },\n },\n apiContext,\n );\n addDisposableServer(appServer, 'app server');\n addDisposableServer(bundleServer, 'bundle server');\n\n router.use(appServer.app);\n\n // TODO: Figure out if it is possible to know when browser will open.\n // performance.measure(PerfMeasurementOpenBrowser, PerfMarkerCliEntry);\n\n return {\n bail,\n totalTime: process.hrtime(startTime),\n };\n};\n\nexport const build: CloudpackBuilder['build'] = () => {\n console.log('Cloudpack Storybook build is not implemented yet.');\n // eslint-disable-next-line no-restricted-properties -- top level handler\n process.exit(1);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { ensurePackageBundled } from '@ms-cloudpack/api-server';\nimport { startServers } from '@ms-cloudpack/app-server';\nimport type { PackageJsonExportsObject } from '@ms-cloudpack/common-types';\nimport { getLocalCachePath } from '@ms-cloudpack/config';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\nimport { findPackageRoot, normalizedPathRelativeTo, resolve } from '@ms-cloudpack/path-utilities';\nimport { loadPreviewOrConfigFile } from '@storybook/core-common';\nimport type { Builder, Options } from '@storybook/types';\nimport fsPromises from 'fs/promises';\nimport path from 'path';\nimport serveStatic from 'serve-static';\nimport { fileURLToPath } from 'url';\nimport { generateIframeHtml } from './generateIFrameHtml.js';\nimport { listStories } from './listStories.js';\nimport { createCloudpackContext } from './createCloudpackContext.js';\n\nconst currentDir = path.dirname(fileURLToPath(import.meta.url));\n\ntype CloudpackBuilder = Builder<Options>;\n\ntype ClosableServer = {\n close: () => Promise<void>;\n url: string;\n};\n\nconst disposables: Array<() => void | Promise<void>> = [];\n\nfunction addDisposableServer(server: ClosableServer | undefined, name: string) {\n if (!server) return;\n\n disposables.push(async () => {\n const desc = `${name} (${server.url})`;\n console.info(`Closing ${desc}`);\n try {\n await server.close();\n console.info(`Closed ${desc}`);\n } catch (err) {\n console.warn(`Error closing ${desc}:`, err);\n }\n });\n}\n\nexport const bail: CloudpackBuilder['bail'] = async (error) => {\n if (error) {\n console.error('Error:', error);\n }\n\n // eslint-disable-next-line @typescript-eslint/await-thenable -- mix of promise and not\n await Promise.all(disposables.map((d) => d()));\n};\n\nexport const start: CloudpackBuilder['start'] = async ({ options, startTime, router, server: expressServer }) => {\n const previewResolvedDir = await resolve('@storybook/preview', currentDir);\n if (!previewResolvedDir) {\n throw new Error(`Could not resolve @storybook/preview from ${currentDir}`);\n }\n const previewDirOrigin = path.join(previewResolvedDir, 'dist');\n\n router.use('/sb-preview', serveStatic(previewDirOrigin, { immutable: true, maxAge: '5m' }));\n\n // TODO: This might be useful later on.\n // const env = await options.presets.apply<Record<string, string>>('env');\n\n // eslint-disable-next-line no-restricted-properties -- this is where we find the appPath\n const cwd = process.cwd();\n const appPath = findPackageRoot(cwd);\n if (!appPath) {\n throw new Error(`Could not find package.json relative to ${cwd}`);\n }\n\n const apiContext = await createCloudpackContext({ appPath, storybookOptions: options });\n disposables.push(() => apiContext.dispose?.());\n const { packages, session } = apiContext;\n const { config } = session;\n\n // Resolve the story files, and find the preview/config file.\n const { storySpecifiers, resolvedStories } = await listStories({ storybookOptions: options, appPath });\n const previewOrConfigFile = loadPreviewOrConfigFile(options);\n\n // Overwrite the exports of the app package to just contain the stories and preview/config file.\n packages.registerTransform(() => ({ definition, packagePath }) => {\n if (slash(appPath) !== slash(packagePath)) {\n return;\n }\n\n // We just need a simple path mapping for the stories, so it's not necessary to use addExportsMapEntry.\n const exports: PackageJsonExportsObject = {};\n\n for (const story of resolvedStories) {\n if (!story.startsWith('./')) {\n // Not sure if this is even allowed by Storybook, but check just in case...\n // In theory we could handle this by either modifying the exports of the other package too,\n // or possibly by enabling autoUpdateEntries so the file will be bundled on import.\n throw new Error(`Cloudpack does not support stories outside of the package root: ${story}`);\n }\n exports[story] = story;\n }\n\n if (previewOrConfigFile) {\n const normalizedPreview = normalizedPathRelativeTo(appPath, previewOrConfigFile);\n if (!normalizedPreview.startsWith('./')) {\n // Not sure if this is allowed by storybook either\n throw new Error(\n `Cloudpack does not support preview/config files outside of the package root: ${previewOrConfigFile}`,\n );\n }\n exports[normalizedPreview] = normalizedPreview;\n }\n\n return { ...definition, exports };\n });\n\n const appDefinition = await packages.get(appPath);\n\n // Storybook set up is mostly done here.\n const generated = await generateIframeHtml(\n { storybookOptions: options, storySpecifiers, resolvedStories, appDefinition, previewOrConfigFile },\n apiContext,\n );\n\n // TODO: Currently saving it to disk as the config only accepts a path.\n const cachePath = getLocalCachePath(appPath);\n await fsPromises.mkdir(cachePath, { recursive: true });\n const iFramePath = path.join(cachePath, 'iframe.html');\n const relativeIframePath = normalizedPathRelativeTo(appPath, iFramePath);\n await fsPromises.writeFile(iFramePath, generated, { encoding: 'utf-8' });\n\n // iFrame script is required for storybook to work.\n config.routes ??= [];\n config.routes.push({\n match: '/iframe.html',\n serverEntry: { importPath: relativeIframePath, sourcePath: iFramePath },\n });\n\n const { createCloudpackServer } = await import('@ms-cloudpack/api-server');\n\n // Start api server for tracking status and handling remote requests.\n const apiServer = await createCloudpackServer({}, apiContext);\n addDisposableServer(apiServer, 'api server');\n\n // Kick off bundling app package as soon as api server is ready.\n void ensurePackageBundled(\n { name: appDefinition.name, version: appDefinition.version, shouldGetBundleInfo: false },\n apiContext,\n );\n\n // Start bundle and app servers for hosting the app.\n const { appServer, bundleServer } = await startServers(\n {\n definition: appDefinition,\n expressServer,\n // TODO: Get options and enable this.\n bundleServerOptions: { disableCache: false },\n },\n apiContext,\n );\n addDisposableServer(appServer, 'app server');\n addDisposableServer(bundleServer, 'bundle server');\n\n router.use(appServer.app);\n\n // TODO: Figure out if it is possible to know when browser will open.\n // performance.measure(PerfMeasurementOpenBrowser, PerfMarkerCliEntry);\n\n return {\n bail,\n totalTime: process.hrtime(startTime),\n };\n};\n\nexport const build: CloudpackBuilder['build'] = () => {\n console.log('Cloudpack Storybook build is not implemented yet.');\n // eslint-disable-next-line no-restricted-properties -- top level handler\n process.exit(1);\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ms-cloudpack/storybook-builder",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.83",
|
|
4
4
|
"description": "Experimental Storybook builder using Cloudpack",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
"lint": "cloudpack-scripts lint"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@ms-cloudpack/api-server": "^0.66.
|
|
26
|
-
"@ms-cloudpack/app-server": "^0.20.
|
|
25
|
+
"@ms-cloudpack/api-server": "^0.66.21",
|
|
26
|
+
"@ms-cloudpack/app-server": "^0.20.60",
|
|
27
27
|
"@ms-cloudpack/common-types": "^0.33.3",
|
|
28
28
|
"@ms-cloudpack/config": "^0.38.35",
|
|
29
29
|
"@ms-cloudpack/environment": "^0.1.1",
|
|
30
|
-
"@ms-cloudpack/overlay": "^0.19.
|
|
30
|
+
"@ms-cloudpack/overlay": "^0.19.78",
|
|
31
31
|
"@ms-cloudpack/package-utilities": "^13.7.1",
|
|
32
32
|
"@ms-cloudpack/path-string-parsing": "^1.3.0",
|
|
33
33
|
"@ms-cloudpack/path-utilities": "^3.2.8",
|