@analogjs/storybook-angular 3.0.0-alpha.33 → 3.0.0-alpha.35
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/package.json +1 -1
- package/src/lib/preset.js +7 -7
- package/src/lib/preset.js.map +1 -1
- package/src/types.d.ts +4 -2
package/package.json
CHANGED
package/src/lib/preset.js
CHANGED
|
@@ -42,8 +42,9 @@ async function resolveExperimentalZoneless(frameworkOptions, angularBuilderOptio
|
|
|
42
42
|
}
|
|
43
43
|
var viteFinal = async (config, options) => {
|
|
44
44
|
config.plugins = (config.plugins ?? []).flat().filter((plugin) => !plugin.name.includes("analogjs"));
|
|
45
|
-
const
|
|
46
|
-
const experimentalZoneless = await resolveExperimentalZoneless(
|
|
45
|
+
const { hmr: _removedHmrOption, ...frameworkOptions } = (await options.presets.apply("framework")).options ?? {};
|
|
46
|
+
const experimentalZoneless = await resolveExperimentalZoneless(frameworkOptions, options?.angularBuilderOptions);
|
|
47
|
+
const liveReload = typeof frameworkOptions.liveReload !== "undefined" ? frameworkOptions.liveReload : false;
|
|
47
48
|
return vite.mergeConfig(config, {
|
|
48
49
|
optimizeDeps: { include: [
|
|
49
50
|
"@storybook/angular/client",
|
|
@@ -57,11 +58,10 @@ var viteFinal = async (config, options) => {
|
|
|
57
58
|
resolve: { alias: { "@storybook/globalThis": "@storybook/global" } },
|
|
58
59
|
plugins: [
|
|
59
60
|
angular({
|
|
60
|
-
jit: typeof
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
inlineStylesExtension: typeof framework.options?.inlineStylesExtension !== "undefined" ? framework.options?.inlineStylesExtension : "css"
|
|
61
|
+
jit: typeof frameworkOptions.jit !== "undefined" ? frameworkOptions.jit : true,
|
|
62
|
+
liveReload,
|
|
63
|
+
tsconfig: typeof frameworkOptions.tsconfig !== "undefined" ? frameworkOptions.tsconfig : options?.tsConfig ?? "./.storybook/tsconfig.json",
|
|
64
|
+
inlineStylesExtension: typeof frameworkOptions.inlineStylesExtension !== "undefined" ? frameworkOptions.inlineStylesExtension : "css"
|
|
65
65
|
}),
|
|
66
66
|
angularOptionsPlugin(options, {
|
|
67
67
|
normalizePath: vite.normalizePath,
|
package/src/lib/preset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset.js","names":[],"sources":["../../../src/lib/preset.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { resolve } from 'node:path';\nimport { core as PresetCore } from '@storybook/angular/preset';\nimport { fileURLToPath } from 'node:url';\nimport * as vite from 'vite';\nimport type { Plugin, UserConfig } from 'vite';\nimport angular from '@analogjs/vite-plugin-angular';\nimport { debugStyles } from './debug';\n\nexport const previewAnnotations = async (\n entries: string[] = [],\n options: any,\n): Promise<string[]> => {\n const config = fileURLToPath(\n import.meta.resolve('@storybook/angular/client/config'),\n );\n const annotations = [...entries, config];\n\n if (options.enableProdMode) {\n const previewProdPath = fileURLToPath(\n import.meta.resolve('@storybook/angular/client/preview-prod'),\n );\n annotations.unshift(previewProdPath);\n }\n\n const docsConfig = await options.presets.apply('docs', {}, options);\n const docsEnabled = Object.keys(docsConfig).length > 0;\n if (docsEnabled) {\n const docsConfigPath = fileURLToPath(\n import.meta.resolve('@storybook/angular/client/docs/config'),\n );\n annotations.push(docsConfigPath);\n }\n return annotations;\n};\n\nexport const core = async (config: any, options: any): Promise<any> => {\n const presetCore = await PresetCore(config, options);\n return {\n ...presetCore,\n builder: {\n name: import.meta.resolve('@storybook/builder-vite'),\n options: { ...presetCore.options },\n },\n };\n};\n\nasync function resolveExperimentalZoneless(\n frameworkOptions: any,\n angularBuilderOptions: any,\n) {\n // 1. Explicit framework option (user's .storybook/main.ts)\n if (typeof frameworkOptions?.experimentalZoneless === 'boolean') {\n return frameworkOptions.experimentalZoneless;\n }\n\n // 2. Angular builder options (set by start-storybook/build-storybook)\n if (typeof angularBuilderOptions?.experimentalZoneless === 'boolean') {\n return angularBuilderOptions.experimentalZoneless;\n }\n\n // 3. Auto-detect Angular 21+ (matches @storybook/angular builder behavior)\n try {\n const { VERSION } = await import('@angular/core');\n return !!(VERSION.major && Number(VERSION.major) >= 21);\n } catch {\n return false;\n }\n}\n\nexport const viteFinal = async (config: any, options: any): Promise<any> => {\n // Remove any loaded analogjs plugins from a vite.config.(m)ts file\n config.plugins = (config.plugins ?? [])\n .flat()\n .filter((plugin: any) => !plugin.name.includes('analogjs'));\n\n // @ts-expect-error - untyped storybook presets API\n const framework = await options.presets.apply('framework');\n const experimentalZoneless = await resolveExperimentalZoneless(\n framework.options,\n options?.angularBuilderOptions,\n );\n return vite.mergeConfig(config, {\n // Add dependencies to pre-optimization\n optimizeDeps: {\n include: [\n '@storybook/angular/client',\n '@analogjs/storybook-angular',\n '@angular/compiler',\n '@angular/platform-browser',\n '@angular/platform-browser/animations',\n 'tslib',\n ...(experimentalZoneless ? [] : ['zone.js']),\n ],\n },\n resolve: {\n alias: {\n '@storybook/globalThis': '@storybook/global',\n },\n },\n plugins: [\n angular({\n jit:\n typeof framework.options?.jit !== 'undefined'\n ? framework.options?.jit\n : true,\n hmr:\n typeof framework.options?.hmr !== 'undefined'\n ? framework.options?.hmr\n : typeof framework.options?.liveReload !== 'undefined'\n ? framework.options?.liveReload\n : false,\n liveReload: framework.options?.liveReload,\n tsconfig:\n typeof framework.options?.tsconfig !== 'undefined'\n ? framework.options?.tsconfig\n : (options?.tsConfig ?? './.storybook/tsconfig.json'),\n inlineStylesExtension:\n typeof framework.options?.inlineStylesExtension !== 'undefined'\n ? framework.options?.inlineStylesExtension\n : 'css',\n }),\n angularOptionsPlugin(options, {\n normalizePath: vite.normalizePath,\n experimentalZoneless,\n }),\n storybookTransformConfigPlugin(),\n ],\n define: {\n STORYBOOK_ANGULAR_OPTIONS: JSON.stringify({\n experimentalZoneless: !!experimentalZoneless,\n }),\n },\n });\n};\n\nfunction angularOptionsPlugin(\n options: any,\n {\n normalizePath,\n experimentalZoneless,\n }: { normalizePath: (path: string) => string; experimentalZoneless: boolean },\n): Plugin {\n let resolvedConfig: UserConfig | undefined;\n\n const resolveStyleImport = (\n extraImport: string,\n projectRoot: string,\n workspaceRoot: string,\n ) => {\n const resolvedProjectImport = resolve(projectRoot, extraImport);\n const resolvedWorkspaceImport = resolve(workspaceRoot, extraImport);\n\n if (\n extraImport.startsWith('.') ||\n extraImport.startsWith('src') ||\n existsSync(resolvedProjectImport)\n ) {\n return {\n specifier: resolvedProjectImport,\n source: 'project',\n } as const;\n }\n\n if (existsSync(resolvedWorkspaceImport)) {\n return {\n specifier: resolvedWorkspaceImport,\n source: 'workspace',\n } as const;\n }\n\n return {\n specifier: extraImport,\n source: 'bare',\n } as const;\n };\n\n return {\n name: 'analogjs-storybook-options-plugin',\n config(userConfig: UserConfig) {\n resolvedConfig = userConfig;\n const loadPaths =\n options?.angularBuilderOptions?.stylePreprocessorOptions?.loadPaths;\n const sassOptions =\n options?.angularBuilderOptions?.stylePreprocessorOptions?.sass;\n\n if (Array.isArray(loadPaths)) {\n const workspaceRoot =\n options.angularBuilderContext?.workspaceRoot ??\n userConfig?.root ??\n process.cwd();\n const resolvedLoadPaths = loadPaths.map(\n (loadPath) => `${resolve(workspaceRoot, loadPath)}`,\n );\n\n debugStyles('resolved SCSS load paths', {\n configDir: options.configDir,\n workspaceRoot,\n projectRoot: userConfig?.root ?? process.cwd(),\n loadPaths,\n resolvedLoadPaths,\n });\n\n return {\n css: {\n preprocessorOptions: {\n scss: {\n ...sassOptions,\n loadPaths: resolvedLoadPaths,\n },\n },\n },\n };\n }\n\n return;\n },\n async transform(code: string, id: string) {\n if (\n normalizePath(id).endsWith(\n normalizePath(`${options.configDir}/preview.ts`),\n )\n ) {\n const imports = [];\n const styles = options?.angularBuilderOptions?.styles;\n const workspaceRoot =\n options?.angularBuilderContext?.workspaceRoot ?? process.cwd();\n\n if (Array.isArray(styles)) {\n debugStyles('injecting Storybook global styles', {\n configDir: options.configDir,\n workspaceRoot,\n projectRoot: resolvedConfig?.root ?? process.cwd(),\n styles,\n });\n\n styles.forEach((style) => {\n imports.push(style);\n });\n }\n\n if (!experimentalZoneless) {\n imports.push('zone.js');\n }\n\n // Use vite config root when angularBuilderContext is not available\n // (e.g., when running via Vitest instead of Angular builders)\n const projectRoot = resolvedConfig?.root ?? process.cwd();\n\n return {\n code: `\n ${imports\n .map((extraImport) => {\n const resolved = resolveStyleImport(\n extraImport,\n projectRoot,\n workspaceRoot,\n );\n\n debugStyles('resolved Storybook style import', {\n input: extraImport,\n source: resolved.source,\n specifier: resolved.specifier,\n });\n\n return `import '${resolved.specifier}';`;\n })\n .join('\\n')}\n ${code}\n `,\n };\n }\n\n return;\n },\n };\n}\n\nfunction storybookTransformConfigPlugin(): Plugin {\n const configKey = vite.rolldownVersion ? 'oxc' : 'esbuild';\n\n return {\n name: 'analogjs-storybook-transform-config',\n apply: 'build',\n config() {\n return {\n [configKey]: {\n // Don't mangle class names during the build\n // This fixes display of compodoc argtypes\n keepNames: true,\n },\n };\n },\n };\n}\n\nexport { addons } from '@storybook/angular/preset';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"preset.js","names":[],"sources":["../../../src/lib/preset.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { resolve } from 'node:path';\nimport { core as PresetCore } from '@storybook/angular/preset';\nimport { fileURLToPath } from 'node:url';\nimport * as vite from 'vite';\nimport type { Plugin, UserConfig } from 'vite';\nimport angular from '@analogjs/vite-plugin-angular';\nimport { debugStyles } from './debug';\n\nexport const previewAnnotations = async (\n entries: string[] = [],\n options: any,\n): Promise<string[]> => {\n const config = fileURLToPath(\n import.meta.resolve('@storybook/angular/client/config'),\n );\n const annotations = [...entries, config];\n\n if (options.enableProdMode) {\n const previewProdPath = fileURLToPath(\n import.meta.resolve('@storybook/angular/client/preview-prod'),\n );\n annotations.unshift(previewProdPath);\n }\n\n const docsConfig = await options.presets.apply('docs', {}, options);\n const docsEnabled = Object.keys(docsConfig).length > 0;\n if (docsEnabled) {\n const docsConfigPath = fileURLToPath(\n import.meta.resolve('@storybook/angular/client/docs/config'),\n );\n annotations.push(docsConfigPath);\n }\n return annotations;\n};\n\nexport const core = async (config: any, options: any): Promise<any> => {\n const presetCore = await PresetCore(config, options);\n return {\n ...presetCore,\n builder: {\n name: import.meta.resolve('@storybook/builder-vite'),\n options: { ...presetCore.options },\n },\n };\n};\n\nasync function resolveExperimentalZoneless(\n frameworkOptions: any,\n angularBuilderOptions: any,\n) {\n // 1. Explicit framework option (user's .storybook/main.ts)\n if (typeof frameworkOptions?.experimentalZoneless === 'boolean') {\n return frameworkOptions.experimentalZoneless;\n }\n\n // 2. Angular builder options (set by start-storybook/build-storybook)\n if (typeof angularBuilderOptions?.experimentalZoneless === 'boolean') {\n return angularBuilderOptions.experimentalZoneless;\n }\n\n // 3. Auto-detect Angular 21+ (matches @storybook/angular builder behavior)\n try {\n const { VERSION } = await import('@angular/core');\n return !!(VERSION.major && Number(VERSION.major) >= 21);\n } catch {\n return false;\n }\n}\n\nexport const viteFinal = async (config: any, options: any): Promise<any> => {\n // Remove any loaded analogjs plugins from a vite.config.(m)ts file\n config.plugins = (config.plugins ?? [])\n .flat()\n .filter((plugin: any) => !plugin.name.includes('analogjs'));\n\n // @ts-expect-error - untyped storybook presets API\n const framework = await options.presets.apply('framework');\n const { hmr: _removedHmrOption, ...frameworkOptions } =\n framework.options ?? {};\n const experimentalZoneless = await resolveExperimentalZoneless(\n frameworkOptions,\n options?.angularBuilderOptions,\n );\n const liveReload =\n typeof frameworkOptions.liveReload !== 'undefined'\n ? frameworkOptions.liveReload\n : false;\n return vite.mergeConfig(config, {\n // Add dependencies to pre-optimization\n optimizeDeps: {\n include: [\n '@storybook/angular/client',\n '@analogjs/storybook-angular',\n '@angular/compiler',\n '@angular/platform-browser',\n '@angular/platform-browser/animations',\n 'tslib',\n ...(experimentalZoneless ? [] : ['zone.js']),\n ],\n },\n resolve: {\n alias: {\n '@storybook/globalThis': '@storybook/global',\n },\n },\n plugins: [\n angular({\n jit:\n typeof frameworkOptions.jit !== 'undefined'\n ? frameworkOptions.jit\n : true,\n liveReload,\n tsconfig:\n typeof frameworkOptions.tsconfig !== 'undefined'\n ? frameworkOptions.tsconfig\n : (options?.tsConfig ?? './.storybook/tsconfig.json'),\n inlineStylesExtension:\n typeof frameworkOptions.inlineStylesExtension !== 'undefined'\n ? frameworkOptions.inlineStylesExtension\n : 'css',\n }),\n angularOptionsPlugin(options, {\n normalizePath: vite.normalizePath,\n experimentalZoneless,\n }),\n storybookTransformConfigPlugin(),\n ],\n define: {\n STORYBOOK_ANGULAR_OPTIONS: JSON.stringify({\n experimentalZoneless: !!experimentalZoneless,\n }),\n },\n });\n};\n\nfunction angularOptionsPlugin(\n options: any,\n {\n normalizePath,\n experimentalZoneless,\n }: { normalizePath: (path: string) => string; experimentalZoneless: boolean },\n): Plugin {\n let resolvedConfig: UserConfig | undefined;\n\n const resolveStyleImport = (\n extraImport: string,\n projectRoot: string,\n workspaceRoot: string,\n ) => {\n const resolvedProjectImport = resolve(projectRoot, extraImport);\n const resolvedWorkspaceImport = resolve(workspaceRoot, extraImport);\n\n if (\n extraImport.startsWith('.') ||\n extraImport.startsWith('src') ||\n existsSync(resolvedProjectImport)\n ) {\n return {\n specifier: resolvedProjectImport,\n source: 'project',\n } as const;\n }\n\n if (existsSync(resolvedWorkspaceImport)) {\n return {\n specifier: resolvedWorkspaceImport,\n source: 'workspace',\n } as const;\n }\n\n return {\n specifier: extraImport,\n source: 'bare',\n } as const;\n };\n\n return {\n name: 'analogjs-storybook-options-plugin',\n config(userConfig: UserConfig) {\n resolvedConfig = userConfig;\n const loadPaths =\n options?.angularBuilderOptions?.stylePreprocessorOptions?.loadPaths;\n const sassOptions =\n options?.angularBuilderOptions?.stylePreprocessorOptions?.sass;\n\n if (Array.isArray(loadPaths)) {\n const workspaceRoot =\n options.angularBuilderContext?.workspaceRoot ??\n userConfig?.root ??\n process.cwd();\n const resolvedLoadPaths = loadPaths.map(\n (loadPath) => `${resolve(workspaceRoot, loadPath)}`,\n );\n\n debugStyles('resolved SCSS load paths', {\n configDir: options.configDir,\n workspaceRoot,\n projectRoot: userConfig?.root ?? process.cwd(),\n loadPaths,\n resolvedLoadPaths,\n });\n\n return {\n css: {\n preprocessorOptions: {\n scss: {\n ...sassOptions,\n loadPaths: resolvedLoadPaths,\n },\n },\n },\n };\n }\n\n return;\n },\n async transform(code: string, id: string) {\n if (\n normalizePath(id).endsWith(\n normalizePath(`${options.configDir}/preview.ts`),\n )\n ) {\n const imports = [];\n const styles = options?.angularBuilderOptions?.styles;\n const workspaceRoot =\n options?.angularBuilderContext?.workspaceRoot ?? process.cwd();\n\n if (Array.isArray(styles)) {\n debugStyles('injecting Storybook global styles', {\n configDir: options.configDir,\n workspaceRoot,\n projectRoot: resolvedConfig?.root ?? process.cwd(),\n styles,\n });\n\n styles.forEach((style) => {\n imports.push(style);\n });\n }\n\n if (!experimentalZoneless) {\n imports.push('zone.js');\n }\n\n // Use vite config root when angularBuilderContext is not available\n // (e.g., when running via Vitest instead of Angular builders)\n const projectRoot = resolvedConfig?.root ?? process.cwd();\n\n return {\n code: `\n ${imports\n .map((extraImport) => {\n const resolved = resolveStyleImport(\n extraImport,\n projectRoot,\n workspaceRoot,\n );\n\n debugStyles('resolved Storybook style import', {\n input: extraImport,\n source: resolved.source,\n specifier: resolved.specifier,\n });\n\n return `import '${resolved.specifier}';`;\n })\n .join('\\n')}\n ${code}\n `,\n };\n }\n\n return;\n },\n };\n}\n\nfunction storybookTransformConfigPlugin(): Plugin {\n const configKey = vite.rolldownVersion ? 'oxc' : 'esbuild';\n\n return {\n name: 'analogjs-storybook-transform-config',\n apply: 'build',\n config() {\n return {\n [configKey]: {\n // Don't mangle class names during the build\n // This fixes display of compodoc argtypes\n keepNames: true,\n },\n };\n },\n };\n}\n\nexport { addons } from '@storybook/angular/preset';\n"],"mappings":"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"}
|
package/src/types.d.ts
CHANGED
|
@@ -6,9 +6,11 @@ type BuilderName = CompatibleString<"@storybook/builder-vite">;
|
|
|
6
6
|
export type FrameworkOptions = {
|
|
7
7
|
builder?: BuilderOptions;
|
|
8
8
|
jit?: boolean;
|
|
9
|
-
hmr?: boolean;
|
|
10
9
|
/**
|
|
11
|
-
*
|
|
10
|
+
* Enables Analog's Angular live-reload/HMR pipeline for Storybook.
|
|
11
|
+
*
|
|
12
|
+
* This is separate from Vite's `server.hmr` option, which configures the
|
|
13
|
+
* HMR client transport.
|
|
12
14
|
*/
|
|
13
15
|
liveReload?: boolean;
|
|
14
16
|
inlineStylesExtension?: string;
|