diff --git a/lib/cli/story.js b/lib/cli/story.js
new file mode 100644
index 000000000000..2a64488eda19
--- /dev/null
+++ b/lib/cli/story.js
@@ -0,0 +1,10 @@
+export default {
+ title: 'Story',
+};
+
+export const startCase = () => 'foo';
+export const camelCase = () => 'foo';
+
+camelCase.story = {
+ name: 'camelCase',
+};
diff --git a/lib/codemod/package.json b/lib/codemod/package.json
index b0b3b262dc98..9dc73c93697d 100644
--- a/lib/codemod/package.json
+++ b/lib/codemod/package.json
@@ -23,6 +23,7 @@
"dependencies": {
"@mdx-js/mdx": "^1.0.0",
"@storybook/node-logger": "5.2.1",
+ "@storybook/router": "5.2.1",
"core-js": "^3.0.1",
"cross-spawn": "^6.0.5",
"globby": "^10.0.1",
diff --git a/lib/codemod/src/lib/utils.js b/lib/codemod/src/lib/utils.js
index 822774440a20..4d782569a215 100644
--- a/lib/codemod/src/lib/utils.js
+++ b/lib/codemod/src/lib/utils.js
@@ -9,5 +9,9 @@ export const sanitizeName = name => {
if (isReserved(key)) {
key = `${key}Story`;
}
+ // prepend _ if name starts with a digit
+ if (/^\d/.test(key)) {
+ key = `_${key}`;
+ }
return key;
};
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.input.js b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.input.js
index 459203a04290..17c8f6abc1a1 100644
--- a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.input.js
+++ b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.input.js
@@ -14,4 +14,5 @@ storiesOf('Button', module)
))
- .add('w/punctuation', () => );
+ .add('w/punctuation', () => )
+ .add('Start Case', () => );
diff --git a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.output.js b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.output.js
index f5e86149cc1b..a678481c0470 100644
--- a/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.output.js
+++ b/lib/codemod/src/transforms/__testfixtures__/storiesof-to-csf/basic.output.js
@@ -10,6 +10,11 @@ export default {
};
export const story1 = () => ;
+
+story1.story = {
+ name: 'story1',
+};
+
export const secondStory = () => ;
secondStory.story = {
@@ -32,3 +37,5 @@ export const wPunctuation = () =>