Skip to content

Commit 05fb7cc

Browse files
committed
clean dep, move to peer, update configs accordingly
1 parent b384f98 commit 05fb7cc

File tree

8 files changed

+416
-1077
lines changed

8 files changed

+416
-1077
lines changed

.storybook/main.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,50 @@ export default {
1414

1515
docs: {
1616
autodocs: true
17+
},
18+
webpackFinal: async (config) => {
19+
// For Storybook, we want to bundle rdflib and solid-logic from devDependencies
20+
// instead of externalizing them, so we DON'T add them to externals
21+
22+
// Handle Node.js modules for browser
23+
config.resolve.fallback = {
24+
...config.resolve.fallback,
25+
path: false,
26+
fs: false,
27+
crypto: false,
28+
stream: false,
29+
util: false,
30+
buffer: false
31+
}
32+
33+
// Add module name mapping to resolve the external references
34+
config.resolve.alias = {
35+
...config.resolve.alias,
36+
$rdf: require.resolve('rdflib'),
37+
SolidLogic: require.resolve('solid-logic')
38+
}
39+
40+
// Ensure solid-logic is not treated as external for Storybook
41+
if (config.externals) {
42+
if (Array.isArray(config.externals)) {
43+
config.externals = config.externals.filter(external => {
44+
if (typeof external === 'string') return !['rdflib', 'solid-logic', '$rdf', 'SolidLogic'].includes(external)
45+
if (typeof external === 'object') {
46+
delete external['rdflib']
47+
delete external['solid-logic']
48+
delete external['$rdf']
49+
delete external['SolidLogic']
50+
}
51+
return true
52+
})
53+
} else if (typeof config.externals === 'object') {
54+
delete config.externals['rdflib']
55+
delete config.externals['solid-logic']
56+
delete config.externals['$rdf']
57+
delete config.externals['SolidLogic']
58+
}
59+
}
60+
61+
return config
1762
}
1863
}

README.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,11 @@ npm install solid-ui
3333

3434
## Use directly in a browser
3535

36-
There are a few differences to mention:
37-
* the UMD bundles come in 2 flavours, with rdflib bundled together and without;
38-
* the ESM bundles do not contain rdflib, so it must be imported separately.
36+
All bundels, DO NOT bundle rdflin and solid-logic. These need to be provided separately.
3937

4038
## Files
41-
- For browser UMD, bundled with rdflib: `dist/solid-ui.js` (global `window.UI`)
42-
- For browser UMD, without rdflib: `dist/solid-ui.external.js` (global `window.UI`)
43-
- For browser ESM, without rdflib: `dist/solid-ui.esm.external.js` (import as module)
39+
- For browser UMD, without rdflib, solid-logic: `dist/solid-ui.js` (global `window.UI`)
40+
- For browser ESM, without rdflib, solid-logic: `dist/solid-ui.esm.js` (import as module)
4441
- UMD bundles come in chunked files
4542
- both version also containe minified versions.
4643

@@ -52,20 +49,22 @@ There are a few differences to mention:
5249
<script src="https://unpkg.com/rdflib/dist/rdflib.min.js"></script>
5350
<!-- or -->
5451
<!-- script src="https://cdn.jsdelivr.net/npm/rdflib/dist/rdflib.min.js"></script -->
52+
<script src="https://unpkg.com/solid-logic/dist/solid-logic.min.js"></script>
5553
<!-- Load solid-ui UMD bundle -->
56-
<script src="https://unpkg.com/solid-ui/dist/solid-ui.external.min.js"></script>
54+
<script src="https://unpkg.com/solid-ui/dist/solid-ui.min.js"></script>
5755
<!-- or -->
58-
<!-- script src="https://cdn.jsdelivr.net/npm/solid-ui/dist/solid-ui.external.min.js"></script -->
56+
<!-- script src="https://cdn.jsdelivr.net/npm/solid-ui/dist/solid-ui.min.js"></script -->
5957
<!-- or -->
6058
<!-- script src="dist/solid-ui.js"></script -->
6159
<script>
6260
// Access via global variable
61+
const logic = window.SolidLogic;
6362
const UI = window.UI;
6463
// Create a button
6564
const solidLogo = 'https://solidproject.org/assets/img/solid-emblem.svg'
66-
const myButton = UI.widgets.button(document, solidLogo, 'test', () => window.alert('clicked!'))
67-
UI.widgets.clearElement(document.body)
68-
document.body.appendChild(myButton)
65+
const myButton = UI.widgets.button(document, solidLogo, 'test', () => window.alert('clicked!'))
66+
UI.widgets.clearElement(document.body)
67+
document.body.appendChild(myButton)
6968
</script>
7069
```
7170

@@ -75,7 +74,8 @@ There are a few differences to mention:
7574
```html
7675
<script type="module">
7776
import * as $rdf from 'https://esm.sh/rdflib'
78-
import { someFunction } from 'https://esm.sh/solid-ui'
77+
import { store } from 'https://esm.sh/solid-logic'
78+
import { widgets } from 'https://esm.sh/solid-ui'
7979
8080
// Example usage
8181
// someFunction(...)
@@ -91,13 +91,15 @@ or
9191
{
9292
"imports": {
9393
"rdflib": "https://esm.sh/rdflib",
94+
"solid-logic": "https://esm.sh/solid-logic",
9495
"solid-ui": "https://esm.sh/solid-ui"
9596
}
9697
}
9798
</script>
9899
<script type="module">
99100
import * as $rdf from 'rdflib'
100-
import { someFunction } from 'solid-ui'
101+
import { store } from 'https://esm.sh/solid-logic'
102+
import { widgets } from 'solid-ui'
101103
102104
// Example usage
103105
// someFunction(...)

eslint.config.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export default [
1414
'node_modules/**',
1515
'coverage/**',
1616
'dist/**',
17+
'lib/**',
1718
'examples/**',
1819
'*.js'
1920
],

jest.config.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ export default {
22
// verbose: true, // Uncomment for detailed test output
33
collectCoverage: true,
44
coverageDirectory: 'coverage',
5-
preset: 'ts-jest/presets/js-with-babel',
65
testEnvironment: 'jsdom',
76
testEnvironmentOptions: {
87
customExportConditions: ['node'],

0 commit comments

Comments
 (0)