blockparty 0.1.2 → 0.1.4
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/README.md +83 -2
- package/dist/cli.js +22 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/build.d.ts +1 -0
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +154 -19
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/shared.d.ts +2 -0
- package/dist/commands/shared.d.ts.map +1 -0
- package/dist/commands/shared.js +19 -0
- package/dist/commands/shared.js.map +1 -0
- package/dist/commands/storybook.d.ts.map +1 -1
- package/dist/commands/storybook.js +2 -15
- package/dist/commands/storybook.js.map +1 -1
- package/dist/discoverBlocks.d.ts.map +1 -1
- package/dist/discoverBlocks.js +16 -7
- package/dist/discoverBlocks.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/parseReadme.d.ts +1 -1
- package/dist/parseReadme.d.ts.map +1 -1
- package/dist/parseReadme.js +1 -1
- package/dist/parseReadme.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -20,17 +20,19 @@ export default ({ who }: Props) => (
|
|
|
20
20
|
|
|
21
21
|
Create a new directory and paste the above into a file called `index.tsx`. You've just created your first Block!
|
|
22
22
|
|
|
23
|
+
## Storybook
|
|
24
|
+
|
|
23
25
|
### Run the Storybook
|
|
24
26
|
|
|
25
27
|
Block Party includes a storybook-style UI for quick previews of your Blocks.
|
|
26
28
|
|
|
27
|
-
Just run `npx blockparty`
|
|
29
|
+
Just run `npx blockparty` from the directory containing your Block, or from a root directory, where each Block is in a different subdirectory. The preview will automatically update if changes are made to any of the Blocks' source code.
|
|
28
30
|
|
|
29
31
|
### Publish the Storybook
|
|
30
32
|
|
|
31
33
|
You may want to publish a static site build of the storybook UI, for instance during a CI run on a git repo.
|
|
32
34
|
|
|
33
|
-
To create a static site build of the storybook, run `npx blockparty build` from the root
|
|
35
|
+
To create a static site build of the storybook, run `npx blockparty build` from the root.
|
|
34
36
|
|
|
35
37
|
By default, the output goes into a `dist` directory, but you can specify a different path on the command line. For instance, if you are using GitHub Pages, you may want to put it in the `docs` directory:
|
|
36
38
|
|
|
@@ -99,4 +101,83 @@ export default ({ who, greeting = 'Hello' }: Props) => (
|
|
|
99
101
|
)
|
|
100
102
|
```
|
|
101
103
|
|
|
104
|
+
## Styling
|
|
105
|
+
|
|
106
|
+
The easiest way to style your Block is to just put styles right in the code:
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
export interface Props {
|
|
110
|
+
// .. snip ..
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export default ({ who, greeting = 'Hello' }: Props) => {
|
|
114
|
+
const headingStyle: React.CSSProperties = {
|
|
115
|
+
fontSize: '24px',
|
|
116
|
+
color: '#111827',
|
|
117
|
+
fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
|
|
118
|
+
}
|
|
119
|
+
return (
|
|
120
|
+
<h1 style={headingStyle}>{greeting}, {who}!</h1>
|
|
121
|
+
)
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
You can also use a CSS module, which is a CSS file ending in `.module.css`.
|
|
126
|
+
|
|
127
|
+
```css
|
|
128
|
+
.heading {
|
|
129
|
+
font-size: 24px;
|
|
130
|
+
color: #111827;
|
|
131
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
For instance, if you name the above `styles.module.css`, you can import it in your code like so:
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
import styles from './styles.module.css'
|
|
139
|
+
|
|
140
|
+
export interface Props {
|
|
141
|
+
// .. snip ..
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export default ({ who, greeting = 'Hello' }: Props) => {
|
|
145
|
+
return (
|
|
146
|
+
<h1 className={styles.heading}>{greeting}, {who}!</h1>
|
|
147
|
+
)
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Hacking on Block Party
|
|
152
|
+
|
|
153
|
+
### Running the CLI
|
|
154
|
+
|
|
155
|
+
To run the Block Party CLI command (e.g. `npx blockparty`) from within the git checkout, run:
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
npm run cli -- ...
|
|
159
|
+
```
|
|
160
|
+
Where everything after the hypens are arguments to the Block Party CLI.
|
|
161
|
+
|
|
162
|
+
### Running the tests
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
npm test
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Preparing a release
|
|
169
|
+
|
|
170
|
+
1. Bump the version:
|
|
171
|
+
```
|
|
172
|
+
npm version patch|minor|major
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
2. Push the version bump and new git tag:
|
|
176
|
+
```
|
|
177
|
+
git push origin main --tags
|
|
178
|
+
```
|
|
102
179
|
|
|
180
|
+
3. Publish to NPM:
|
|
181
|
+
```
|
|
182
|
+
npm publish
|
|
183
|
+
```
|
package/dist/cli.js
CHANGED
|
@@ -2,13 +2,20 @@
|
|
|
2
2
|
import { existsSync } from 'fs';
|
|
3
3
|
import { resolve } from 'path';
|
|
4
4
|
import { startStorybookServer } from './commands/storybook.js';
|
|
5
|
-
import { buildStorybook } from './commands/build.js';
|
|
5
|
+
import { buildStorybook, buildBlocks } from './commands/build.js';
|
|
6
6
|
async function main() {
|
|
7
7
|
const args = process.argv.slice(2);
|
|
8
|
-
// Parse command and
|
|
8
|
+
// Parse command and flags
|
|
9
9
|
let command;
|
|
10
10
|
let targetPath;
|
|
11
11
|
let outDir;
|
|
12
|
+
let buildBlocksIndividually = false;
|
|
13
|
+
// Handle flags
|
|
14
|
+
let individuallyIndex = args.indexOf('--individually');
|
|
15
|
+
if (individuallyIndex !== -1) {
|
|
16
|
+
buildBlocksIndividually = true;
|
|
17
|
+
args.splice(individuallyIndex, 1);
|
|
18
|
+
}
|
|
12
19
|
if (args.length === 0) {
|
|
13
20
|
// No arguments - default to storybook in current directory
|
|
14
21
|
command = 'storybook';
|
|
@@ -22,7 +29,7 @@ async function main() {
|
|
|
22
29
|
}
|
|
23
30
|
else {
|
|
24
31
|
console.error('❌ Unknown command');
|
|
25
|
-
console.error('Usage: blockparty [storybook|build] [path] [outDir]');
|
|
32
|
+
console.error('Usage: blockparty [storybook|build] [flags] [path] [outDir]');
|
|
26
33
|
console.error('');
|
|
27
34
|
console.error('Commands:');
|
|
28
35
|
console.error(' storybook Start storybook dev server (default)');
|
|
@@ -31,6 +38,9 @@ async function main() {
|
|
|
31
38
|
console.error('Arguments:');
|
|
32
39
|
console.error(' path Path to Block or root directory for Blocks (default: current directory)');
|
|
33
40
|
console.error(' outDir Output directory for build (default: dist)');
|
|
41
|
+
console.error('');
|
|
42
|
+
console.error('Build Flags:');
|
|
43
|
+
console.error(' --individually Bundle each block individually');
|
|
34
44
|
process.exit(1);
|
|
35
45
|
}
|
|
36
46
|
// Resolve the path
|
|
@@ -44,7 +54,15 @@ async function main() {
|
|
|
44
54
|
await startStorybookServer(resolvedPath);
|
|
45
55
|
}
|
|
46
56
|
else if (command === 'build') {
|
|
47
|
-
|
|
57
|
+
if (outDir === undefined) {
|
|
58
|
+
outDir = 'dist';
|
|
59
|
+
}
|
|
60
|
+
if (buildBlocksIndividually) {
|
|
61
|
+
await buildBlocks(resolvedPath, outDir);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
await buildStorybook(resolvedPath, outDir);
|
|
65
|
+
}
|
|
48
66
|
}
|
|
49
67
|
}
|
|
50
68
|
main().catch(error => {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjE,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAElC,0BAA0B;IAC1B,IAAI,OAAe,CAAA;IACnB,IAAI,UAAkB,CAAA;IACtB,IAAI,MAA0B,CAAA;IAC9B,IAAI,uBAAuB,GAAG,KAAK,CAAA;IAEnC,eAAe;IACf,IAAI,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACtD,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE,CAAC;QAC7B,uBAAuB,GAAG,IAAI,CAAA;QAC9B,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,2DAA2D;QAC3D,OAAO,GAAG,WAAW,CAAA;QACrB,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAC5B,CAAC;SAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC1D,mBAAmB;QACnB,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;QACrC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,8CAA8C;IACjE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;QAClC,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAA;QAC5E,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACjB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAC1B,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;QAClE,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAA;QAC7D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACjB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAC3B,OAAO,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAA;QACrG,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAA;QACxE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACjB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAC7B,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAA;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,mBAAmB;IACnB,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAA;IAEvD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAA;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,8BAA8B;IAC9B,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,MAAM,oBAAoB,CAAC,YAAY,CAAC,CAAA;IAC1C,CAAC;SAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QAC/B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,GAAG,MAAM,CAAA;QACjB,CAAC;QACD,IAAI,uBAAuB,EAAE,CAAC;YAC5B,MAAM,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;QACzC,CAAC;aAAM,CAAC;YACN,MAAM,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAA;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
package/dist/commands/build.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAQA,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAgDtE;AAED,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBA6KnE"}
|
package/dist/commands/build.js
CHANGED
|
@@ -1,28 +1,14 @@
|
|
|
1
1
|
import { resolve } from 'path';
|
|
2
|
-
import { mkdir, writeFile, rm } from 'fs/promises';
|
|
2
|
+
import { mkdir, writeFile, rm, readFile } from 'fs/promises';
|
|
3
3
|
import { build as viteBuild } from 'vite';
|
|
4
|
-
import { discoverBlocks } from '../discoverBlocks.js';
|
|
5
|
-
import { generateBlocksModule } from '../generateBlocksModule.js';
|
|
6
4
|
import { templatesDir, getViteResolveConfig, getVitePlugins } from '../viteConfig.js';
|
|
5
|
+
import { discoverBlocksAndGenerateModule } from './shared.js';
|
|
6
|
+
import { discoverBlocks } from '../discoverBlocks.js';
|
|
7
7
|
export async function buildStorybook(targetPath, outDir) {
|
|
8
|
-
console.log('🏗️ Building
|
|
8
|
+
console.log('🏗️ Building Storybook...');
|
|
9
9
|
console.log(`📂 Target: ${targetPath}`);
|
|
10
10
|
console.log(`📦 Output: ${outDir}\n`);
|
|
11
|
-
const
|
|
12
|
-
if (blocks.length === 0) {
|
|
13
|
-
console.error('❌ No Blocks found!');
|
|
14
|
-
console.error('A Block should have an index.ts or index.tsx file with:');
|
|
15
|
-
console.error(' - An exported Props interface');
|
|
16
|
-
console.error(' - A default exported function component');
|
|
17
|
-
process.exit(1);
|
|
18
|
-
}
|
|
19
|
-
console.log(`✅ Found ${blocks.length} Block(s):`);
|
|
20
|
-
blocks.forEach(block => {
|
|
21
|
-
console.log(` - ${block.name}`);
|
|
22
|
-
});
|
|
23
|
-
console.log();
|
|
24
|
-
// Generate blocks module
|
|
25
|
-
const blocksModule = await generateBlocksModule(blocks);
|
|
11
|
+
const blocksModule = await discoverBlocksAndGenerateModule(targetPath);
|
|
26
12
|
// Create a temporary directory for the virtual blocks module
|
|
27
13
|
const tempDir = resolve(process.cwd(), '.blockparty-build');
|
|
28
14
|
await mkdir(tempDir, { recursive: true });
|
|
@@ -46,6 +32,7 @@ export async function buildStorybook(targetPath, outDir) {
|
|
|
46
32
|
plugins: getVitePlugins(),
|
|
47
33
|
build: {
|
|
48
34
|
outDir: resolve(process.cwd(), outDir),
|
|
35
|
+
minify: true,
|
|
49
36
|
emptyOutDir: true,
|
|
50
37
|
rollupOptions: {
|
|
51
38
|
input: resolve(templatesDir, 'index.html')
|
|
@@ -63,4 +50,152 @@ export async function buildStorybook(targetPath, outDir) {
|
|
|
63
50
|
await rm(tempDir, { recursive: true, force: true });
|
|
64
51
|
}
|
|
65
52
|
}
|
|
53
|
+
export async function buildBlocks(targetPath, outDir) {
|
|
54
|
+
console.log('🏗️ Building Blocks...');
|
|
55
|
+
console.log(`📂 Target: ${targetPath}`);
|
|
56
|
+
console.log(`📦 Output: ${outDir}\n`);
|
|
57
|
+
const blocks = await discoverBlocks(targetPath);
|
|
58
|
+
if (blocks.length === 0) {
|
|
59
|
+
console.error('❌ No Blocks found!');
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
console.log(`✅ Found ${blocks.length} Block(s):`);
|
|
63
|
+
blocks.forEach(block => {
|
|
64
|
+
console.log(` - ${block.name}`);
|
|
65
|
+
});
|
|
66
|
+
console.log();
|
|
67
|
+
const outputDir = resolve(process.cwd(), outDir);
|
|
68
|
+
await mkdir(outputDir, { recursive: true });
|
|
69
|
+
const viteResolve = getViteResolveConfig();
|
|
70
|
+
const externalDeps = Object.keys(viteResolve.alias);
|
|
71
|
+
const importMap = {};
|
|
72
|
+
console.log('📦 Bundling external dependencies...\n');
|
|
73
|
+
// Build each package
|
|
74
|
+
for (const dep of externalDeps) {
|
|
75
|
+
// Skip subpath imports
|
|
76
|
+
if (dep.includes('/')) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
const depPath = viteResolve.alias[dep];
|
|
80
|
+
const packageJsonPath = resolve(depPath, 'package.json');
|
|
81
|
+
const packageJson = JSON.parse(await readFile(packageJsonPath, 'utf-8'));
|
|
82
|
+
const version = packageJson.version ?? 'latest';
|
|
83
|
+
// Determine entry point
|
|
84
|
+
const entryPoint = packageJson.module ?? packageJson.main ?? 'index.js';
|
|
85
|
+
const entryPath = resolve(depPath, entryPoint);
|
|
86
|
+
console.log(` Bundling ${dep}...`);
|
|
87
|
+
// Get the list of other external deps to keep external
|
|
88
|
+
const otherExternalDeps = externalDeps.filter(d => d !== dep);
|
|
89
|
+
// Get any subpath imports for this dep
|
|
90
|
+
const subDepEntryPaths = [];
|
|
91
|
+
if (typeof packageJson.exports === 'object' && !Array.isArray(packageJson.exports)) {
|
|
92
|
+
for (const d of externalDeps) {
|
|
93
|
+
if (d.startsWith(`${dep}/`)) {
|
|
94
|
+
const key = d.replace(`${dep}/`, './');
|
|
95
|
+
const entry = packageJson.exports?.[key];
|
|
96
|
+
if (typeof entry === 'string') {
|
|
97
|
+
subDepEntryPaths.push(resolve(depPath, entry));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
await viteBuild({
|
|
104
|
+
build: {
|
|
105
|
+
lib: {
|
|
106
|
+
entry: [entryPath, ...subDepEntryPaths],
|
|
107
|
+
formats: ['es'],
|
|
108
|
+
fileName: (_, entry) => `${(entry == 'index' ? dep : entry).replace('/', '-')}.js`
|
|
109
|
+
},
|
|
110
|
+
outDir: resolve(outputDir, 'deps'),
|
|
111
|
+
minify: true,
|
|
112
|
+
emptyOutDir: false,
|
|
113
|
+
rollupOptions: {
|
|
114
|
+
external: otherExternalDeps
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
// Add to import map
|
|
119
|
+
const external = otherExternalDeps.filter(d => !d.includes('/')).sort().join(',');
|
|
120
|
+
importMap[dep] = `https://esm.sh/${dep}@${version}?external=${external}`;
|
|
121
|
+
// Also include trailing slash version for packages that require it
|
|
122
|
+
importMap[`${dep}/`] = `https://esm.sh/${dep}@${version}&external=${external}/`;
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
console.error(` ❌ Failed to bundle ${dep}:`, error);
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
console.log();
|
|
130
|
+
console.log('📝 Bundling individual blocks...\n');
|
|
131
|
+
// Build each block individually and collect block info
|
|
132
|
+
const blockInfos = [];
|
|
133
|
+
for (const block of blocks) {
|
|
134
|
+
const blockId = block.metadata?.id ?? block.name;
|
|
135
|
+
console.log(` Building ${blockId} ${blockId !== block.name ? `(${block.name}) ` : ''}...`);
|
|
136
|
+
// Sanitize block name for filename (replace spaces and special chars)
|
|
137
|
+
const safeFileName = blockId.replace(/[^a-zA-Z0-9-_]/g, '-');
|
|
138
|
+
try {
|
|
139
|
+
const css = [];
|
|
140
|
+
const assets = [];
|
|
141
|
+
await viteBuild({
|
|
142
|
+
build: {
|
|
143
|
+
lib: {
|
|
144
|
+
entry: block.path,
|
|
145
|
+
formats: ['es'],
|
|
146
|
+
fileName: () => 'index.js'
|
|
147
|
+
},
|
|
148
|
+
outDir: resolve(outputDir, safeFileName),
|
|
149
|
+
minify: true,
|
|
150
|
+
emptyOutDir: false,
|
|
151
|
+
rollupOptions: {
|
|
152
|
+
external: externalDeps,
|
|
153
|
+
output: {
|
|
154
|
+
assetFileNames: (assetInfo) => {
|
|
155
|
+
const assetName = assetInfo.name;
|
|
156
|
+
if (assetName === undefined) {
|
|
157
|
+
// FIXME: What to do if assetName is undefined?
|
|
158
|
+
return 'asset';
|
|
159
|
+
}
|
|
160
|
+
const assetPath = `./${safeFileName}/${assetName}`;
|
|
161
|
+
if (assetName.endsWith('.css')) {
|
|
162
|
+
if (!css.includes(assetPath)) {
|
|
163
|
+
css.push(assetPath);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else if (!assets.includes(assetPath)) {
|
|
167
|
+
assets.push(assetPath);
|
|
168
|
+
}
|
|
169
|
+
return assetName;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
plugins: getVitePlugins()
|
|
175
|
+
});
|
|
176
|
+
// Add block info with relative path to built file
|
|
177
|
+
const blockInfo = {
|
|
178
|
+
name: block.name,
|
|
179
|
+
description: block.description,
|
|
180
|
+
metadata: block.metadata,
|
|
181
|
+
readme: block.readme,
|
|
182
|
+
propDefinitions: block.propDefinitions,
|
|
183
|
+
js: `./${safeFileName}/index.js`,
|
|
184
|
+
css,
|
|
185
|
+
assets
|
|
186
|
+
};
|
|
187
|
+
blockInfos.push(blockInfo);
|
|
188
|
+
}
|
|
189
|
+
catch (error) {
|
|
190
|
+
console.error(` ❌ Failed to build ${block.name}:`, error);
|
|
191
|
+
process.exit(1);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// Write index.json with blocks and import map
|
|
195
|
+
await writeFile(resolve(outputDir, 'index.json'), JSON.stringify({
|
|
196
|
+
blocks: blockInfos,
|
|
197
|
+
importmap: importMap
|
|
198
|
+
}, null, 2));
|
|
199
|
+
console.log(`\n✅ Build complete! Output in ${outDir}/`);
|
|
200
|
+
}
|
|
66
201
|
//# sourceMappingURL=build.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAGA,wBAAsB,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBzF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { discoverBlocks } from '../discoverBlocks.js';
|
|
2
|
+
import { generateBlocksModule } from '../generateBlocksModule.js';
|
|
3
|
+
export async function discoverBlocksAndGenerateModule(targetPath) {
|
|
4
|
+
const blocks = await discoverBlocks(targetPath);
|
|
5
|
+
if (blocks.length === 0) {
|
|
6
|
+
console.error('❌ No Blocks found!');
|
|
7
|
+
console.error('A Block should have an index.ts or index.tsx file with:');
|
|
8
|
+
console.error(' - An exported Props interface');
|
|
9
|
+
console.error(' - A default exported function component that accepts the Props');
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
console.log(`✅ Found ${blocks.length} Block(s):`);
|
|
13
|
+
blocks.forEach(block => {
|
|
14
|
+
console.log(` - ${block.name}`);
|
|
15
|
+
});
|
|
16
|
+
console.log();
|
|
17
|
+
return await generateBlocksModule(blocks);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAEjE,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,UAAkB;IACtE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAA;IAE/C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACnC,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAA;QACxE,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAChD,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAA;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,YAAY,CAAC,CAAA;IACjD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,GAAG,EAAE,CAAA;IAEb,OAAO,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAA;AAC3C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storybook.d.ts","sourceRoot":"","sources":["../../src/commands/storybook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storybook.d.ts","sourceRoot":"","sources":["../../src/commands/storybook.ts"],"names":[],"mappings":"AAOA,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,iBAqF5D"}
|
|
@@ -3,24 +3,11 @@ import { createServer } from 'vite';
|
|
|
3
3
|
import { discoverBlocks } from '../discoverBlocks.js';
|
|
4
4
|
import { generateBlocksModule } from '../generateBlocksModule.js';
|
|
5
5
|
import { blockPartyRoot, templatesDir, getViteResolveConfig, getVitePlugins } from '../viteConfig.js';
|
|
6
|
+
import { discoverBlocksAndGenerateModule } from './shared.js';
|
|
6
7
|
export async function startStorybookServer(targetPath) {
|
|
7
8
|
console.log('🎉 Starting Block Party...');
|
|
8
9
|
console.log(`📂 Target path: ${targetPath}\n`);
|
|
9
|
-
|
|
10
|
-
if (blocks.length === 0) {
|
|
11
|
-
console.error('❌ No Blocks found!');
|
|
12
|
-
console.error('A Block should have an index.ts or index.tsx file with:');
|
|
13
|
-
console.error(' - An exported Props interface');
|
|
14
|
-
console.error(' - A default exported function component');
|
|
15
|
-
process.exit(1);
|
|
16
|
-
}
|
|
17
|
-
console.log(`✅ Found ${blocks.length} Block(s):`);
|
|
18
|
-
blocks.forEach(block => {
|
|
19
|
-
console.log(` - ${block.name}`);
|
|
20
|
-
});
|
|
21
|
-
console.log();
|
|
22
|
-
// Generate initial blocks module
|
|
23
|
-
let blocksModule = await generateBlocksModule(blocks);
|
|
10
|
+
let blocksModule = await discoverBlocksAndGenerateModule(targetPath);
|
|
24
11
|
// Resolve target path through symlinks for comparison
|
|
25
12
|
const realTargetPath = realpathSync(targetPath);
|
|
26
13
|
// Start Vite dev server
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storybook.js","sourceRoot":"","sources":["../../src/commands/storybook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"storybook.js","sourceRoot":"","sources":["../../src/commands/storybook.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discoverBlocks.d.ts","sourceRoot":"","sources":["../src/discoverBlocks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,kBAAkB,CAAA;AAE1E,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,cAAc,EAAE,CAAA;CAClC;
|
|
1
|
+
{"version":3,"file":"discoverBlocks.d.ts","sourceRoot":"","sources":["../src/discoverBlocks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,kBAAkB,CAAA;AAE1E,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,cAAc,EAAE,CAAA;CAClC;AAqCD,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAa7E"}
|
package/dist/discoverBlocks.js
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import { existsSync } from 'fs';
|
|
2
2
|
import { readdir, stat } from 'fs/promises';
|
|
3
|
-
import { join, dirname, basename } from 'path';
|
|
3
|
+
import { join, dirname, basename, extname } from 'path';
|
|
4
4
|
import { extractPropsFromFile } from './extractProps.js';
|
|
5
5
|
import { parseReadmeMetadata } from './parseReadme.js';
|
|
6
6
|
async function getBlockInfo(path) {
|
|
7
7
|
let blockDir;
|
|
8
|
+
let blockName;
|
|
8
9
|
let indexPath;
|
|
9
10
|
const targetStat = await stat(path);
|
|
10
11
|
if (targetStat.isFile()) {
|
|
11
12
|
blockDir = dirname(path);
|
|
13
|
+
blockName = basename(path, extname(path));
|
|
12
14
|
indexPath = path;
|
|
13
15
|
}
|
|
14
16
|
else {
|
|
15
17
|
blockDir = path;
|
|
18
|
+
blockName = basename(blockDir);
|
|
16
19
|
const indexTsPath = join(blockDir, 'index.ts');
|
|
17
20
|
const indexTsxPath = join(blockDir, 'index.tsx');
|
|
18
21
|
if (existsSync(indexTsxPath)) {
|
|
@@ -26,7 +29,6 @@ async function getBlockInfo(path) {
|
|
|
26
29
|
}
|
|
27
30
|
}
|
|
28
31
|
const propDefinitions = await extractPropsFromFile(indexPath);
|
|
29
|
-
const blockName = basename(blockDir);
|
|
30
32
|
const metadata = await parseReadmeMetadata(blockDir);
|
|
31
33
|
return {
|
|
32
34
|
...metadata,
|
|
@@ -42,22 +44,29 @@ export async function discoverBlocks(targetPath) {
|
|
|
42
44
|
blocks.push(blockInfo);
|
|
43
45
|
return blocks;
|
|
44
46
|
}
|
|
45
|
-
//
|
|
47
|
+
// Recursively check subdirectories for Blocks
|
|
48
|
+
await discoverBlocksRecursive(targetPath, blocks);
|
|
49
|
+
return blocks;
|
|
50
|
+
}
|
|
51
|
+
async function discoverBlocksRecursive(dirPath, blocks) {
|
|
46
52
|
try {
|
|
47
|
-
const entries = await readdir(
|
|
53
|
+
const entries = await readdir(dirPath, { withFileTypes: true });
|
|
48
54
|
for (const entry of entries) {
|
|
49
55
|
if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules') {
|
|
50
|
-
const
|
|
51
|
-
const blockInfo = await getBlockInfo(
|
|
56
|
+
const entryPath = join(dirPath, entry.name);
|
|
57
|
+
const blockInfo = await getBlockInfo(entryPath);
|
|
52
58
|
if (blockInfo) {
|
|
53
59
|
blocks.push(blockInfo);
|
|
54
60
|
}
|
|
61
|
+
else {
|
|
62
|
+
// If this directory is not a block, search its subdirectories
|
|
63
|
+
await discoverBlocksRecursive(entryPath, blocks);
|
|
64
|
+
}
|
|
55
65
|
}
|
|
56
66
|
}
|
|
57
67
|
}
|
|
58
68
|
catch (error) {
|
|
59
69
|
console.error('Error reading directory:', error);
|
|
60
70
|
}
|
|
61
|
-
return blocks;
|
|
62
71
|
}
|
|
63
72
|
//# sourceMappingURL=discoverBlocks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discoverBlocks.js","sourceRoot":"","sources":["../src/discoverBlocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"discoverBlocks.js","sourceRoot":"","sources":["../src/discoverBlocks.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { discoverBlocks, type BlockInfo } from './discoverBlocks.js';
|
|
2
2
|
export { startStorybookServer } from './commands/storybook.js';
|
|
3
|
-
export { buildStorybook } from './commands/build.js';
|
|
3
|
+
export { buildStorybook, buildBlocks } from './commands/build.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Public API exports for BlockParty library
|
|
2
2
|
export { discoverBlocks } from './discoverBlocks.js';
|
|
3
3
|
export { startStorybookServer } from './commands/storybook.js';
|
|
4
|
-
export { buildStorybook } from './commands/build.js';
|
|
4
|
+
export { buildStorybook, buildBlocks } from './commands/build.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,OAAO,EAAE,cAAc,EAAkB,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,OAAO,EAAE,cAAc,EAAkB,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA"}
|
package/dist/parseReadme.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export interface BlockMetadata {
|
|
|
4
4
|
/** The markdown content of the readme (not including frontmatter) */
|
|
5
5
|
readme?: string;
|
|
6
6
|
/** The metadata from the readme frontmatter */
|
|
7
|
-
|
|
7
|
+
metadata?: Record<string, string>;
|
|
8
8
|
}
|
|
9
9
|
export declare function parseFrontmatter(content: string): {
|
|
10
10
|
frontmatter: Record<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseReadme.d.ts","sourceRoot":"","sources":["../src/parseReadme.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,+CAA+C;IAC/C,
|
|
1
|
+
{"version":3,"file":"parseReadme.d.ts","sourceRoot":"","sources":["../src/parseReadme.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAyB1G;AAGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAiCtE;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAgCjF"}
|
package/dist/parseReadme.js
CHANGED
package/dist/parseReadme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseReadme.js","sourceRoot":"","sources":["../src/parseReadme.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"parseReadme.js","sourceRoot":"","sources":["../src/parseReadme.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blockparty",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Easy, zero-config, convention-based React components.",
|
|
5
5
|
"repository": "github:chkn/blockparty",
|
|
6
6
|
"type": "module",
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@types/node": "^20.10.0",
|
|
50
50
|
"@types/react": "^19.2.4",
|
|
51
|
-
"@types/react-dom": "^19.2.3"
|
|
51
|
+
"@types/react-dom": "^19.2.3",
|
|
52
|
+
"type-fest": "^5.2.0"
|
|
52
53
|
},
|
|
53
54
|
"dependencies": {
|
|
54
55
|
"@vitejs/plugin-react": "^4.2.0",
|