Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Vite Support #14

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
653 changes: 637 additions & 16 deletions package-lock.json

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions packages/storybook-preset-vite/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Storybook Vite preset for PixiJS

Storybook PixiJS Vite preset
64 changes: 64 additions & 0 deletions packages/storybook-preset-vite/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{
"name": "@pixi/storybook-preset-vite",
"version": "0.0.6",
"description": "Storybook for PixiJS: View PixiJS Components in isolation with Hot Reloading.",
"homepage": "https://github.com/pixijs/storybook/tree/main/packages/storybook-preset-vite",
"repository": {
"type": "git",
"url": "https://github.com/pixijs/storybook.git",
"directory": "packages/storybook-preset-vite"
},
"license": "MIT",
"exports": {
".": {
"require": "./dist/index.js",
"import": "./dist/index.mjs",
"types": "./dist/index.d.ts"
},
"./preset": {
"require": "./dist/index.js",
"import": "./dist/index.mjs",
"types": "./dist/index.d.ts"
},
"./package.json": {
"require": "./package.json",
"import": "./package.json",
"types": "./package.json"
}
},
"main": "dist/index.js",
"module": "dist/index.mjs",
"types": "dist/index.d.ts",
"files": [
"dist/**/*",
"README.md",
"*.js",
"*.d.ts"
],
"scripts": {
"check": "tsc --noEmit",
"build": "../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-vite": "^7.0.0",
"@storybook/types": "^7.0.0",
"@types/node": "^16.0.0",
"react": "16.14.0",
"react-dom": "16.14.0"
},
"devDependencies": {
"typescript": "~4.6.3"
},
"engines": {
"node": ">=10.13.0"
},
"publishConfig": {
"access": "public"
},
"bundler": {
"entries": [
"./src/index.ts"
],
"platform": "node"
}
}
1 change: 1 addition & 0 deletions packages/storybook-preset-vite/preset.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = require('./dist/index');
7 changes: 7 additions & 0 deletions packages/storybook-preset-vite/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import type { StorybookConfigVite } from "./types";

export * from "./types";

export const vite: StorybookConfigVite["viteFinal"] = (config) => {
return config;
};
5 changes: 5 additions & 0 deletions packages/storybook-preset-vite/src/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export type {
StorybookConfigVite,
BuilderOptions,
} from "@storybook/builder-vite";
export type { StorybookConfig, TypescriptOptions } from "@storybook/types";
7 changes: 7 additions & 0 deletions packages/storybook-preset-vite/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"strict": true
},
"include": ["src/**/*"],
}
3 changes: 3 additions & 0 deletions packages/storybook-vite/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Storybook PixiJS Framework

Storybook PixiJS Framework
69 changes: 69 additions & 0 deletions packages/storybook-vite/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{
"name": "@pixi/storybook-vite",
"version": "0.0.6",
"description": "Storybook for PixiJS: View Pixi Components in isolation with Hot Reloading.",
"homepage": "https://github.com/pixijs/storybook/tree/main/packages/storybook-vite",
"repository": {
"type": "git",
"url": "https://github.com/pixijs/storybook.git",
"directory": "packages/storybook-vite"
},
"license": "MIT",
"exports": {
".": {
"require": "./dist/index.js",
"import": "./dist/index.mjs",
"types": "./dist/index.d.ts"
},
"./preset": {
"require": "./dist/preset.js",
"import": "./dist/preset.mjs",
"types": "./dist/preset.d.ts"
},
"./package.json": {
"require": "./package.json",
"import": "./package.json",
"types": "./package.json"
}
},
"main": "dist/index.js",
"module": "dist/index.mjs",
"types": "dist/index.d.ts",
"files": [
"dist/**/*",
"README.md",
"*.js",
"*.d.ts"
],
"scripts": {
"check": "tsc --noEmit",
"build": "../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@pixi/storybook-preset-vite": "^0.0.6",
"@pixi/storybook-renderer": "^0.0.6",
"@storybook/builder-vite": "^7.0.0",
"@storybook/core-common": "^7.0.0",
"@types/node": "^14.14.20 || ^16.0.0",
"@types/offscreencanvas": "^2019.7.0",
"global": "^4.4.0",
"react": "16.14.0",
"react-dom": "16.14.0"
},
"devDependencies": {
"typescript": "~4.6.3"
},
"engines": {
"node": ">=10.13.0"
},
"publishConfig": {
"access": "public"
},
"bundler": {
"entries": [
"./src/index.ts",
"./src/preset.ts"
],
"platform": "node"
}
}
1 change: 1 addition & 0 deletions packages/storybook-vite/preset.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = require('./dist/preset');
1 change: 1 addition & 0 deletions packages/storybook-vite/preview.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from './dist/config';
4 changes: 4 additions & 0 deletions packages/storybook-vite/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/// <reference types="offscreencanvas" />

export * from '@pixi/storybook-renderer';
export * from './types';
32 changes: 32 additions & 0 deletions packages/storybook-vite/src/preset.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import path from "path";
import type { PresetProperty } from "@storybook/types";
import type { StorybookConfig } from "./types";

export const addons: PresetProperty<"addons", StorybookConfig> = [
path.dirname(
require.resolve(path.join("@pixi/storybook-preset-vite", "package.json"))
),
path.dirname(
require.resolve(path.join("@pixi/storybook-renderer", "package.json"))
),
];

export const core: PresetProperty<"core", StorybookConfig> = async (
config,
options
) => {
const framework = await options.presets.apply<StorybookConfig["framework"]>(
"framework"
);

return {
...config,
builder: {
name: path.dirname(
require.resolve(path.join("@storybook/builder-vite", "package.json"))
) as "@storybook/builder-vite",
options:
typeof framework === "string" ? {} : framework.options.builder || {},
},
};
};
43 changes: 43 additions & 0 deletions packages/storybook-vite/src/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import type {
BuilderOptions,
StorybookConfig as StorybookConfigBase,
StorybookConfigVite,
TypescriptOptions as TypescriptOptionsBuilder,
} from "../../storybook-preset-vite/src/types";

type FrameworkName = "@pixi/storybook-vite";
type BuilderName = "@storybook/builder-vite";

export type FrameworkOptions = {
builder?: BuilderOptions;
};

type StorybookConfigFramework = {
framework:
| FrameworkName
| {
name: FrameworkName;
options: FrameworkOptions;
};
frameworkPath?: string;
core?: StorybookConfigBase["core"] & {
builder?:
| BuilderName
| {
name: BuilderName;
options: BuilderOptions;
};
};
typescript?: Partial<TypescriptOptionsBuilder> &
StorybookConfigBase["typescript"];
};

/**
* The interface for Storybook configuration in `main.ts` files.
*/
export type StorybookConfig = Omit<
StorybookConfigBase,
keyof StorybookConfigVite | keyof StorybookConfigFramework
> &
StorybookConfigVite &
StorybookConfigFramework;
7 changes: 7 additions & 0 deletions packages/storybook-vite/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"strict": true
},
"include": ["src/**/*"],
}