@storybook/addon-svelte-csf 3.0.0-next.2 → 3.0.0-next.3
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/.babelrc.js +4 -1
- package/dist/cjs/components/context.js +8 -21
- package/dist/cjs/constants.js +1 -8
- package/dist/cjs/index.js +4 -34
- package/dist/cjs/jest-transform.js +0 -2
- package/dist/cjs/parser/collect-stories.js +16 -34
- package/dist/cjs/parser/collect-stories.test.js +3 -9
- package/dist/cjs/parser/extract-id.js +3 -11
- package/dist/cjs/parser/extract-id.test.js +5 -8
- package/dist/cjs/parser/extract-stories.js +8 -24
- package/dist/cjs/parser/extract-stories.test.js +9 -12
- package/dist/cjs/parser/svelte-stories-loader.js +8 -21
- package/dist/cjs/plugins/vite-svelte-csf.js +12 -30
- package/dist/cjs/preset/index.js +9 -31
- package/dist/cjs/preset/indexer.js +5 -16
- package/dist/cjs/preset/manager.js +3 -7
- package/dist/esm/preset/index.js +1 -3
- package/package.json +1 -1
package/.babelrc.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
module.exports = {
|
|
2
|
-
presets: [
|
|
2
|
+
presets: [
|
|
3
|
+
['@babel/preset-env', { targets: { node: '16' }, modules: false }],
|
|
4
|
+
'@babel/preset-typescript',
|
|
5
|
+
],
|
|
3
6
|
plugins: ['@babel/plugin-transform-runtime'],
|
|
4
7
|
env: {
|
|
5
8
|
esm: {
|
|
@@ -1,18 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createRegistrationContext = createRegistrationContext;
|
|
7
|
-
exports.createRenderContext = createRenderContext;
|
|
8
|
-
exports.useContext = useContext;
|
|
9
|
-
|
|
10
|
-
var _svelte = require("svelte");
|
|
11
|
-
|
|
1
|
+
import { getContext, hasContext, setContext } from "svelte";
|
|
12
2
|
const CONTEXT_KEY = "storybook-registration-context";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
(0, _svelte.setContext)(CONTEXT_KEY, {
|
|
3
|
+
export function createRenderContext(props = {}) {
|
|
4
|
+
setContext(CONTEXT_KEY, {
|
|
16
5
|
render: true,
|
|
17
6
|
register: () => {},
|
|
18
7
|
meta: {},
|
|
@@ -20,9 +9,8 @@ function createRenderContext(props = {}) {
|
|
|
20
9
|
...props
|
|
21
10
|
});
|
|
22
11
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
(0, _svelte.setContext)(CONTEXT_KEY, {
|
|
12
|
+
export function createRegistrationContext(repositories) {
|
|
13
|
+
setContext(CONTEXT_KEY, {
|
|
26
14
|
render: false,
|
|
27
15
|
register: story => {
|
|
28
16
|
repositories.stories.push(story);
|
|
@@ -36,11 +24,10 @@ function createRegistrationContext(repositories) {
|
|
|
36
24
|
args: {}
|
|
37
25
|
});
|
|
38
26
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (!(0, _svelte.hasContext)(CONTEXT_KEY)) {
|
|
27
|
+
export function useContext() {
|
|
28
|
+
if (!hasContext(CONTEXT_KEY)) {
|
|
42
29
|
createRenderContext();
|
|
43
30
|
}
|
|
44
31
|
|
|
45
|
-
return
|
|
32
|
+
return getContext(CONTEXT_KEY);
|
|
46
33
|
}
|
package/dist/cjs/constants.js
CHANGED
package/dist/cjs/index.js
CHANGED
|
@@ -1,40 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
Object.defineProperty(exports, "Meta", {
|
|
9
|
-
enumerable: true,
|
|
10
|
-
get: function () {
|
|
11
|
-
return _Meta.default;
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
Object.defineProperty(exports, "Story", {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
get: function () {
|
|
17
|
-
return _Story.default;
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
Object.defineProperty(exports, "Template", {
|
|
21
|
-
enumerable: true,
|
|
22
|
-
get: function () {
|
|
23
|
-
return _Template.default;
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
exports.default = void 0;
|
|
27
|
-
|
|
28
|
-
var _Meta = _interopRequireDefault(require("./components/Meta.svelte"));
|
|
29
|
-
|
|
30
|
-
var _Story = _interopRequireDefault(require("./components/Story.svelte"));
|
|
31
|
-
|
|
32
|
-
var _Template = _interopRequireDefault(require("./components/Template.svelte"));
|
|
1
|
+
export { default as Meta } from './components/Meta.svelte';
|
|
2
|
+
export { default as Story } from './components/Story.svelte';
|
|
3
|
+
export { default as Template } from './components/Template.svelte';
|
|
33
4
|
|
|
34
5
|
if (module && module.hot && module.hot.decline) {
|
|
35
6
|
module.hot.decline();
|
|
36
7
|
} // make it work with --isolatedModules
|
|
37
8
|
|
|
38
9
|
|
|
39
|
-
|
|
40
|
-
exports.default = _default;
|
|
10
|
+
export default {};
|
|
@@ -1,24 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _clientLogger = require("@storybook/client-logger");
|
|
11
|
-
|
|
12
|
-
var _clientApi = require("@storybook/client-api");
|
|
13
|
-
|
|
14
|
-
var _extractId = require("./extract-id");
|
|
15
|
-
|
|
16
|
-
var _RegisterContext = _interopRequireDefault(require("../components/RegisterContext.svelte"));
|
|
17
|
-
|
|
18
|
-
var _RenderContext = _interopRequireDefault(require("../components/RenderContext.svelte"));
|
|
19
|
-
|
|
20
1
|
/* eslint-env browser */
|
|
21
|
-
|
|
2
|
+
import { logger } from '@storybook/client-logger';
|
|
3
|
+
import { combineParameters } from '@storybook/client-api';
|
|
4
|
+
import { extractId } from './extract-id';
|
|
5
|
+
import RegisterContext from '../components/RegisterContext.svelte';
|
|
6
|
+
import RenderContext from '../components/RenderContext.svelte';
|
|
22
7
|
/* Called from a webpack loader and a jest transformation.
|
|
23
8
|
*
|
|
24
9
|
* It mounts a Stories component in a context which disables
|
|
@@ -29,9 +14,9 @@ var _RenderContext = _interopRequireDefault(require("../components/RenderContext
|
|
|
29
14
|
* instantiate the main Stories component: Every Story but
|
|
30
15
|
* the one selected is disabled.
|
|
31
16
|
*/
|
|
32
|
-
const createFragment = document.createDocumentFragment ? () => document.createDocumentFragment() : () => document.createElement('div');
|
|
33
17
|
|
|
34
|
-
|
|
18
|
+
const createFragment = document.createDocumentFragment ? () => document.createDocumentFragment() : () => document.createElement('div');
|
|
19
|
+
export default ((StoriesComponent, {
|
|
35
20
|
stories = {},
|
|
36
21
|
allocatedIds
|
|
37
22
|
}) => {
|
|
@@ -41,7 +26,7 @@ var _default = (StoriesComponent, {
|
|
|
41
26
|
}; // extract all stories
|
|
42
27
|
|
|
43
28
|
try {
|
|
44
|
-
const context = new
|
|
29
|
+
const context = new RegisterContext({
|
|
45
30
|
target: createFragment(),
|
|
46
31
|
props: {
|
|
47
32
|
Stories: StoriesComponent,
|
|
@@ -50,7 +35,7 @@ var _default = (StoriesComponent, {
|
|
|
50
35
|
});
|
|
51
36
|
context.$destroy();
|
|
52
37
|
} catch (e) {
|
|
53
|
-
|
|
38
|
+
logger.error(`Error extracting stories ${e.toString()}`, e);
|
|
54
39
|
}
|
|
55
40
|
|
|
56
41
|
const {
|
|
@@ -58,8 +43,7 @@ var _default = (StoriesComponent, {
|
|
|
58
43
|
} = repositories;
|
|
59
44
|
|
|
60
45
|
if (!meta) {
|
|
61
|
-
|
|
62
|
-
|
|
46
|
+
logger.error('Missing <Meta/> tag');
|
|
63
47
|
return {};
|
|
64
48
|
}
|
|
65
49
|
|
|
@@ -72,7 +56,7 @@ var _default = (StoriesComponent, {
|
|
|
72
56
|
const duplicateTemplatesId = templatesId.filter((item, index) => templatesId.indexOf(item) !== index);
|
|
73
57
|
|
|
74
58
|
if (duplicateTemplatesId.length > 0) {
|
|
75
|
-
|
|
59
|
+
logger.warn(`Found duplicates templates id for stories '${meta.name}': ${duplicateTemplatesId}`);
|
|
76
60
|
}
|
|
77
61
|
|
|
78
62
|
return {
|
|
@@ -86,7 +70,7 @@ var _default = (StoriesComponent, {
|
|
|
86
70
|
source = false,
|
|
87
71
|
...props
|
|
88
72
|
} = story;
|
|
89
|
-
const storyId =
|
|
73
|
+
const storyId = extractId(story, allocatedIds);
|
|
90
74
|
|
|
91
75
|
if (!storyId) {
|
|
92
76
|
return all;
|
|
@@ -100,7 +84,7 @@ var _default = (StoriesComponent, {
|
|
|
100
84
|
}
|
|
101
85
|
|
|
102
86
|
return {
|
|
103
|
-
Component:
|
|
87
|
+
Component: RenderContext,
|
|
104
88
|
props: {
|
|
105
89
|
Stories: StoriesComponent,
|
|
106
90
|
storyName: name,
|
|
@@ -123,7 +107,7 @@ var _default = (StoriesComponent, {
|
|
|
123
107
|
const rawSource = storyDef ? storyDef.source : null;
|
|
124
108
|
|
|
125
109
|
if (rawSource) {
|
|
126
|
-
storyFn.parameters =
|
|
110
|
+
storyFn.parameters = combineParameters(storyFn.parameters || {}, {
|
|
127
111
|
storySource: {
|
|
128
112
|
source: rawSource
|
|
129
113
|
}
|
|
@@ -139,7 +123,7 @@ var _default = (StoriesComponent, {
|
|
|
139
123
|
}
|
|
140
124
|
|
|
141
125
|
if (snippet) {
|
|
142
|
-
storyFn.parameters =
|
|
126
|
+
storyFn.parameters = combineParameters(storyFn.parameters || {}, {
|
|
143
127
|
docs: {
|
|
144
128
|
source: {
|
|
145
129
|
code: snippet
|
|
@@ -153,6 +137,4 @@ var _default = (StoriesComponent, {
|
|
|
153
137
|
return all;
|
|
154
138
|
}, {})
|
|
155
139
|
};
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
exports.default = _default;
|
|
140
|
+
});
|
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _collectStories = _interopRequireDefault(require("./collect-stories"));
|
|
6
|
-
|
|
7
|
-
var _TestStories = _interopRequireDefault(require("../components/__tests__/TestStories.svelte"));
|
|
8
|
-
|
|
1
|
+
import collectStories from './collect-stories';
|
|
2
|
+
import TestStories from '../components/__tests__/TestStories.svelte';
|
|
9
3
|
describe('parse-stories', () => {
|
|
10
4
|
test('Extract Stories', () => {
|
|
11
|
-
const data = (
|
|
5
|
+
const data = collectStories(TestStories, {
|
|
12
6
|
stories: {
|
|
13
7
|
'tpl:tpl2': 'tpl2src'
|
|
14
8
|
}
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.extractId = extractId;
|
|
7
|
-
|
|
8
|
-
var _clientLogger = require("@storybook/client-logger");
|
|
1
|
+
import { logger } from '@storybook/client-logger';
|
|
9
2
|
|
|
10
3
|
function hashCode(str) {
|
|
11
4
|
const h = str.split('') // eslint-disable-next-line no-bitwise
|
|
@@ -14,7 +7,7 @@ function hashCode(str) {
|
|
|
14
7
|
} // extract a story id
|
|
15
8
|
|
|
16
9
|
|
|
17
|
-
function extractId({
|
|
10
|
+
export function extractId({
|
|
18
11
|
id,
|
|
19
12
|
name
|
|
20
13
|
}, allocatedIds = []) {
|
|
@@ -29,8 +22,7 @@ function extractId({
|
|
|
29
22
|
let generated = name.replace(/\W+(.|$)/g, (_, chr) => chr.toUpperCase());
|
|
30
23
|
|
|
31
24
|
if (allocatedIds.indexOf(generated) >= 0) {
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
logger.warn(`Story name conflict with exports - Please add an explicit id for story ${name}`);
|
|
34
26
|
generated += hashCode(name);
|
|
35
27
|
}
|
|
36
28
|
|
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var _extractId = require("./extract-id");
|
|
4
|
-
|
|
1
|
+
import { extractId } from './extract-id';
|
|
5
2
|
describe('extract-id', () => {
|
|
6
3
|
test('name with spaces', () => {
|
|
7
|
-
expect(
|
|
4
|
+
expect(extractId({
|
|
8
5
|
name: 'Name with spaces'
|
|
9
6
|
})).toBe('NameWithSpaces');
|
|
10
7
|
});
|
|
11
8
|
test('name with parenthesis', () => {
|
|
12
|
-
expect(
|
|
9
|
+
expect(extractId({
|
|
13
10
|
name: 'Name with (parenthesis)'
|
|
14
11
|
})).toBe('NameWithParenthesis');
|
|
15
12
|
});
|
|
16
13
|
test('duplicates id', () => {
|
|
17
|
-
expect(
|
|
14
|
+
expect(extractId({
|
|
18
15
|
name: 'Button'
|
|
19
16
|
}, ['Button'])).toBe('Button77471352');
|
|
20
17
|
});
|
|
21
18
|
test('No negative hash', () => {
|
|
22
|
-
expect(
|
|
19
|
+
expect(extractId({
|
|
23
20
|
name: 'Navbar'
|
|
24
21
|
}, ['Navbar'])).toBe('Navbar7557f7d0');
|
|
25
22
|
});
|
|
@@ -1,23 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.extractStories = extractStories;
|
|
9
|
-
|
|
10
|
-
var _tsDedent = _interopRequireDefault(require("ts-dedent"));
|
|
11
|
-
|
|
12
|
-
var svelte = _interopRequireWildcard(require("svelte/compiler"));
|
|
13
|
-
|
|
14
|
-
var _extractId = require("./extract-id");
|
|
15
|
-
|
|
16
|
-
var _csf = require("@storybook/csf");
|
|
17
|
-
|
|
18
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
|
-
|
|
20
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
1
|
+
import dedent from 'ts-dedent';
|
|
2
|
+
import * as svelte from 'svelte/compiler';
|
|
3
|
+
import { extractId } from './extract-id';
|
|
4
|
+
import { toId, storyNameFromExport } from "@storybook/csf";
|
|
21
5
|
|
|
22
6
|
function getStaticAttribute(name, node) {
|
|
23
7
|
// extract the attribute
|
|
@@ -44,7 +28,7 @@ function getStaticAttribute(name, node) {
|
|
|
44
28
|
*/
|
|
45
29
|
|
|
46
30
|
|
|
47
|
-
function extractStories(component) {
|
|
31
|
+
export function extractStories(component) {
|
|
48
32
|
// compile
|
|
49
33
|
const {
|
|
50
34
|
ast
|
|
@@ -97,7 +81,7 @@ function extractStories(component) {
|
|
|
97
81
|
name = 'default';
|
|
98
82
|
}
|
|
99
83
|
|
|
100
|
-
const id =
|
|
84
|
+
const id = extractId({
|
|
101
85
|
id: getStaticAttribute('id', node),
|
|
102
86
|
name
|
|
103
87
|
}, isTemplate ? undefined : allocatedIds);
|
|
@@ -113,11 +97,11 @@ function extractStories(component) {
|
|
|
113
97
|
const {
|
|
114
98
|
end
|
|
115
99
|
} = node.children[node.children.length - 1];
|
|
116
|
-
source = (
|
|
100
|
+
source = dedent(component.substr(start, end - start));
|
|
117
101
|
}
|
|
118
102
|
|
|
119
103
|
stories[isTemplate ? `tpl:${id}` : id] = {
|
|
120
|
-
storyId:
|
|
104
|
+
storyId: toId(meta.id || meta.title || id, storyNameFromExport(id)),
|
|
121
105
|
name,
|
|
122
106
|
template: isTemplate,
|
|
123
107
|
source,
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var _extractStories = require("./extract-stories");
|
|
4
|
-
|
|
1
|
+
import { extractStories } from './extract-stories';
|
|
5
2
|
describe('extractSource', () => {
|
|
6
3
|
test('Simple Story', () => {
|
|
7
|
-
expect(
|
|
4
|
+
expect(extractStories(`
|
|
8
5
|
<script>
|
|
9
6
|
import { Story } from '@storybook/svelte';
|
|
10
7
|
</script>
|
|
@@ -32,7 +29,7 @@ describe('extractSource', () => {
|
|
|
32
29
|
`);
|
|
33
30
|
});
|
|
34
31
|
test('Explicit Id Story', () => {
|
|
35
|
-
expect(
|
|
32
|
+
expect(extractStories(`
|
|
36
33
|
<script>
|
|
37
34
|
import { Story } from '@storybook/svelte';
|
|
38
35
|
</script>
|
|
@@ -60,7 +57,7 @@ describe('extractSource', () => {
|
|
|
60
57
|
`);
|
|
61
58
|
});
|
|
62
59
|
test('Args Story', () => {
|
|
63
|
-
expect(
|
|
60
|
+
expect(extractStories(`
|
|
64
61
|
<script>
|
|
65
62
|
import { Story } from '@storybook/svelte';
|
|
66
63
|
</script>
|
|
@@ -88,7 +85,7 @@ describe('extractSource', () => {
|
|
|
88
85
|
`);
|
|
89
86
|
});
|
|
90
87
|
test('Simple Template', () => {
|
|
91
|
-
expect(
|
|
88
|
+
expect(extractStories(`
|
|
92
89
|
<script>
|
|
93
90
|
import { Template } from '@storybook/svelte';
|
|
94
91
|
</script>
|
|
@@ -116,7 +113,7 @@ describe('extractSource', () => {
|
|
|
116
113
|
`);
|
|
117
114
|
});
|
|
118
115
|
test('Unnamed Template', () => {
|
|
119
|
-
expect(
|
|
116
|
+
expect(extractStories(`
|
|
120
117
|
<script>
|
|
121
118
|
import { Template } from '@storybook/svelte';
|
|
122
119
|
</script>
|
|
@@ -144,7 +141,7 @@ describe('extractSource', () => {
|
|
|
144
141
|
`);
|
|
145
142
|
});
|
|
146
143
|
test('Multiple Stories', () => {
|
|
147
|
-
expect(
|
|
144
|
+
expect(extractStories(`
|
|
148
145
|
<script>
|
|
149
146
|
import { Template } from '@storybook/svelte';
|
|
150
147
|
</script>
|
|
@@ -182,7 +179,7 @@ describe('extractSource', () => {
|
|
|
182
179
|
`);
|
|
183
180
|
});
|
|
184
181
|
test('Renamed Import', () => {
|
|
185
|
-
expect(
|
|
182
|
+
expect(extractStories(`
|
|
186
183
|
<script>
|
|
187
184
|
import { Story as SBStory, Meta as SBMeta } from '@storybook/addon-svelte-csf';
|
|
188
185
|
</script>
|
|
@@ -216,7 +213,7 @@ describe('extractSource', () => {
|
|
|
216
213
|
`);
|
|
217
214
|
});
|
|
218
215
|
test('Duplicate Id', () => {
|
|
219
|
-
expect(
|
|
216
|
+
expect(extractStories(`
|
|
220
217
|
<script>
|
|
221
218
|
import { Story } from '@storybook/svelte';
|
|
222
219
|
import Button from './Button.svelte';
|
|
@@ -1,24 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
exports.getNameFromFilename = getNameFromFilename;
|
|
10
|
-
|
|
11
|
-
var _tsDedent = _interopRequireDefault(require("ts-dedent"));
|
|
12
|
-
|
|
13
|
-
var _fs = require("fs");
|
|
14
|
-
|
|
15
|
-
var _extractStories = require("./extract-stories");
|
|
1
|
+
import dedent from 'ts-dedent';
|
|
2
|
+
import { readFileSync } from 'fs';
|
|
3
|
+
import { extractStories } from './extract-stories';
|
|
16
4
|
|
|
17
5
|
const parser = require.resolve('./collect-stories').replace(/[/\\]/g, '/'); // From https://github.com/sveltejs/svelte/blob/8db3e8d0297e052556f0b6dde310ef6e197b8d18/src/compiler/compile/utils/get_name_from_filename.ts
|
|
18
6
|
// Copied because it is not exported from the compiler
|
|
19
7
|
|
|
20
8
|
|
|
21
|
-
function getNameFromFilename(filename) {
|
|
9
|
+
export function getNameFromFilename(filename) {
|
|
22
10
|
if (!filename) return null;
|
|
23
11
|
const parts = filename.split(/[/\\]/).map(encodeURI);
|
|
24
12
|
|
|
@@ -46,14 +34,14 @@ function transformSvelteStories(code) {
|
|
|
46
34
|
resource
|
|
47
35
|
} = this._module;
|
|
48
36
|
const componentName = getNameFromFilename(resource);
|
|
49
|
-
const source =
|
|
50
|
-
const storiesDef =
|
|
37
|
+
const source = readFileSync(resource).toString();
|
|
38
|
+
const storiesDef = extractStories(source);
|
|
51
39
|
const {
|
|
52
40
|
stories
|
|
53
41
|
} = storiesDef;
|
|
54
42
|
const storyDef = Object.entries(stories).filter(([, def]) => !def.template).map(([id]) => `export const ${id} = __storiesMetaData.stories[${JSON.stringify(id)}]`).join('\n');
|
|
55
43
|
const codeWithoutDefaultExport = code.replace('export default ', '//export default');
|
|
56
|
-
return
|
|
44
|
+
return dedent`${codeWithoutDefaultExport}
|
|
57
45
|
const { default: parser } = require('${parser}');
|
|
58
46
|
const __storiesMetaData = parser(${componentName}, ${JSON.stringify(storiesDef)});
|
|
59
47
|
export default __storiesMetaData.meta;
|
|
@@ -61,5 +49,4 @@ function transformSvelteStories(code) {
|
|
|
61
49
|
`;
|
|
62
50
|
}
|
|
63
51
|
|
|
64
|
-
|
|
65
|
-
exports.default = _default;
|
|
52
|
+
export default transformSvelteStories;
|
|
@@ -1,42 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
});
|
|
8
|
-
exports.default = csfPlugin;
|
|
9
|
-
|
|
10
|
-
var _fs = require("fs");
|
|
11
|
-
|
|
12
|
-
var svelte = _interopRequireWildcard(require("svelte/compiler"));
|
|
13
|
-
|
|
14
|
-
var _magicString = _interopRequireDefault(require("magic-string"));
|
|
15
|
-
|
|
16
|
-
var _vite = require("vite");
|
|
17
|
-
|
|
18
|
-
var _svelteStoriesLoader = require("../parser/svelte-stories-loader");
|
|
19
|
-
|
|
20
|
-
var _extractStories = require("../parser/extract-stories");
|
|
21
|
-
|
|
22
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
|
-
|
|
24
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import * as svelte from 'svelte/compiler';
|
|
3
|
+
import MagicString from 'magic-string';
|
|
4
|
+
import { createFilter } from 'vite';
|
|
5
|
+
import { getNameFromFilename } from '../parser/svelte-stories-loader';
|
|
6
|
+
import { extractStories } from '../parser/extract-stories';
|
|
25
7
|
|
|
26
8
|
const parser = require.resolve('../../esm/parser/collect-stories').replace(/[/\\]/g, '/');
|
|
27
9
|
|
|
28
|
-
function csfPlugin(svelteOptions) {
|
|
10
|
+
export default function csfPlugin(svelteOptions) {
|
|
29
11
|
const include = /\.stories\.svelte$/;
|
|
30
|
-
const filter =
|
|
12
|
+
const filter = createFilter(include);
|
|
31
13
|
return {
|
|
32
14
|
name: 'storybook:addon-svelte-csf-plugin',
|
|
33
15
|
enforce: 'post',
|
|
34
16
|
|
|
35
17
|
async transform(code, id) {
|
|
36
18
|
if (!filter(id)) return undefined;
|
|
37
|
-
const s = new
|
|
38
|
-
const component =
|
|
39
|
-
let source =
|
|
19
|
+
const s = new MagicString(code);
|
|
20
|
+
const component = getNameFromFilename(id);
|
|
21
|
+
let source = readFileSync(id).toString();
|
|
40
22
|
|
|
41
23
|
if (svelteOptions && svelteOptions.preprocess) {
|
|
42
24
|
source = (await svelte.preprocess(source, svelteOptions.preprocess, {
|
|
@@ -44,7 +26,7 @@ function csfPlugin(svelteOptions) {
|
|
|
44
26
|
})).code;
|
|
45
27
|
}
|
|
46
28
|
|
|
47
|
-
const all =
|
|
29
|
+
const all = extractStories(source);
|
|
48
30
|
const {
|
|
49
31
|
stories
|
|
50
32
|
} = all;
|
package/dist/cjs/preset/index.js
CHANGED
|
@@ -1,24 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.managerEntries = managerEntries;
|
|
7
|
-
exports.storyIndexers = void 0;
|
|
8
|
-
exports.viteFinal = viteFinal;
|
|
9
|
-
exports.webpack = webpack;
|
|
10
|
-
|
|
11
|
-
var _indexer = require("./indexer.js");
|
|
12
|
-
|
|
13
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
-
|
|
15
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
|
-
|
|
17
|
-
function managerEntries(entry = []) {
|
|
1
|
+
import { svelteIndexer } from './indexer.js';
|
|
2
|
+
export function managerEntries(entry = []) {
|
|
18
3
|
return [...entry, require.resolve('./manager')];
|
|
19
4
|
}
|
|
20
|
-
|
|
21
|
-
function webpack(config) {
|
|
5
|
+
export function webpack(config) {
|
|
22
6
|
return { ...config,
|
|
23
7
|
module: { ...config.module,
|
|
24
8
|
rules: [...config.module.rules, {
|
|
@@ -31,8 +15,7 @@ function webpack(config) {
|
|
|
31
15
|
}
|
|
32
16
|
};
|
|
33
17
|
}
|
|
34
|
-
|
|
35
|
-
async function viteFinal(config, options) {
|
|
18
|
+
export async function viteFinal(config, options) {
|
|
36
19
|
const {
|
|
37
20
|
plugins = []
|
|
38
21
|
} = config;
|
|
@@ -42,7 +25,7 @@ async function viteFinal(config, options) {
|
|
|
42
25
|
try {
|
|
43
26
|
const {
|
|
44
27
|
loadSvelteConfig
|
|
45
|
-
} = await
|
|
28
|
+
} = await import('@sveltejs/vite-plugin-svelte');
|
|
46
29
|
svelteConfig = { ...(await loadSvelteConfig()),
|
|
47
30
|
...svelteOptions
|
|
48
31
|
};
|
|
@@ -58,20 +41,15 @@ async function viteFinal(config, options) {
|
|
|
58
41
|
}
|
|
59
42
|
}
|
|
60
43
|
|
|
61
|
-
const
|
|
62
|
-
default: svelteCsfPlugin
|
|
63
|
-
} = await Promise.resolve().then(() => _interopRequireWildcard(require('../plugins/vite-svelte-csf')));
|
|
44
|
+
const svelteCsfPlugin = (await import('../plugins/vite-svelte-csf.js')).default.default;
|
|
64
45
|
plugins.push(svelteCsfPlugin(svelteConfig));
|
|
65
46
|
return { ...config,
|
|
66
47
|
plugins
|
|
67
48
|
};
|
|
68
49
|
}
|
|
69
|
-
|
|
70
|
-
const storyIndexers = async indexers => {
|
|
50
|
+
export const storyIndexers = async indexers => {
|
|
71
51
|
return [{
|
|
72
52
|
test: /\.stories\.svelte$/,
|
|
73
|
-
indexer:
|
|
53
|
+
indexer: svelteIndexer
|
|
74
54
|
}, ...(indexers || [])];
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
exports.storyIndexers = storyIndexers;
|
|
55
|
+
};
|
|
@@ -1,21 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.svelteIndexer = svelteIndexer;
|
|
9
|
-
|
|
10
|
-
var _extractStories = require("../parser/extract-stories");
|
|
11
|
-
|
|
12
|
-
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
13
|
-
|
|
14
|
-
async function svelteIndexer(fileName, {
|
|
1
|
+
import { extractStories } from '../parser/extract-stories';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
export async function svelteIndexer(fileName, {
|
|
15
4
|
makeTitle
|
|
16
5
|
}) {
|
|
17
|
-
let code = (await
|
|
18
|
-
const defs =
|
|
6
|
+
let code = (await fs.readFile(fileName, 'utf-8')).toString();
|
|
7
|
+
const defs = extractStories(code);
|
|
19
8
|
return {
|
|
20
9
|
meta: {
|
|
21
10
|
title: makeTitle(defs.meta.title)
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { addons } from '@storybook/addons';
|
|
2
|
+
import { ADDON_ID } from '../constants'; // Register the addon
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var _constants = require("../constants");
|
|
6
|
-
|
|
7
|
-
// Register the addon
|
|
8
|
-
_addons.addons.register(_constants.ADDON_ID, () => {});
|
|
4
|
+
addons.register(ADDON_ID, () => {});
|
package/dist/esm/preset/index.js
CHANGED
|
@@ -41,9 +41,7 @@ export async function viteFinal(config, options) {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
const
|
|
45
|
-
default: svelteCsfPlugin
|
|
46
|
-
} = await import('../plugins/vite-svelte-csf');
|
|
44
|
+
const svelteCsfPlugin = (await import('../plugins/vite-svelte-csf.js')).default.default;
|
|
47
45
|
plugins.push(svelteCsfPlugin(svelteConfig));
|
|
48
46
|
return { ...config,
|
|
49
47
|
plugins
|