|
1 |
| -import path from 'path'; |
2 |
| -import fs from 'fs'; |
3 |
| -import {exec} from 'child_process'; |
4 |
| -import {Meteor} from 'meteor/meteor'; |
| 1 | +import path from 'path' |
| 2 | +import fs from 'fs' |
| 3 | +import {exec} from 'child_process' |
| 4 | +import {Meteor} from 'meteor/meteor' |
5 | 5 |
|
| 6 | +CWD = path.resolve('./') |
6 | 7 |
|
7 |
| -CWD = path.resolve('./'); |
8 |
| - |
9 |
| -checkNpmDeps = function checkNpmDeps({dependencies, devDependencies}) { |
10 |
| - let pkg = {}; |
11 |
| - const packageFile = path.join(CWD, 'package.json'); |
| 8 | +checkNpmDeps = function checkNpmDeps ({dependencies, devDependencies}) { |
| 9 | + let pkg = {} |
| 10 | + const packageFile = path.join(CWD, 'package.json') |
12 | 11 |
|
13 | 12 | if (fs.existsSync(packageFile)) {
|
14 |
| - pkg = JSON.parse(fs.readFileSync(packageFile).toString()); |
| 13 | + pkg = JSON.parse(fs.readFileSync(packageFile).toString()) |
15 | 14 | }
|
16 | 15 |
|
17 | 16 | if (!pkg.dependencies) {
|
18 |
| - pkg.dependencies = {}; |
| 17 | + pkg.dependencies = {} |
19 | 18 | }
|
20 | 19 |
|
21 | 20 | if (!pkg.devDependencies) {
|
22 |
| - pkg.devDependencies = {}; |
| 21 | + pkg.devDependencies = {} |
23 | 22 | }
|
24 | 23 |
|
25 |
| - let hasChanged = false; |
| 24 | + let hasChanged = false |
26 | 25 |
|
27 |
| - if(dependencies) { |
| 26 | + if (dependencies) { |
28 | 27 | for (let depName in dependencies) {
|
29 | 28 | if (isNpmPackageOlder(dependencies[depName], pkg.dependencies[depName])) {
|
30 |
| - pkg.dependencies[depName] = dependencies[depName]; |
31 |
| - hasChanged = true; |
| 29 | + pkg.dependencies[depName] = dependencies[depName] |
| 30 | + hasChanged = true |
32 | 31 | }
|
33 | 32 | }
|
34 | 33 | }
|
35 | 34 |
|
36 |
| - if(devDependencies) { |
| 35 | + if (devDependencies) { |
37 | 36 | for (let depName in devDependencies) {
|
38 | 37 | if (isNpmPackageOlder(devDependencies[depName], pkg.devDependencies[depName])) {
|
39 |
| - pkg.devDependencies[depName] = devDependencies[depName]; |
40 |
| - hasChanged = true; |
| 38 | + pkg.devDependencies[depName] = devDependencies[depName] |
| 39 | + hasChanged = true |
41 | 40 | }
|
42 | 41 | }
|
43 | 42 | }
|
44 | 43 |
|
45 | 44 | if (hasChanged) {
|
46 |
| - fs.writeFileSync(packageFile, JSON.stringify(pkg, null, 2)); |
| 45 | + fs.writeFileSync(packageFile, JSON.stringify(pkg, null, 2)) |
47 | 46 | }
|
48 | 47 |
|
49 |
| - return hasChanged; |
| 48 | + return hasChanged |
50 | 49 | }
|
51 | 50 |
|
52 | 51 | isNpmPackageOlder = function (depVersion, currentVersion) {
|
53 | 52 | if (!currentVersion) {
|
54 |
| - return true; |
| 53 | + return true |
55 | 54 | }
|
56 | 55 |
|
57 |
| - const depVersions = depVersion.replace(/^[\^~]/, '').split('.'); |
58 |
| - const currentVersions = currentVersion.replace(/^[\^~]/, '').split('.'); |
| 56 | + const depVersions = depVersion.replace(/^[\^~]/, '').split('.') |
| 57 | + const currentVersions = currentVersion.replace(/^[\^~]/, '').split('.') |
59 | 58 |
|
60 | 59 | for (let i = depVersions.length; i < 3; ++i) {
|
61 |
| - depVersions.push('0'); |
| 60 | + depVersions.push('0') |
62 | 61 | }
|
63 | 62 |
|
64 | 63 | for (let i = currentVersions.length; i < 3; ++i) {
|
65 |
| - depVersions.push('0'); |
| 64 | + depVersions.push('0') |
66 | 65 | }
|
67 | 66 |
|
68 | 67 | if (depVersions[0] > currentVersions[0]) {
|
69 |
| - return true; |
| 68 | + return true |
70 | 69 | } else if (depVersions[0] < currentVersions[0]) {
|
71 |
| - return false; |
| 70 | + return false |
72 | 71 | }
|
73 | 72 |
|
74 | 73 | if (depVersions[1] > currentVersions[1]) {
|
75 |
| - return true; |
| 74 | + return true |
76 | 75 | } else if (depVersions[1] < currentVersions[1]) {
|
77 |
| - return false; |
| 76 | + return false |
78 | 77 | }
|
79 | 78 |
|
80 | 79 | if (depVersions[2] > currentVersions[2]) {
|
81 |
| - return true; |
| 80 | + return true |
82 | 81 | } else if (depVersions[2] < currentVersions[2]) {
|
83 |
| - return false; |
| 82 | + return false |
84 | 83 | }
|
85 | 84 |
|
86 |
| - return false; |
| 85 | + return false |
87 | 86 | }
|
88 | 87 |
|
89 | 88 | execSync = Meteor.wrapAsync((...params) => {
|
90 |
| - const cb = params.pop(); |
91 |
| - exec(...params, (error, stdout, stderr) => { |
92 |
| - stdout && console.log(stdout.toString()); |
93 |
| - stderr && console.error(stderr.toString()); |
94 |
| - cb(error); |
95 |
| - }); |
96 |
| -}); |
| 89 | + const cb = params.pop() |
| 90 | + exec(...params, (error, stdout, stderr) => { |
| 91 | + stdout && console.log(stdout.toString()) |
| 92 | + stderr && console.error(stderr.toString()) |
| 93 | + cb(error) |
| 94 | + }) |
| 95 | +}) |
0 commit comments