@storybook/csf 0.0.2--canary.0899bb7.0 → 0.0.2--canary.50.794a0bf.0

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/dist/index.d.ts CHANGED
@@ -15,5 +15,4 @@ export declare const parseKind: (kind: string, { rootSeparator, groupSeparator }
15
15
  root: string | null;
16
16
  groups: string[];
17
17
  };
18
- export { includeConditionalArg } from './includeConditionalArg';
19
18
  export * from './story';
package/dist/index.js CHANGED
@@ -8,22 +8,13 @@ var _exportNames = {
8
8
  toId: true,
9
9
  storyNameFromExport: true,
10
10
  isExportStory: true,
11
- parseKind: true,
12
- includeConditionalArg: true
11
+ parseKind: true
13
12
  };
14
13
  exports.isExportStory = isExportStory;
15
- Object.defineProperty(exports, "includeConditionalArg", {
16
- enumerable: true,
17
- get: function get() {
18
- return _includeConditionalArg.includeConditionalArg;
19
- }
20
- });
21
14
  exports.parseKind = exports.storyNameFromExport = exports.toId = exports.sanitize = void 0;
22
15
 
23
16
  var _startCase = _interopRequireDefault(require("lodash/startCase"));
24
17
 
25
- var _includeConditionalArg = require("./includeConditionalArg");
26
-
27
18
  var _story = require("./story");
28
19
 
29
20
  Object.keys(_story).forEach(function (key) {
package/dist/story.d.ts CHANGED
@@ -16,27 +16,11 @@ export interface StoryIdentifier {
16
16
  export declare type Parameters = {
17
17
  [name: string]: any;
18
18
  };
19
- declare type ConditionalTest = {
20
- truthy?: boolean;
21
- } | {
22
- exists: boolean;
23
- } | {
24
- eq: any;
25
- } | {
26
- neq: any;
27
- };
28
- declare type ConditionalValue = {
29
- arg: string;
30
- } | {
31
- global: string;
32
- };
33
- export declare type Conditional = ConditionalValue & ConditionalTest;
34
19
  export interface InputType {
35
20
  name?: string;
36
21
  description?: string;
37
22
  defaultValue?: any;
38
23
  type?: SBType | SBScalarType['name'];
39
- if?: Conditional;
40
24
  [key: string]: any;
41
25
  }
42
26
  export interface StrictInputType extends InputType {
@@ -93,26 +77,20 @@ export declare type StoryContext<TFramework extends AnyFramework = AnyFramework,
93
77
  abortSignal: AbortSignal;
94
78
  canvasElement: HTMLElement;
95
79
  };
96
- export declare type StepLabel = string;
97
- export declare type StepFunction<TFramework extends AnyFramework = AnyFramework, TArgs = Args> = (label: StepLabel, play: PlayFunction<TFramework, TArgs>) => void;
98
- export declare type PlayFunctionContext<TFramework extends AnyFramework = AnyFramework, TArgs = Args> = StoryContext<TFramework, TArgs> & {
99
- step: StepFunction<TFramework, TArgs>;
100
- };
101
- export declare type PlayFunction<TFramework extends AnyFramework = AnyFramework, TArgs = Args> = (context: PlayFunctionContext<TFramework, TArgs>) => Promise<void> | void;
80
+ export declare type PlayFunction<TFramework extends AnyFramework = AnyFramework, TArgs = Args> = (context: StoryContext<TFramework, TArgs>) => Promise<void> | void;
102
81
  export declare type PartialStoryFn<TFramework extends AnyFramework = AnyFramework, TArgs = Args> = (update?: StoryContextUpdate<TArgs>) => TFramework['storyResult'];
103
82
  export declare type LegacyStoryFn<TFramework extends AnyFramework = AnyFramework, TArgs = Args> = (context: StoryContext<TFramework, TArgs>) => TFramework['storyResult'];
104
83
  export declare type ArgsStoryFn<TFramework extends AnyFramework = AnyFramework, TArgs = Args> = (args: TArgs, context: StoryContext<TFramework, TArgs>) => TFramework['storyResult'];
105
84
  export declare type StoryFn<TFramework extends AnyFramework = AnyFramework, TArgs = Args> = LegacyStoryFn<TFramework, TArgs> | ArgsStoryFn<TFramework, TArgs>;
106
85
  export declare type DecoratorFunction<TFramework extends AnyFramework = AnyFramework, TArgs = Args> = (fn: PartialStoryFn<TFramework, TArgs>, c: StoryContext<TFramework, TArgs>) => TFramework['storyResult'];
107
86
  export declare type DecoratorApplicator<TFramework extends AnyFramework = AnyFramework, TArgs = Args> = (storyFn: LegacyStoryFn<TFramework, TArgs>, decorators: DecoratorFunction<TFramework, TArgs>[]) => LegacyStoryFn<TFramework, TArgs>;
108
- export declare type StepRunner<TFramework extends AnyFramework = AnyFramework, TArgs = Args> = (label: StepLabel, play: PlayFunction<TFramework, TArgs>, context: PlayFunctionContext<TFramework, TArgs>) => Promise<void>;
109
87
  export declare type BaseAnnotations<TFramework extends AnyFramework = AnyFramework, TArgs = Args> = {
110
88
  decorators?: DecoratorFunction<TFramework, Args>[];
111
89
  parameters?: Parameters;
112
90
  args?: Partial<TArgs>;
113
91
  argTypes?: Partial<ArgTypes<TArgs>>;
114
92
  loaders?: LoaderFunction<TFramework, Args>[];
115
- render?: ArgsStoryFn<TFramework, TArgs>;
93
+ render?: ArgsStoryFn<TFramework, Args>;
116
94
  };
117
95
  export declare type ProjectAnnotations<TFramework extends AnyFramework = AnyFramework, TArgs = Args> = BaseAnnotations<TFramework, TArgs> & {
118
96
  argsEnhancers?: ArgsEnhancer<TFramework, Args>[];
@@ -120,7 +98,6 @@ export declare type ProjectAnnotations<TFramework extends AnyFramework = AnyFram
120
98
  globals?: Globals;
121
99
  globalTypes?: GlobalTypes;
122
100
  applyDecorators?: DecoratorApplicator<TFramework, Args>;
123
- runStep?: StepRunner<TFramework, TArgs>;
124
101
  };
125
102
  declare type StoryDescriptor = string[] | RegExp;
126
103
  export declare type ComponentAnnotations<TFramework extends AnyFramework = AnyFramework, TArgs = Args> = BaseAnnotations<TFramework, TArgs> & {
@@ -1,9 +1,5 @@
1
1
  "use strict";
2
2
 
3
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
-
5
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
6
-
7
3
  // NOTE Example of internal type definition for @storybook/<X> (where X is a framework)
8
4
  // NOTE Examples of using types from @storybook/<X> in real project
9
5
  var Button = function Button() {
@@ -120,7 +116,7 @@ CSF2Story.args = {
120
116
  a: 1
121
117
  };
122
118
  var CSF3Story = {
123
- render: function render(args) {
119
+ render: function render() {
124
120
  return 'Named Story';
125
121
  },
126
122
  name: 'Another name for story',
@@ -142,7 +138,7 @@ var CSF3Story = {
142
138
  }
143
139
  };
144
140
  var CSF3StoryStrict = {
145
- render: function render(args) {
141
+ render: function render() {
146
142
  return 'Named Story';
147
143
  },
148
144
  name: 'Another name for story',
@@ -161,31 +157,6 @@ var CSF3StoryStrict = {
161
157
  }],
162
158
  args: {
163
159
  x: '1'
164
- },
165
- play: function play(_ref) {
166
- var step = _ref.step;
167
- step('a step', function (_ref2) {
168
- var substep = _ref2.step;
169
- substep('a substep', function () {});
170
- });
171
- }
172
- };
173
- var project = {
174
- runStep: function runStep(label, play, context) {
175
- return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
176
- return regeneratorRuntime.wrap(function _callee$(_context) {
177
- while (1) {
178
- switch (_context.prev = _context.next) {
179
- case 0:
180
- return _context.abrupt("return", play(context));
181
-
182
- case 1:
183
- case "end":
184
- return _context.stop();
185
- }
186
- }
187
- }, _callee);
188
- }))();
189
160
  }
190
161
  }; // NOTE Jest forced to define at least one test in file
191
162
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/csf",
3
- "version": "0.0.2--canary.0899bb7.0",
3
+ "version": "0.0.2--canary.50.794a0bf.0",
4
4
  "description": "Component Story Format (CSF) utilities",
5
5
  "keywords": [
6
6
  "storybook",
@@ -38,15 +38,13 @@
38
38
  },
39
39
  "prettier": "@storybook/linter-config/prettier.config",
40
40
  "jest": {
41
- "testEnvironment": "node",
42
- "roots": [
43
- "<rootDir>/src"
44
- ]
41
+ "testEnvironment": "node"
45
42
  },
46
43
  "dependencies": {
47
44
  "lodash": "^4.17.15"
48
45
  },
49
46
  "devDependencies": {
47
+ "@auto-it/released": "^10.37.1",
50
48
  "@babel/cli": "^7.8.4",
51
49
  "@babel/core": "^7.9.0",
52
50
  "@babel/preset-env": "^7.9.5",
@@ -63,6 +61,12 @@
63
61
  "prettier": "^1.19.1",
64
62
  "typescript": "^3.7.2"
65
63
  },
64
+ "auto": {
65
+ "plugins": [
66
+ "npm",
67
+ "released"
68
+ ]
69
+ },
66
70
  "publishConfig": {
67
71
  "access": "public"
68
72
  }
@@ -1,3 +0,0 @@
1
- import { Args, Globals, InputType, Conditional } from './story';
2
- export declare const testValue: (cond: Pick<Conditional, never>, value: any) => boolean;
3
- export declare const includeConditionalArg: (argType: InputType, args: Args, globals: Globals) => boolean;
@@ -1,74 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.includeConditionalArg = exports.testValue = void 0;
7
-
8
- var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
-
12
- var count = function count(vals) {
13
- return vals.map(function (v) {
14
- return typeof v !== 'undefined';
15
- }).filter(Boolean).length;
16
- };
17
-
18
- var testValue = function testValue(cond, value) {
19
- var _ref = cond,
20
- exists = _ref.exists,
21
- eq = _ref.eq,
22
- neq = _ref.neq,
23
- truthy = _ref.truthy;
24
-
25
- if (count([exists, eq, neq, truthy]) > 1) {
26
- throw new Error("Invalid conditional test ".concat(JSON.stringify({
27
- exists: exists,
28
- eq: eq,
29
- neq: neq
30
- })));
31
- }
32
-
33
- if (typeof eq !== 'undefined') {
34
- return (0, _isEqual["default"])(value, eq);
35
- }
36
-
37
- if (typeof neq !== 'undefined') {
38
- return !(0, _isEqual["default"])(value, neq);
39
- }
40
-
41
- if (typeof exists !== 'undefined') {
42
- var valueExists = typeof value !== 'undefined';
43
- return exists ? valueExists : !valueExists;
44
- }
45
-
46
- var shouldBeTruthy = typeof truthy === 'undefined' ? true : truthy;
47
- return shouldBeTruthy ? !!value : !value;
48
- };
49
- /**
50
- * Helper function to include/exclude an arg based on the value of other other args
51
- * aka "conditional args"
52
- */
53
-
54
-
55
- exports.testValue = testValue;
56
-
57
- var includeConditionalArg = function includeConditionalArg(argType, args, globals) {
58
- if (!argType["if"]) return true;
59
- var _ref2 = argType["if"],
60
- arg = _ref2.arg,
61
- global = _ref2.global;
62
-
63
- if (count([arg, global]) !== 1) {
64
- throw new Error("Invalid conditional value ".concat(JSON.stringify({
65
- arg: arg,
66
- global: global
67
- })));
68
- }
69
-
70
- var value = arg ? args[arg] : globals[global];
71
- return testValue(argType["if"], value);
72
- };
73
-
74
- exports.includeConditionalArg = includeConditionalArg;
@@ -1,318 +0,0 @@
1
- "use strict";
2
-
3
- var _includeConditionalArg = require("./includeConditionalArg");
4
-
5
- /* eslint-disable @typescript-eslint/ban-ts-ignore */
6
- describe('testValue', function () {
7
- describe('truthy', function () {
8
- it.each([['implicit true', {}, true, true], ['implicit truthy', {}, 1, true], ['implicit falsey', {}, 0, false], ['truthy true', {
9
- truthy: true
10
- }, true, true], ['truthy truthy', {
11
- truthy: true
12
- }, 1, true], ['truthy falsey', {
13
- truthy: true
14
- }, 0, false], ['falsey true', {
15
- truthy: false
16
- }, true, false], ['falsey truthy', {
17
- truthy: false
18
- }, 1, false], ['falsey falsey', {
19
- truthy: false
20
- }, 0, true]])('%s', function (_name, cond, value, expected) {
21
- // @ts-ignore
22
- expect((0, _includeConditionalArg.testValue)(cond, value)).toBe(expected);
23
- });
24
- });
25
- describe('exists', function () {
26
- it.each([['exist', {
27
- exists: true
28
- }, 1, true], ['exist false', {
29
- exists: true
30
- }, undefined, false], ['nexist', {
31
- exists: false
32
- }, undefined, true], ['nexist false', {
33
- exists: false
34
- }, 1, false]])('%s', function (_name, cond, value, expected) {
35
- // @ts-ignore
36
- expect((0, _includeConditionalArg.testValue)(cond, value)).toBe(expected);
37
- });
38
- });
39
- describe('eq', function () {
40
- it.each([['true', {
41
- eq: 1
42
- }, 1, true], ['false', {
43
- eq: 1
44
- }, 2, false], ['undefined', {
45
- eq: undefined
46
- }, undefined, false], ['undefined false', {
47
- eq: 1
48
- }, undefined, false], ['object true', {
49
- eq: {
50
- x: 1
51
- }
52
- }, {
53
- x: 1
54
- }, true], ['object true', {
55
- eq: {
56
- x: 1
57
- }
58
- }, {
59
- x: 2
60
- }, false]])('%s', function (_name, cond, value, expected) {
61
- // @ts-ignore
62
- expect((0, _includeConditionalArg.testValue)(cond, value)).toBe(expected);
63
- });
64
- });
65
- describe('neq', function () {
66
- it.each([['true', {
67
- neq: 1
68
- }, 2, true], ['false', {
69
- neq: 1
70
- }, 1, false], ['undefined true', {
71
- neq: 1
72
- }, undefined, true], ['undefined false', {
73
- neq: undefined
74
- }, undefined, false], ['object true', {
75
- neq: {
76
- x: 1
77
- }
78
- }, {
79
- x: 2
80
- }, true], ['object false', {
81
- neq: {
82
- x: 1
83
- }
84
- }, {
85
- x: 1
86
- }, false]])('%s', function (_name, cond, value, expected) {
87
- // @ts-ignore
88
- expect((0, _includeConditionalArg.testValue)(cond, value)).toBe(expected);
89
- });
90
- });
91
- });
92
- describe('includeConditionalArg', function () {
93
- describe('errors', function () {
94
- it('should throw if arg and global are both specified', function () {
95
- expect(function () {
96
- return (0, _includeConditionalArg.includeConditionalArg)({
97
- "if": {
98
- arg: 'a',
99
- global: 'b'
100
- }
101
- }, {}, {});
102
- }).toThrowErrorMatchingInlineSnapshot("\"Invalid conditional value {\\\"arg\\\":\\\"a\\\",\\\"global\\\":\\\"b\\\"}\"");
103
- });
104
- it('should throw if mulitiple exists / eq / neq are specified', function () {
105
- expect(function () {
106
- return (0, _includeConditionalArg.includeConditionalArg)({
107
- "if": {
108
- arg: 'a',
109
- exists: true,
110
- eq: 1
111
- }
112
- }, {}, {});
113
- }).toThrowErrorMatchingInlineSnapshot("\"Invalid conditional test {\\\"exists\\\":true,\\\"eq\\\":1}\"");
114
- expect(function () {
115
- return (0, _includeConditionalArg.includeConditionalArg)({
116
- "if": {
117
- arg: 'a',
118
- exists: false,
119
- neq: 0
120
- }
121
- }, {}, {});
122
- }).toThrowErrorMatchingInlineSnapshot("\"Invalid conditional test {\\\"exists\\\":false,\\\"neq\\\":0}\"");
123
- expect(function () {
124
- return (0, _includeConditionalArg.includeConditionalArg)({
125
- "if": {
126
- arg: 'a',
127
- eq: 1,
128
- neq: 0
129
- }
130
- }, {}, {});
131
- }).toThrowErrorMatchingInlineSnapshot("\"Invalid conditional test {\\\"eq\\\":1,\\\"neq\\\":0}\"");
132
- });
133
- });
134
- describe('args', function () {
135
- describe('implicit', function () {
136
- it.each([['implicit true', {
137
- "if": {
138
- arg: 'a'
139
- }
140
- }, {
141
- a: 1
142
- }, {}, true], ['truthy true', {
143
- "if": {
144
- arg: 'a',
145
- truthy: true
146
- }
147
- }, {
148
- a: 0
149
- }, {}, false], ['truthy false', {
150
- "if": {
151
- arg: 'a',
152
- truthy: false
153
- }
154
- }, {}, {}, true]])('%s', function (_name, argType, args, globals, expected) {
155
- // @ts-ignore
156
- expect((0, _includeConditionalArg.includeConditionalArg)(argType, args, globals)).toBe(expected);
157
- });
158
- });
159
- describe('exists', function () {
160
- it.each([['exist', {
161
- "if": {
162
- arg: 'a',
163
- exists: true
164
- }
165
- }, {
166
- a: 1
167
- }, {}, true], ['exist false', {
168
- "if": {
169
- arg: 'a',
170
- exists: true
171
- }
172
- }, {}, {}, false]])('%s', function (_name, argType, args, globals, expected) {
173
- // @ts-ignore
174
- expect((0, _includeConditionalArg.includeConditionalArg)(argType, args, globals)).toBe(expected);
175
- });
176
- });
177
- describe('eq', function () {
178
- it.each([['scalar true', {
179
- "if": {
180
- arg: 'a',
181
- eq: 1
182
- }
183
- }, {
184
- a: 1
185
- }, {}, true], ['scalar false', {
186
- "if": {
187
- arg: 'a',
188
- eq: 1
189
- }
190
- }, {
191
- a: 2
192
- }, {
193
- a: 1
194
- }, false]])('%s', function (_name, argType, args, globals, expected) {
195
- // @ts-ignore
196
- expect((0, _includeConditionalArg.includeConditionalArg)(argType, args, globals)).toBe(expected);
197
- });
198
- });
199
- describe('neq', function () {
200
- it.each([['scalar true', {
201
- "if": {
202
- arg: 'a',
203
- neq: 1
204
- }
205
- }, {
206
- a: 2
207
- }, {}, true], ['scalar false', {
208
- "if": {
209
- arg: 'a',
210
- neq: 1
211
- }
212
- }, {
213
- a: 1
214
- }, {
215
- a: 2
216
- }, false]])('%s', function (_name, argType, args, globals, expected) {
217
- // @ts-ignore
218
- expect((0, _includeConditionalArg.includeConditionalArg)(argType, args, globals)).toBe(expected);
219
- });
220
- });
221
- });
222
- describe('globals', function () {
223
- describe('truthy', function () {
224
- it.each([['implicit true', {
225
- "if": {
226
- global: 'a'
227
- }
228
- }, {}, {
229
- a: 1
230
- }, true], ['implicit undefined', {
231
- "if": {
232
- global: 'a'
233
- }
234
- }, {}, {}, false], ['truthy true', {
235
- "if": {
236
- global: 'a',
237
- truthy: true
238
- }
239
- }, {}, {
240
- a: 0
241
- }, false], ['truthy false', {
242
- "if": {
243
- global: 'a',
244
- truthy: false
245
- }
246
- }, {}, {
247
- a: 0
248
- }, true]])('%s', function (_name, argType, args, globals, expected) {
249
- // @ts-ignore
250
- expect((0, _includeConditionalArg.includeConditionalArg)(argType, args, globals)).toBe(expected);
251
- });
252
- });
253
- describe('exists', function () {
254
- it.each([['implicit exist true', {
255
- "if": {
256
- global: 'a',
257
- exists: true
258
- }
259
- }, {}, {
260
- a: 1
261
- }, true], ['implicit exist false', {
262
- "if": {
263
- global: 'a',
264
- exists: true
265
- }
266
- }, {
267
- a: 1
268
- }, {}, false]])('%s', function (_name, argType, args, globals, expected) {
269
- // @ts-ignore
270
- expect((0, _includeConditionalArg.includeConditionalArg)(argType, args, globals)).toBe(expected);
271
- });
272
- });
273
- describe('eq', function () {
274
- it.each([['scalar true', {
275
- "if": {
276
- global: 'a',
277
- eq: 1
278
- }
279
- }, {}, {
280
- a: 1
281
- }, true], ['scalar false', {
282
- "if": {
283
- arg: 'a',
284
- eq: 1
285
- }
286
- }, {
287
- a: 2
288
- }, {
289
- a: 1
290
- }, false]])('%s', function (_name, argType, args, globals, expected) {
291
- // @ts-ignore
292
- expect((0, _includeConditionalArg.includeConditionalArg)(argType, args, globals)).toBe(expected);
293
- });
294
- });
295
- describe('neq', function () {
296
- it.each([['scalar true', {
297
- "if": {
298
- global: 'a',
299
- neq: 1
300
- }
301
- }, {}, {
302
- a: 2
303
- }, true], ['scalar false', {
304
- "if": {
305
- global: 'a',
306
- neq: 1
307
- }
308
- }, {
309
- a: 2
310
- }, {
311
- a: 1
312
- }, false]])('%s', function (_name, argType, args, globals, expected) {
313
- // @ts-ignore
314
- expect((0, _includeConditionalArg.includeConditionalArg)(argType, args, globals)).toBe(expected);
315
- });
316
- });
317
- });
318
- });