1 | const _castArray = require("lodash.castarray");
|
2 | const _get = require("lodash.get");
|
3 |
|
4 | function updateDeps(pDependencyObject, pOutdatedPackagesObject, pOptions = {}) {
|
5 | const lSavePrefix = pOptions.saveExact ? "" : pOptions.savePrefix || "^";
|
6 |
|
7 | return {
|
8 | ...pDependencyObject,
|
9 | ...Object.keys(pDependencyObject)
|
10 | .filter((pDep) =>
|
11 | Object.keys(pOutdatedPackagesObject).some(
|
12 | (pPackage) => pPackage === pDep
|
13 | )
|
14 | )
|
15 | .reduce((pAll, pThis) => {
|
16 | pAll[pThis] = `${lSavePrefix}${pOutdatedPackagesObject[pThis].latest}`;
|
17 | return pAll;
|
18 | }, {}),
|
19 | };
|
20 | }
|
21 |
|
22 | function getDoNotUpArray(pPackageObject) {
|
23 | return _castArray(_get(pPackageObject, "upem.donotup", []))
|
24 | .map((pPackage) =>
|
25 | typeof pPackage === "string" ? pPackage : _get(pPackage, "package")
|
26 | )
|
27 | .filter((pPackage) => Boolean(pPackage));
|
28 | }
|
29 |
|
30 | function filterOutdatedPackages(pOutdatedObject, pPackageObject) {
|
31 | const lReturnValue = { ...pOutdatedObject };
|
32 |
|
33 | Object.keys(lReturnValue)
|
34 | .filter((pKey) => getDoNotUpArray(pPackageObject).includes(pKey))
|
35 | .forEach((pKey) => Reflect.deleteProperty(lReturnValue, pKey));
|
36 | return lReturnValue;
|
37 | }
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
|
51 |
|
52 |
|
53 |
|
54 | function updateAllDeps(pPackageObject, pOutdatedPackages = {}, pOptions = {}) {
|
55 | return {
|
56 | ...pPackageObject,
|
57 | ...Object.keys(pPackageObject)
|
58 | .filter((pPackageKey) => pPackageKey.includes("ependencies"))
|
59 | .reduce((pAll, pDepKey) => {
|
60 | pAll[pDepKey] = updateDeps(
|
61 | pPackageObject[pDepKey],
|
62 | pOutdatedPackages,
|
63 | pOptions
|
64 | );
|
65 | return pAll;
|
66 | }, {}),
|
67 | };
|
68 | }
|
69 |
|
70 | module.exports = {
|
71 | filterOutdatedPackages,
|
72 | updateDeps,
|
73 | updateAllDeps,
|
74 | };
|