|
26 | 26 | */
|
27 | 27 |
|
28 | 28 | const fs = require('fs');
|
| 29 | +const replaceURLsVersions = require('./helpers/replace-url-versions') |
29 | 30 | const { Command } = require('commander');
|
30 | 31 | const program = new Command();
|
31 |
| -program.option('--tests') |
32 |
| - .option('--dry-run') |
| 32 | + program.option('--dry-run') |
33 | 33 | .option('--verbose')
|
34 | 34 | .option('--silent')
|
35 |
| - .argument('[currentFolder]') |
36 |
| - .argument('[newVersionNumber]'); |
| 35 | + .argument('<currentFolder>') |
| 36 | + .argument('<newEmberVersionNumber>') |
| 37 | + .argument('<newEmberDataVersionNumber>'); |
37 | 38 | program.parse(process.argv);
|
38 | 39 | const options = program.opts();
|
39 | 40 |
|
40 |
| -const replaceURLsVersions = (str, version) => { |
41 |
| - let output; |
42 |
| - |
43 |
| - // guides use `v3.20.0` version format |
44 |
| - const patchVersion = /\d+\.\d+.\d+/.test(version) ? version : version + '.0'; |
45 |
| - output = str.replace( |
46 |
| - /https:\/\/guides.emberjs.com\/(release|v\d+\.\d+.\d+)(\/?)/g, |
47 |
| - `https://guides.emberjs.com/v${patchVersion}$2` |
48 |
| - ); |
49 |
| - |
50 |
| - // apis use `3.20` version format |
51 |
| - output = output.replace( |
52 |
| - /https:\/\/api.emberjs.com\/(ember|ember-data)\/(release|\d+\.\d+)(\/?)/g, |
53 |
| - `https://api.emberjs.com/$1/${version}$3` |
54 |
| - ); |
55 |
| - |
56 |
| - return output; |
57 |
| -}; |
58 |
| - |
59 |
| -const runTests = () => { |
60 |
| - let test; |
61 |
| - |
62 |
| - console.log('Running tests...'); |
63 |
| - |
64 |
| - test = replaceURLsVersions('https://api.emberjs.com/ember/release/', '3.15'); |
65 |
| - console.log(test === 'https://api.emberjs.com/ember/3.15/' ? '✅' : '❌', test); |
66 |
| - |
67 |
| - test = replaceURLsVersions('https://api.emberjs.com/ember/release', '3.15'); |
68 |
| - console.log(test === 'https://api.emberjs.com/ember/3.15' ? '✅' : '❌', test); |
69 |
| - |
70 |
| - test = replaceURLsVersions('https://api.emberjs.com/ember/3.20/', '3.15'); |
71 |
| - console.log(test === 'https://api.emberjs.com/ember/3.15/' ? '✅' : '❌', test); |
72 |
| - |
73 |
| - test = replaceURLsVersions('https://api.emberjs.com/ember/3.20', '3.15'); |
74 |
| - console.log(test === 'https://api.emberjs.com/ember/3.15' ? '✅' : '❌', test); |
75 |
| - |
76 |
| - test = replaceURLsVersions('https://api.emberjs.com/ember/release/classes/Application', '3.15'); |
77 |
| - console.log(test === 'https://api.emberjs.com/ember/3.15/classes/Application' ? '✅' : '❌', test); |
78 |
| - |
79 |
| - test = replaceURLsVersions('https://api.emberjs.com/ember-data/release/', '3.15'); |
80 |
| - console.log(test === 'https://api.emberjs.com/ember-data/3.15/' ? '✅' : '❌', test); |
81 |
| - |
82 |
| - test = replaceURLsVersions('https://api.emberjs.com/ember-data/release', '3.15'); |
83 |
| - console.log(test === 'https://api.emberjs.com/ember-data/3.15' ? '✅' : '❌', test); |
84 |
| - |
85 |
| - test = replaceURLsVersions('https://api.emberjs.com/ember-data/release/classes/Model/', '3.15'); |
86 |
| - console.log(test === 'https://api.emberjs.com/ember-data/3.15/classes/Model/' ? '✅' : '❌', test); |
87 |
| - |
88 |
| - test = replaceURLsVersions('https://api.emberjs.com/ember-data/3.20/classes/Model/', '3.15'); |
89 |
| - console.log(test === 'https://api.emberjs.com/ember-data/3.15/classes/Model/' ? '✅' : '❌', test); |
90 |
| - |
91 |
| - test = replaceURLsVersions('https://api.emberjs.com/ember/release/classes/@ember%2Fapplication/methods/getOwner', '3.15'); |
92 |
| - console.log(test === 'https://api.emberjs.com/ember/3.15/classes/@ember%2Fapplication/methods/getOwner' ? '✅' : '❌', test); |
93 |
| - |
94 |
| - test = replaceURLsVersions('https://guides.emberjs.com/release/getting-started/', '3.15'); |
95 |
| - console.log(test === 'https://guides.emberjs.com/v3.15.0/getting-started/' ? '✅' : '❌', test); |
96 |
| - |
97 |
| - test = replaceURLsVersions('https://guides.emberjs.com/release/getting-started/', '3.16.0'); |
98 |
| - console.log(test === 'https://guides.emberjs.com/v3.16.0/getting-started/' ? '✅' : '❌', test); |
99 |
| -}; |
100 |
| - |
101 |
| -if (options.tests) { |
102 |
| - runTests(); |
103 |
| - process.exit(0); |
104 |
| -} |
105 |
| - |
106 | 41 | const currentFolder = fs.realpathSync(program.args[0]);
|
107 | 42 | const newVersionNumber = program.args[1];
|
108 | 43 |
|
|
0 commit comments