UNPKG

2.04 kBJavaScriptView Raw
1const fs = require("fs");
2const core = require("./core");
3
4const INDENT = 2;
5
6function determineOutdated(pOutdatedObject, pPackageObject) {
7 pOutdatedObject =
8 pOutdatedObject.length <= 0 ? {} : JSON.parse(pOutdatedObject);
9 const lOutdatedObject = core.filterOutdatedPackages(
10 pOutdatedObject,
11 pPackageObject
12 );
13
14 if (Object.keys(pOutdatedObject).length <= 0) {
15 return {
16 OK: true,
17 message: " Up'em says: Everything seems to be up to date already.\n\n",
18 };
19 }
20
21 if (Object.keys(lOutdatedObject).length <= 0) {
22 return {
23 OK: true,
24 message:
25 " Up'em says: Everything not in 'upem.donotup' seems to be up to date already.\n\n",
26 };
27 }
28
29 return {
30 OK: true,
31 outdatedObject: lOutdatedObject,
32 };
33}
34
35module.exports = (
36 pPackageInputFileName,
37 pOutdatedObject,
38 pPackageOutputFileName = pPackageInputFileName,
39 pOptions
40) => {
41 try {
42 const lPackageFile = fs.readFileSync(pPackageInputFileName);
43 const lPackageObject = JSON.parse(lPackageFile);
44
45 const lOutdatedResult = determineOutdated(pOutdatedObject, lPackageObject);
46
47 if (!lOutdatedResult.outdatedObject) {
48 return lOutdatedResult;
49 }
50
51 try {
52 fs.writeFileSync(
53 pPackageOutputFileName,
54 JSON.stringify(
55 core.updateAllDeps(
56 lPackageObject,
57 lOutdatedResult.outdatedObject,
58 pOptions
59 ),
60 // eslint-disable-next-line unicorn/no-null
61 null,
62 INDENT
63 )
64 );
65 return {
66 OK: true,
67 message: ` Up'em just updated all outdated dependencies in package.json to latest:\n\n ${Object.keys(
68 lOutdatedResult.outdatedObject
69 ).join(", ")}\n\n`,
70 };
71 } catch (pError) {
72 return {
73 OK: false,
74 message: ` Up'em encountered a hitch when updating package.json:\n${pError}\n\n`,
75 };
76 }
77 } catch (pError) {
78 return {
79 OK: false,
80 message: ` Up'em encountered a hitch:\n${pError}\n\n`,
81 };
82 }
83};