@storybook/addon-svelte-csf 2.0.9 → 2.0.10

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 CHANGED
@@ -1,8 +1,5 @@
1
1
  module.exports = {
2
2
  presets: ['@babel/preset-env', '@babel/preset-typescript'],
3
- plugins: [
4
- "@babel/plugin-transform-runtime"
5
- ],
6
3
  env: {
7
4
  esm: {
8
5
  presets: [
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ # v2.0.10 (Thu Oct 27 2022)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - Revert "Implement a Svelte StoryIndexer" #76 [#76](https://github.com/storybookjs/addon-svelte-csf/pull/76) ([@JReinhold](https://github.com/JReinhold))
6
+
7
+ #### Authors: 1
8
+
9
+ - Jeppe Reinhold ([@JReinhold](https://github.com/JReinhold))
10
+
11
+ ---
12
+
1
13
  # v2.0.9 (Thu Oct 27 2022)
2
14
 
3
15
  #### 🐛 Bug Fix
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
@@ -9,13 +7,13 @@ exports.createRegistrationContext = createRegistrationContext;
9
7
  exports.createRenderContext = createRenderContext;
10
8
  exports.useContext = useContext;
11
9
 
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
10
  var _svelte = require("svelte");
15
11
 
16
12
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
13
 
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
+
16
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
17
 
20
18
  var CONTEXT_KEY = "storybook-registration-context";
21
19
 
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
@@ -31,6 +29,8 @@ var _Story = _interopRequireDefault(require("./components/Story.svelte"));
31
29
 
32
30
  var _Template = _interopRequireDefault(require("./components/Template.svelte"));
33
31
 
32
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
33
+
34
34
  if (module && module.hot && module.hot.decline) {
35
35
  module.hot.decline();
36
36
  } // make it work with --isolatedModules
@@ -1,16 +1,10 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports["default"] = void 0;
9
7
 
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
-
12
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
8
  var _clientLogger = require("@storybook/client-logger");
15
9
 
16
10
  var _clientApi = require("@storybook/client-api");
@@ -23,6 +17,24 @@ var _RenderContext = _interopRequireDefault(require("../components/RenderContext
23
17
 
24
18
  var _excluded = ["id", "name", "template", "component", "source"];
25
19
 
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
+
22
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
23
+
24
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
25
+
26
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
27
+
28
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
29
+
30
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
31
+
32
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
33
+
34
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
35
+
36
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
37
+
26
38
  /* Called from a webpack loader and a jest transformation.
27
39
  *
28
40
  * It mounts a Stories component in a context which disables
@@ -96,7 +108,8 @@ var _default = function _default(StoriesComponent, _ref) {
96
108
  component = story.component,
97
109
  _story$source = story.source,
98
110
  source = _story$source === void 0 ? false : _story$source,
99
- props = (0, _objectWithoutProperties2["default"])(story, _excluded);
111
+ props = _objectWithoutProperties(story, _excluded);
112
+
100
113
  var storyId = (0, _extractId.extractId)(story, allocatedIds);
101
114
 
102
115
  if (!storyId) {
@@ -125,7 +138,7 @@ var _default = function _default(StoriesComponent, _ref) {
125
138
 
126
139
  storyFn.storyName = name;
127
140
  Object.entries(props).forEach(function (_ref2) {
128
- var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
141
+ var _ref3 = _slicedToArray(_ref2, 2),
129
142
  k = _ref3[0],
130
143
  v = _ref3[1];
131
144
 
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  var _collectStories = _interopRequireDefault(require("./collect-stories"));
6
4
 
7
5
  var _TestStories = _interopRequireDefault(require("../components/__tests__/TestStories.svelte"));
8
6
 
7
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8
+
9
9
  describe('parse-stories', function () {
10
10
  test('Extract Stories', function () {
11
11
  var data = (0, _collectStories["default"])(_TestStories["default"], {
@@ -25,10 +25,6 @@ function extractId(_ref) {
25
25
  return id;
26
26
  }
27
27
 
28
- if (!name) {
29
- throw new Error("Id or Name should be specified");
30
- }
31
-
32
28
  var generated = name.replace(/\W+(.|$)/g, function (_, chr) {
33
29
  return chr.toUpperCase();
34
30
  });
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
6
4
 
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
@@ -15,12 +13,12 @@ var svelte = _interopRequireWildcard(require("svelte/compiler"));
15
13
 
16
14
  var _extractId = require("./extract-id");
17
15
 
18
- var _csf = require("@storybook/csf");
19
-
20
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
17
 
22
18
  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; }
23
19
 
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
+
24
22
  function getStaticAttribute(name, node) {
25
23
  // extract the attribute
26
24
  var attribute = node.attributes.find(function (att) {
@@ -28,7 +26,7 @@ function getStaticAttribute(name, node) {
28
26
  });
29
27
 
30
28
  if (!attribute) {
31
- return undefined;
29
+ return null;
32
30
  }
33
31
 
34
32
  var value = attribute.value; // expect the attribute to be static, ie only one Text node
@@ -54,43 +52,37 @@ function extractStories(component) {
54
52
  var allocatedIds = ['default'];
55
53
  var localNames = {
56
54
  Story: 'Story',
57
- Template: 'Template',
58
- Meta: 'Meta'
55
+ Template: 'Template'
59
56
  };
60
-
61
- if (ast.instance) {
62
- svelte.walk(ast.instance, {
63
- enter: function enter(node) {
64
- if (node.type === 'ImportDeclaration') {
65
- if (node.source.value === '@storybook/addon-svelte-csf') {
66
- node.specifiers.filter(function (n) {
67
- return n.type === 'ImportSpecifier';
68
- }).forEach(function (n) {
69
- localNames[n.imported.name] = n.local.name;
70
- });
71
- }
72
-
73
- this.skip();
74
- }
75
- }
76
- }); // extracts allocated Ids
77
-
78
- svelte.walk(ast.instance, {
79
- enter: function enter(node) {
80
- if (node.type === 'ImportDeclaration') {
81
- node.specifiers.map(function (n) {
82
- return n.local.name;
83
- }).forEach(function (name) {
84
- return allocatedIds.push(name);
57
+ svelte.walk(ast.instance, {
58
+ enter: function enter(node) {
59
+ if (node.type === 'ImportDeclaration') {
60
+ if (node.source.value === '@storybook/addon-svelte-csf') {
61
+ node.specifiers.filter(function (n) {
62
+ return n.type === 'ImportSpecifier';
63
+ }).forEach(function (n) {
64
+ localNames[n.imported.name] = n.local.name;
85
65
  });
86
- this.skip();
87
66
  }
67
+
68
+ this.skip();
88
69
  }
89
- });
90
- }
70
+ }
71
+ }); // extracts allocated Ids
91
72
 
73
+ svelte.walk(ast.instance, {
74
+ enter: function enter(node) {
75
+ if (node.type === 'ImportDeclaration') {
76
+ node.specifiers.map(function (n) {
77
+ return n.local.name;
78
+ }).forEach(function (name) {
79
+ return allocatedIds.push(name);
80
+ });
81
+ this.skip();
82
+ }
83
+ }
84
+ });
92
85
  var stories = {};
93
- var meta = {};
94
86
  svelte.walk(ast.html, {
95
87
  enter: function enter(node) {
96
88
  if (node.type === 'InlineComponent' && (node.name === localNames.Story || node.name === localNames.Template)) {
@@ -119,7 +111,6 @@ function extractStories(component) {
119
111
  }
120
112
 
121
113
  stories[isTemplate ? "tpl:".concat(id) : id] = {
122
- storyId: (0, _csf.toId)(meta.id || meta.title || id, (0, _csf.storyNameFromExport)(id)),
123
114
  name: name,
124
115
  template: isTemplate,
125
116
  source: source,
@@ -128,15 +119,10 @@ function extractStories(component) {
128
119
  }) != null
129
120
  };
130
121
  }
131
- } else if (node.type === 'InlineComponent' && node.name === localNames.Meta) {
132
- this.skip();
133
- meta.title = getStaticAttribute("title", node);
134
- meta.id = getStaticAttribute("id", node);
135
122
  }
136
123
  }
137
124
  });
138
125
  return {
139
- meta: meta,
140
126
  stories: stories,
141
127
  allocatedIds: allocatedIds
142
128
  };
@@ -4,27 +4,27 @@ var _extractStories = require("./extract-stories");
4
4
 
5
5
  describe('extractSource', function () {
6
6
  test('Simple Story', function () {
7
- expect((0, _extractStories.extractStories)("\n <script>\n import { Story } from '@storybook/svelte';\n </script>\n\n <Story name=\"MyStory\">\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n ],\n \"meta\": Object {},\n \"stories\": Object {\n \"MyStory\": Object {\n \"hasArgs\": false,\n \"name\": \"MyStory\",\n \"source\": \"<div>a story</div>\",\n \"storyId\": \"mystory--my-story\",\n \"template\": false,\n },\n },\n }\n ");
7
+ expect((0, _extractStories.extractStories)("\n <script>\n import { Story } from '@storybook/svelte';\n </script>\n\n <Story name=\"MyStory\">\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n ],\n \"stories\": Object {\n \"MyStory\": Object {\n \"hasArgs\": false,\n \"name\": \"MyStory\",\n \"source\": \"<div>a story</div>\",\n \"template\": false,\n },\n },\n }\n ");
8
8
  });
9
9
  test('Explicit Id Story', function () {
10
- expect((0, _extractStories.extractStories)("\n <script>\n import { Story } from '@storybook/svelte';\n </script>\n\n <Story id=\"myId\" name=\"MyStory\">\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n ],\n \"meta\": Object {},\n \"stories\": Object {\n \"myId\": Object {\n \"hasArgs\": false,\n \"name\": \"MyStory\",\n \"source\": \"<div>a story</div>\",\n \"storyId\": \"myid--my-id\",\n \"template\": false,\n },\n },\n }\n ");
10
+ expect((0, _extractStories.extractStories)("\n <script>\n import { Story } from '@storybook/svelte';\n </script>\n\n <Story id=\"myId\" name=\"MyStory\">\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n ],\n \"stories\": Object {\n \"myId\": Object {\n \"hasArgs\": false,\n \"name\": \"MyStory\",\n \"source\": \"<div>a story</div>\",\n \"template\": false,\n },\n },\n }\n ");
11
11
  });
12
12
  test('Args Story', function () {
13
- expect((0, _extractStories.extractStories)("\n <script>\n import { Story } from '@storybook/svelte';\n </script>\n\n <Story name=\"MyStory\" let:args>\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n ],\n \"meta\": Object {},\n \"stories\": Object {\n \"MyStory\": Object {\n \"hasArgs\": true,\n \"name\": \"MyStory\",\n \"source\": \"<div>a story</div>\",\n \"storyId\": \"mystory--my-story\",\n \"template\": false,\n },\n },\n }\n ");
13
+ expect((0, _extractStories.extractStories)("\n <script>\n import { Story } from '@storybook/svelte';\n </script>\n\n <Story name=\"MyStory\" let:args>\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n ],\n \"stories\": Object {\n \"MyStory\": Object {\n \"hasArgs\": true,\n \"name\": \"MyStory\",\n \"source\": \"<div>a story</div>\",\n \"template\": false,\n },\n },\n }\n ");
14
14
  });
15
15
  test('Simple Template', function () {
16
- expect((0, _extractStories.extractStories)("\n <script>\n import { Template } from '@storybook/svelte';\n </script>\n\n <Template name=\"MyTemplate\">\n <div>a template</div>\n </Template>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Template\",\n ],\n \"meta\": Object {},\n \"stories\": Object {\n \"tpl:MyTemplate\": Object {\n \"hasArgs\": false,\n \"name\": \"MyTemplate\",\n \"source\": \"<div>a template</div>\",\n \"storyId\": \"mytemplate--my-template\",\n \"template\": true,\n },\n },\n }\n ");
16
+ expect((0, _extractStories.extractStories)("\n <script>\n import { Template } from '@storybook/svelte';\n </script>\n\n <Template name=\"MyTemplate\">\n <div>a template</div>\n </Template>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Template\",\n ],\n \"stories\": Object {\n \"tpl:MyTemplate\": Object {\n \"hasArgs\": false,\n \"name\": \"MyTemplate\",\n \"source\": \"<div>a template</div>\",\n \"template\": true,\n },\n },\n }\n ");
17
17
  });
18
18
  test('Unnamed Template', function () {
19
- expect((0, _extractStories.extractStories)("\n <script>\n import { Template } from '@storybook/svelte';\n </script>\n\n <Template>\n <div>a template</div>\n </Template>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Template\",\n ],\n \"meta\": Object {},\n \"stories\": Object {\n \"tpl:default\": Object {\n \"hasArgs\": false,\n \"name\": \"default\",\n \"source\": \"<div>a template</div>\",\n \"storyId\": \"default--default\",\n \"template\": true,\n },\n },\n }\n ");
19
+ expect((0, _extractStories.extractStories)("\n <script>\n import { Template } from '@storybook/svelte';\n </script>\n\n <Template>\n <div>a template</div>\n </Template>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Template\",\n ],\n \"stories\": Object {\n \"tpl:default\": Object {\n \"hasArgs\": false,\n \"name\": \"default\",\n \"source\": \"<div>a template</div>\",\n \"template\": true,\n },\n },\n }\n ");
20
20
  });
21
21
  test('Multiple Stories', function () {
22
- expect((0, _extractStories.extractStories)("\n <script>\n import { Template } from '@storybook/svelte';\n </script>\n\n <Story name=\"Story1\">\n <div>story 1</div>\n </Story>\n <Story name=\"Story2\">\n <div>story 2</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Template\",\n ],\n \"meta\": Object {},\n \"stories\": Object {\n \"Story1\": Object {\n \"hasArgs\": false,\n \"name\": \"Story1\",\n \"source\": \"<div>story 1</div>\",\n \"storyId\": \"story1--story-1\",\n \"template\": false,\n },\n \"Story2\": Object {\n \"hasArgs\": false,\n \"name\": \"Story2\",\n \"source\": \"<div>story 2</div>\",\n \"storyId\": \"story2--story-2\",\n \"template\": false,\n },\n },\n }\n ");
22
+ expect((0, _extractStories.extractStories)("\n <script>\n import { Template } from '@storybook/svelte';\n </script>\n\n <Story name=\"Story1\">\n <div>story 1</div>\n </Story>\n <Story name=\"Story2\">\n <div>story 2</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Template\",\n ],\n \"stories\": Object {\n \"Story1\": Object {\n \"hasArgs\": false,\n \"name\": \"Story1\",\n \"source\": \"<div>story 1</div>\",\n \"template\": false,\n },\n \"Story2\": Object {\n \"hasArgs\": false,\n \"name\": \"Story2\",\n \"source\": \"<div>story 2</div>\",\n \"template\": false,\n },\n },\n }\n ");
23
23
  });
24
24
  test('Renamed Import', function () {
25
- expect((0, _extractStories.extractStories)("\n <script>\n import { Story as SBStory, Meta as SBMeta } from '@storybook/addon-svelte-csf';\n </script>\n\n <SBMeta title='test'/>\n\n <SBStory name=\"Story1\">\n <div>story 1</div>\n </SBStory>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"SBStory\",\n \"SBMeta\",\n ],\n \"meta\": Object {\n \"id\": undefined,\n \"title\": \"test\",\n },\n \"stories\": Object {\n \"Story1\": Object {\n \"hasArgs\": false,\n \"name\": \"Story1\",\n \"source\": \"<div>story 1</div>\",\n \"storyId\": \"test--story-1\",\n \"template\": false,\n },\n },\n }\n ");
25
+ expect((0, _extractStories.extractStories)("\n <script>\n import { Story as SBStory, Meta as SBMeta } from '@storybook/addon-svelte-csf';\n </script>\n\n <SBMeta title='test'/>\n\n <SBStory name=\"Story1\">\n <div>story 1</div>\n </SBStory>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"SBStory\",\n \"SBMeta\",\n ],\n \"stories\": Object {\n \"Story1\": Object {\n \"hasArgs\": false,\n \"name\": \"Story1\",\n \"source\": \"<div>story 1</div>\",\n \"template\": false,\n },\n },\n }\n ");
26
26
  });
27
27
  test('Duplicate Id', function () {
28
- expect((0, _extractStories.extractStories)("\n <script>\n import { Story } from '@storybook/svelte';\n import Button from './Button.svelte';\n </script>\n\n <Story name=\"Button\">\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n \"Button\",\n ],\n \"meta\": Object {},\n \"stories\": Object {\n \"Button77471352\": Object {\n \"hasArgs\": false,\n \"name\": \"Button\",\n \"source\": \"<div>a story</div>\",\n \"storyId\": \"button77471352--button-77471352\",\n \"template\": false,\n },\n },\n }\n ");
28
+ expect((0, _extractStories.extractStories)("\n <script>\n import { Story } from '@storybook/svelte';\n import Button from './Button.svelte';\n </script>\n\n <Story name=\"Button\">\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n \"Button\",\n ],\n \"stories\": Object {\n \"Button77471352\": Object {\n \"hasArgs\": false,\n \"name\": \"Button\",\n \"source\": \"<div>a story</div>\",\n \"template\": false,\n },\n },\n }\n ");
29
29
  });
30
30
  });
@@ -1,17 +1,11 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports["default"] = void 0;
9
7
  exports.getNameFromFilename = getNameFromFilename;
10
8
 
11
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
12
-
13
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
14
-
15
9
  var _tsDedent = _interopRequireDefault(require("ts-dedent"));
16
10
 
17
11
  var _fs = require("fs");
@@ -20,6 +14,22 @@ var _extractStories = require("./extract-stories");
20
14
 
21
15
  var _templateObject;
22
16
 
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
18
+
19
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
20
+
21
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
22
+
23
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
24
+
25
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
26
+
27
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
28
+
29
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
30
+
31
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
32
+
23
33
  var parser = require.resolve('./collect-stories').replace(/[/\\]/g, '/'); // From https://github.com/sveltejs/svelte/blob/8db3e8d0297e052556f0b6dde310ef6e197b8d18/src/compiler/compile/utils/get_name_from_filename.ts
24
34
  // Copied because it is not exported from the compiler
25
35
 
@@ -54,18 +64,18 @@ function transformSvelteStories(code) {
54
64
  var storiesDef = (0, _extractStories.extractStories)(source);
55
65
  var stories = storiesDef.stories;
56
66
  var storyDef = Object.entries(stories).filter(function (_ref) {
57
- var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
67
+ var _ref2 = _slicedToArray(_ref, 2),
58
68
  def = _ref2[1];
59
69
 
60
70
  return !def.template;
61
71
  }).map(function (_ref3) {
62
- var _ref4 = (0, _slicedToArray2["default"])(_ref3, 1),
72
+ var _ref4 = _slicedToArray(_ref3, 1),
63
73
  id = _ref4[0];
64
74
 
65
75
  return "export const ".concat(id, " = __storiesMetaData.stories[").concat(JSON.stringify(id), "]");
66
76
  }).join('\n');
67
77
  var codeWithoutDefaultExport = code.replace('export default ', '//export default');
68
- return (0, _tsDedent["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["", "\n const { default: parser } = require('", "');\n const __storiesMetaData = parser(", ", ", ");\n export default __storiesMetaData.meta;\n ", ";\n "])), codeWithoutDefaultExport, parser, componentName, JSON.stringify(storiesDef), storyDef);
78
+ return (0, _tsDedent["default"])(_templateObject || (_templateObject = _taggedTemplateLiteral(["", "\n const { default: parser } = require('", "');\n const __storiesMetaData = parser(", ", ", ");\n export default __storiesMetaData.meta;\n ", ";\n "])), codeWithoutDefaultExport, parser, componentName, JSON.stringify(storiesDef), storyDef);
69
79
  }
70
80
 
71
81
  var _default = transformSvelteStories;
@@ -1,37 +1,38 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports.managerEntries = managerEntries;
9
- exports.storyIndexers = void 0;
10
7
  exports.webpack = webpack;
11
8
 
12
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
10
 
14
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
12
 
16
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
14
 
18
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
19
16
 
20
- var _indexer = require("./indexer.js");
17
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
21
18
 
22
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
20
+
21
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
22
+
23
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
23
24
 
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
26
 
26
27
  function managerEntries() {
27
28
  var entry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
28
- return [].concat((0, _toConsumableArray2["default"])(entry), [require.resolve('./manager')]);
29
+ return [].concat(_toConsumableArray(entry), [require.resolve('./manager')]);
29
30
  }
30
31
 
31
32
  function webpack(config) {
32
33
  return _objectSpread(_objectSpread({}, config), {}, {
33
34
  module: _objectSpread(_objectSpread({}, config.module), {}, {
34
- rules: [].concat((0, _toConsumableArray2["default"])(config.module.rules), [{
35
+ rules: [].concat(_toConsumableArray(config.module.rules), [{
35
36
  test: /\.stories\.svelte$/,
36
37
  enforce: 'post',
37
38
  use: [{
@@ -40,30 +41,4 @@ function webpack(config) {
40
41
  }])
41
42
  })
42
43
  });
43
- }
44
-
45
- var storyIndexers = /*#__PURE__*/function () {
46
- var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(indexers) {
47
- return _regenerator["default"].wrap(function _callee$(_context) {
48
- while (1) {
49
- switch (_context.prev = _context.next) {
50
- case 0:
51
- return _context.abrupt("return", [{
52
- test: /\.stories\.svelte$/,
53
- indexer: _indexer.svelteIndexer
54
- }].concat((0, _toConsumableArray2["default"])(indexers || [])));
55
-
56
- case 1:
57
- case "end":
58
- return _context.stop();
59
- }
60
- }
61
- }, _callee);
62
- }));
63
-
64
- return function storyIndexers(_x) {
65
- return _ref.apply(this, arguments);
66
- };
67
- }();
68
-
69
- exports.storyIndexers = storyIndexers;
44
+ }
@@ -1,9 +1,9 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
1
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
2
 
5
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
4
 
5
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+
7
7
  import { getContext, hasContext, setContext } from "svelte";
8
8
  var CONTEXT_KEY = "storybook-registration-context";
9
9
  export function createRenderContext() {
@@ -1,7 +1,21 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
1
  var _excluded = ["id", "name", "template", "component", "source"];
4
2
 
3
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
+
5
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
+
7
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
+
9
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
10
+
11
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
12
+
13
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
+
15
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
16
+
17
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
18
+
5
19
  /* eslint-env browser */
6
20
  import { logger } from '@storybook/client-logger';
7
21
  import { combineParameters } from '@storybook/client-api';
@@ -18,10 +18,6 @@ export function extractId(_ref) {
18
18
  return id;
19
19
  }
20
20
 
21
- if (!name) {
22
- throw new Error("Id or Name should be specified");
23
- }
24
-
25
21
  var generated = name.replace(/\W+(.|$)/g, function (_, chr) {
26
22
  return chr.toUpperCase();
27
23
  });
@@ -1,7 +1,6 @@
1
1
  import dedent from 'ts-dedent';
2
2
  import * as svelte from 'svelte/compiler';
3
3
  import { extractId } from './extract-id';
4
- import { toId, storyNameFromExport } from "@storybook/csf";
5
4
 
6
5
  function getStaticAttribute(name, node) {
7
6
  // extract the attribute
@@ -10,7 +9,7 @@ function getStaticAttribute(name, node) {
10
9
  });
11
10
 
12
11
  if (!attribute) {
13
- return undefined;
12
+ return null;
14
13
  }
15
14
 
16
15
  var value = attribute.value; // expect the attribute to be static, ie only one Text node
@@ -36,43 +35,37 @@ export function extractStories(component) {
36
35
  var allocatedIds = ['default'];
37
36
  var localNames = {
38
37
  Story: 'Story',
39
- Template: 'Template',
40
- Meta: 'Meta'
38
+ Template: 'Template'
41
39
  };
42
-
43
- if (ast.instance) {
44
- svelte.walk(ast.instance, {
45
- enter: function enter(node) {
46
- if (node.type === 'ImportDeclaration') {
47
- if (node.source.value === '@storybook/addon-svelte-csf') {
48
- node.specifiers.filter(function (n) {
49
- return n.type === 'ImportSpecifier';
50
- }).forEach(function (n) {
51
- localNames[n.imported.name] = n.local.name;
52
- });
53
- }
54
-
55
- this.skip();
56
- }
57
- }
58
- }); // extracts allocated Ids
59
-
60
- svelte.walk(ast.instance, {
61
- enter: function enter(node) {
62
- if (node.type === 'ImportDeclaration') {
63
- node.specifiers.map(function (n) {
64
- return n.local.name;
65
- }).forEach(function (name) {
66
- return allocatedIds.push(name);
40
+ svelte.walk(ast.instance, {
41
+ enter: function enter(node) {
42
+ if (node.type === 'ImportDeclaration') {
43
+ if (node.source.value === '@storybook/addon-svelte-csf') {
44
+ node.specifiers.filter(function (n) {
45
+ return n.type === 'ImportSpecifier';
46
+ }).forEach(function (n) {
47
+ localNames[n.imported.name] = n.local.name;
67
48
  });
68
- this.skip();
69
49
  }
50
+
51
+ this.skip();
70
52
  }
71
- });
72
- }
53
+ }
54
+ }); // extracts allocated Ids
73
55
 
56
+ svelte.walk(ast.instance, {
57
+ enter: function enter(node) {
58
+ if (node.type === 'ImportDeclaration') {
59
+ node.specifiers.map(function (n) {
60
+ return n.local.name;
61
+ }).forEach(function (name) {
62
+ return allocatedIds.push(name);
63
+ });
64
+ this.skip();
65
+ }
66
+ }
67
+ });
74
68
  var stories = {};
75
- var meta = {};
76
69
  svelte.walk(ast.html, {
77
70
  enter: function enter(node) {
78
71
  if (node.type === 'InlineComponent' && (node.name === localNames.Story || node.name === localNames.Template)) {
@@ -101,7 +94,6 @@ export function extractStories(component) {
101
94
  }
102
95
 
103
96
  stories[isTemplate ? "tpl:".concat(id) : id] = {
104
- storyId: toId(meta.id || meta.title || id, storyNameFromExport(id)),
105
97
  name: name,
106
98
  template: isTemplate,
107
99
  source: source,
@@ -110,15 +102,10 @@ export function extractStories(component) {
110
102
  }) != null
111
103
  };
112
104
  }
113
- } else if (node.type === 'InlineComponent' && node.name === localNames.Meta) {
114
- this.skip();
115
- meta.title = getStaticAttribute("title", node);
116
- meta.id = getStaticAttribute("id", node);
117
105
  }
118
106
  }
119
107
  });
120
108
  return {
121
- meta: meta,
122
109
  stories: stories,
123
110
  allocatedIds: allocatedIds
124
111
  };
@@ -1,27 +1,27 @@
1
1
  import { extractStories } from './extract-stories';
2
2
  describe('extractSource', function () {
3
3
  test('Simple Story', function () {
4
- expect(extractStories("\n <script>\n import { Story } from '@storybook/svelte';\n </script>\n\n <Story name=\"MyStory\">\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n ],\n \"meta\": Object {},\n \"stories\": Object {\n \"MyStory\": Object {\n \"hasArgs\": false,\n \"name\": \"MyStory\",\n \"source\": \"<div>a story</div>\",\n \"storyId\": \"mystory--my-story\",\n \"template\": false,\n },\n },\n }\n ");
4
+ expect(extractStories("\n <script>\n import { Story } from '@storybook/svelte';\n </script>\n\n <Story name=\"MyStory\">\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n ],\n \"stories\": Object {\n \"MyStory\": Object {\n \"hasArgs\": false,\n \"name\": \"MyStory\",\n \"source\": \"<div>a story</div>\",\n \"template\": false,\n },\n },\n }\n ");
5
5
  });
6
6
  test('Explicit Id Story', function () {
7
- expect(extractStories("\n <script>\n import { Story } from '@storybook/svelte';\n </script>\n\n <Story id=\"myId\" name=\"MyStory\">\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n ],\n \"meta\": Object {},\n \"stories\": Object {\n \"myId\": Object {\n \"hasArgs\": false,\n \"name\": \"MyStory\",\n \"source\": \"<div>a story</div>\",\n \"storyId\": \"myid--my-id\",\n \"template\": false,\n },\n },\n }\n ");
7
+ expect(extractStories("\n <script>\n import { Story } from '@storybook/svelte';\n </script>\n\n <Story id=\"myId\" name=\"MyStory\">\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n ],\n \"stories\": Object {\n \"myId\": Object {\n \"hasArgs\": false,\n \"name\": \"MyStory\",\n \"source\": \"<div>a story</div>\",\n \"template\": false,\n },\n },\n }\n ");
8
8
  });
9
9
  test('Args Story', function () {
10
- expect(extractStories("\n <script>\n import { Story } from '@storybook/svelte';\n </script>\n\n <Story name=\"MyStory\" let:args>\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n ],\n \"meta\": Object {},\n \"stories\": Object {\n \"MyStory\": Object {\n \"hasArgs\": true,\n \"name\": \"MyStory\",\n \"source\": \"<div>a story</div>\",\n \"storyId\": \"mystory--my-story\",\n \"template\": false,\n },\n },\n }\n ");
10
+ expect(extractStories("\n <script>\n import { Story } from '@storybook/svelte';\n </script>\n\n <Story name=\"MyStory\" let:args>\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n ],\n \"stories\": Object {\n \"MyStory\": Object {\n \"hasArgs\": true,\n \"name\": \"MyStory\",\n \"source\": \"<div>a story</div>\",\n \"template\": false,\n },\n },\n }\n ");
11
11
  });
12
12
  test('Simple Template', function () {
13
- expect(extractStories("\n <script>\n import { Template } from '@storybook/svelte';\n </script>\n\n <Template name=\"MyTemplate\">\n <div>a template</div>\n </Template>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Template\",\n ],\n \"meta\": Object {},\n \"stories\": Object {\n \"tpl:MyTemplate\": Object {\n \"hasArgs\": false,\n \"name\": \"MyTemplate\",\n \"source\": \"<div>a template</div>\",\n \"storyId\": \"mytemplate--my-template\",\n \"template\": true,\n },\n },\n }\n ");
13
+ expect(extractStories("\n <script>\n import { Template } from '@storybook/svelte';\n </script>\n\n <Template name=\"MyTemplate\">\n <div>a template</div>\n </Template>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Template\",\n ],\n \"stories\": Object {\n \"tpl:MyTemplate\": Object {\n \"hasArgs\": false,\n \"name\": \"MyTemplate\",\n \"source\": \"<div>a template</div>\",\n \"template\": true,\n },\n },\n }\n ");
14
14
  });
15
15
  test('Unnamed Template', function () {
16
- expect(extractStories("\n <script>\n import { Template } from '@storybook/svelte';\n </script>\n\n <Template>\n <div>a template</div>\n </Template>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Template\",\n ],\n \"meta\": Object {},\n \"stories\": Object {\n \"tpl:default\": Object {\n \"hasArgs\": false,\n \"name\": \"default\",\n \"source\": \"<div>a template</div>\",\n \"storyId\": \"default--default\",\n \"template\": true,\n },\n },\n }\n ");
16
+ expect(extractStories("\n <script>\n import { Template } from '@storybook/svelte';\n </script>\n\n <Template>\n <div>a template</div>\n </Template>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Template\",\n ],\n \"stories\": Object {\n \"tpl:default\": Object {\n \"hasArgs\": false,\n \"name\": \"default\",\n \"source\": \"<div>a template</div>\",\n \"template\": true,\n },\n },\n }\n ");
17
17
  });
18
18
  test('Multiple Stories', function () {
19
- expect(extractStories("\n <script>\n import { Template } from '@storybook/svelte';\n </script>\n\n <Story name=\"Story1\">\n <div>story 1</div>\n </Story>\n <Story name=\"Story2\">\n <div>story 2</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Template\",\n ],\n \"meta\": Object {},\n \"stories\": Object {\n \"Story1\": Object {\n \"hasArgs\": false,\n \"name\": \"Story1\",\n \"source\": \"<div>story 1</div>\",\n \"storyId\": \"story1--story-1\",\n \"template\": false,\n },\n \"Story2\": Object {\n \"hasArgs\": false,\n \"name\": \"Story2\",\n \"source\": \"<div>story 2</div>\",\n \"storyId\": \"story2--story-2\",\n \"template\": false,\n },\n },\n }\n ");
19
+ expect(extractStories("\n <script>\n import { Template } from '@storybook/svelte';\n </script>\n\n <Story name=\"Story1\">\n <div>story 1</div>\n </Story>\n <Story name=\"Story2\">\n <div>story 2</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Template\",\n ],\n \"stories\": Object {\n \"Story1\": Object {\n \"hasArgs\": false,\n \"name\": \"Story1\",\n \"source\": \"<div>story 1</div>\",\n \"template\": false,\n },\n \"Story2\": Object {\n \"hasArgs\": false,\n \"name\": \"Story2\",\n \"source\": \"<div>story 2</div>\",\n \"template\": false,\n },\n },\n }\n ");
20
20
  });
21
21
  test('Renamed Import', function () {
22
- expect(extractStories("\n <script>\n import { Story as SBStory, Meta as SBMeta } from '@storybook/addon-svelte-csf';\n </script>\n\n <SBMeta title='test'/>\n\n <SBStory name=\"Story1\">\n <div>story 1</div>\n </SBStory>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"SBStory\",\n \"SBMeta\",\n ],\n \"meta\": Object {\n \"id\": undefined,\n \"title\": \"test\",\n },\n \"stories\": Object {\n \"Story1\": Object {\n \"hasArgs\": false,\n \"name\": \"Story1\",\n \"source\": \"<div>story 1</div>\",\n \"storyId\": \"test--story-1\",\n \"template\": false,\n },\n },\n }\n ");
22
+ expect(extractStories("\n <script>\n import { Story as SBStory, Meta as SBMeta } from '@storybook/addon-svelte-csf';\n </script>\n\n <SBMeta title='test'/>\n\n <SBStory name=\"Story1\">\n <div>story 1</div>\n </SBStory>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"SBStory\",\n \"SBMeta\",\n ],\n \"stories\": Object {\n \"Story1\": Object {\n \"hasArgs\": false,\n \"name\": \"Story1\",\n \"source\": \"<div>story 1</div>\",\n \"template\": false,\n },\n },\n }\n ");
23
23
  });
24
24
  test('Duplicate Id', function () {
25
- expect(extractStories("\n <script>\n import { Story } from '@storybook/svelte';\n import Button from './Button.svelte';\n </script>\n\n <Story name=\"Button\">\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n \"Button\",\n ],\n \"meta\": Object {},\n \"stories\": Object {\n \"Button77471352\": Object {\n \"hasArgs\": false,\n \"name\": \"Button\",\n \"source\": \"<div>a story</div>\",\n \"storyId\": \"button77471352--button-77471352\",\n \"template\": false,\n },\n },\n }\n ");
25
+ expect(extractStories("\n <script>\n import { Story } from '@storybook/svelte';\n import Button from './Button.svelte';\n </script>\n\n <Story name=\"Button\">\n <div>a story</div>\n </Story>\n ")).toMatchInlineSnapshot("\n Object {\n \"allocatedIds\": Array [\n \"default\",\n \"Story\",\n \"Button\",\n ],\n \"stories\": Object {\n \"Button77471352\": Object {\n \"hasArgs\": false,\n \"name\": \"Button\",\n \"source\": \"<div>a story</div>\",\n \"template\": false,\n },\n },\n }\n ");
26
26
  });
27
27
  });
@@ -1,8 +1,19 @@
1
- import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
-
4
1
  var _templateObject;
5
2
 
3
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
4
+
5
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6
+
7
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8
+
9
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
10
+
11
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
12
+
13
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
14
+
15
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
+
6
17
  import dedent from 'ts-dedent';
7
18
  import { readFileSync } from 'fs';
8
19
  import { extractStories } from './extract-stories';
@@ -1,13 +1,21 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
- import _regeneratorRuntime from "@babel/runtime/regenerator";
5
-
6
1
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
2
 
8
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
4
 
10
- import { svelteIndexer } from "./indexer.js";
5
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+
7
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8
+
9
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+
11
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12
+
13
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
14
+
15
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
16
+
17
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
18
+
11
19
  export function managerEntries() {
12
20
  var entry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
13
21
  return [].concat(_toConsumableArray(entry), [require.resolve('./manager')]);
@@ -24,27 +32,4 @@ export function webpack(config) {
24
32
  }])
25
33
  })
26
34
  });
27
- }
28
- export var storyIndexers = /*#__PURE__*/function () {
29
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(indexers) {
30
- return _regeneratorRuntime.wrap(function _callee$(_context) {
31
- while (1) {
32
- switch (_context.prev = _context.next) {
33
- case 0:
34
- return _context.abrupt("return", [{
35
- test: /\.stories\.svelte$/,
36
- indexer: svelteIndexer
37
- }].concat(_toConsumableArray(indexers || [])));
38
-
39
- case 1:
40
- case "end":
41
- return _context.stop();
42
- }
43
- }
44
- }, _callee);
45
- }));
46
-
47
- return function storyIndexers(_x) {
48
- return _ref.apply(this, arguments);
49
- };
50
- }();
35
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/addon-svelte-csf",
3
- "version": "2.0.9",
3
+ "version": "2.0.10",
4
4
  "description": "Allows to write stories in Svelte syntax",
5
5
  "keywords": [
6
6
  "storybook-addons",
@@ -28,14 +28,13 @@
28
28
  "prepublish": "yarn clean && yarn build",
29
29
  "test": "jest",
30
30
  "lint": "eslint --cache --cache-location=.cache/eslint --ext .js,.jsx,.json,.html,.ts,.tsx,.mjs --report-unused-disable-directives",
31
- "storybook": "sb dev -p 6006",
31
+ "storybook": "start-storybook -p 6006",
32
32
  "start": "concurrently \"yarn storybook -- --no-manager-cache --quiet\" \"yarn build -- --watch\"",
33
- "build-storybook": "sb build",
33
+ "build-storybook": "build-storybook",
34
34
  "release": "yarn build && auto shipit"
35
35
  },
36
36
  "dependencies": {
37
- "ts-dedent": "^2.0.0",
38
- "@babel/runtime": "^7.17.5"
37
+ "ts-dedent": "^2.0.0"
39
38
  },
40
39
  "devDependencies": {
41
40
  "@auto-it/released": "^10.32.6",
@@ -44,18 +43,13 @@
44
43
  "@babel/preset-env": "^7.16.11",
45
44
  "@babel/preset-react": "^7.16.7",
46
45
  "@babel/preset-typescript": "^7.16.7",
47
- "@babel/plugin-transform-runtime": "^7.17.5",
48
- "@storybook/addon-essentials": "^7.0.0-alpha.29",
49
- "@storybook/addon-interactions": "^7.0.0-alpha.29",
46
+ "@storybook/addon-essentials": "^6.4.20",
47
+ "@storybook/addon-interactions": "^6.4.20",
50
48
  "@storybook/jest": "^0.0.10",
51
49
  "@storybook/testing-library": "^0.0.9",
52
- "@storybook/addon-storyshots": "^7.0.0-alpha.29",
50
+ "@storybook/addon-storyshots": "^6.4.20",
53
51
  "@storybook/eslint-config-storybook": "^3.1.2",
54
- "@storybook/svelte": "^7.0.0-alpha.29",
55
- "@storybook/core-server": "^7.0.0-alpha.29",
56
- "@storybook/core-client": "^7.0.0-alpha.29",
57
- "@storybook/svelte-webpack5": "7.0.0-alpha.29",
58
- "sb": "7.0.0-alpha.29",
52
+ "@storybook/svelte": "^6.4.20",
59
53
  "auto": "^10.3.0",
60
54
  "babel-jest": "^29.1.0",
61
55
  "babel-loader": "^8.1.0",
@@ -68,15 +62,14 @@
68
62
  "react": "^17.0.1",
69
63
  "react-dom": "^17.0.1",
70
64
  "rimraf": "^3.0.2",
71
- "svelte": "^3.50.0",
65
+ "svelte": "^3.46.6",
72
66
  "svelte-jester": "^2.3.2",
73
67
  "svelte-loader": "^3.1.2",
74
68
  "typescript": "^3.9.7"
75
69
  },
76
70
  "peerDependencies": {
77
71
  "@storybook/svelte": ">=6.4.20",
78
- "@storybook/theming": ">=6.4.20",
79
- "svelte": "^3.50.0",
72
+ "svelte": "^3.46.6",
80
73
  "svelte-loader": "^3.1.2"
81
74
  },
82
75
  "peerDependenciesMeta": {
@@ -1,68 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.svelteIndexer = svelteIndexer;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
- var _extractStories = require("../parser/extract-stories");
17
-
18
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
19
-
20
- function svelteIndexer(_x, _x2) {
21
- return _svelteIndexer.apply(this, arguments);
22
- }
23
-
24
- function _svelteIndexer() {
25
- _svelteIndexer = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(fileName, _ref) {
26
- var makeTitle, code, defs;
27
- return _regenerator["default"].wrap(function _callee$(_context) {
28
- while (1) {
29
- switch (_context.prev = _context.next) {
30
- case 0:
31
- makeTitle = _ref.makeTitle;
32
- _context.next = 3;
33
- return _fsExtra["default"].readFile(fileName, 'utf-8');
34
-
35
- case 3:
36
- code = _context.sent.toString();
37
- defs = (0, _extractStories.extractStories)(code);
38
- return _context.abrupt("return", {
39
- meta: {
40
- title: makeTitle(defs.meta.title)
41
- },
42
- stories: Object.entries(defs.stories).filter(function (_ref2) {
43
- var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
44
- id = _ref3[0],
45
- story = _ref3[1];
46
-
47
- return !story.template;
48
- }).map(function (_ref4) {
49
- var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2),
50
- id = _ref5[0],
51
- story = _ref5[1];
52
-
53
- return {
54
- id: story.storyId,
55
- name: story.name
56
- };
57
- })
58
- });
59
-
60
- case 6:
61
- case "end":
62
- return _context.stop();
63
- }
64
- }
65
- }, _callee);
66
- }));
67
- return _svelteIndexer.apply(this, arguments);
68
- }
@@ -1,54 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
- import _regeneratorRuntime from "@babel/runtime/regenerator";
4
- import { extractStories } from '../parser/extract-stories';
5
- import fs from 'fs-extra';
6
- export function svelteIndexer(_x, _x2) {
7
- return _svelteIndexer.apply(this, arguments);
8
- }
9
-
10
- function _svelteIndexer() {
11
- _svelteIndexer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(fileName, _ref) {
12
- var makeTitle, code, defs;
13
- return _regeneratorRuntime.wrap(function _callee$(_context) {
14
- while (1) {
15
- switch (_context.prev = _context.next) {
16
- case 0:
17
- makeTitle = _ref.makeTitle;
18
- _context.next = 3;
19
- return fs.readFile(fileName, 'utf-8');
20
-
21
- case 3:
22
- code = _context.sent.toString();
23
- defs = extractStories(code);
24
- return _context.abrupt("return", {
25
- meta: {
26
- title: makeTitle(defs.meta.title)
27
- },
28
- stories: Object.entries(defs.stories).filter(function (_ref2) {
29
- var _ref3 = _slicedToArray(_ref2, 2),
30
- id = _ref3[0],
31
- story = _ref3[1];
32
-
33
- return !story.template;
34
- }).map(function (_ref4) {
35
- var _ref5 = _slicedToArray(_ref4, 2),
36
- id = _ref5[0],
37
- story = _ref5[1];
38
-
39
- return {
40
- id: story.storyId,
41
- name: story.name
42
- };
43
- })
44
- });
45
-
46
- case 6:
47
- case "end":
48
- return _context.stop();
49
- }
50
- }
51
- }, _callee);
52
- }));
53
- return _svelteIndexer.apply(this, arguments);
54
- }