sf-git-merge-driver 1.3.0 → 1.4.0-dev-159.21317248282-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -6
- package/lib/commands/git/merge/driver/run.js +3 -5
- package/lib/commands/git/merge/driver/run.js.map +1 -1
- package/lib/constant/conflictConstant.d.ts +3 -3
- package/lib/constant/conflictConstant.js +3 -3
- package/lib/constant/conflictConstant.js.map +1 -1
- package/lib/constant/metadataConstant.d.ts +1 -0
- package/lib/constant/metadataConstant.js +7 -0
- package/lib/constant/metadataConstant.js.map +1 -1
- package/lib/constant/parserConstant.d.ts +6 -0
- package/lib/constant/parserConstant.js +6 -0
- package/lib/constant/parserConstant.js.map +1 -1
- package/lib/driver/MergeDriver.d.ts +3 -0
- package/lib/driver/MergeDriver.js +5 -1
- package/lib/driver/MergeDriver.js.map +1 -1
- package/lib/merger/ConflictMarkerBuilder.d.ts +3 -0
- package/lib/merger/ConflictMarkerBuilder.js +33 -0
- package/lib/merger/ConflictMarkerBuilder.js.map +1 -0
- package/lib/merger/ConflictMarkerFormatter.d.ts +14 -0
- package/lib/merger/ConflictMarkerFormatter.js +43 -0
- package/lib/merger/ConflictMarkerFormatter.js.map +1 -0
- package/lib/merger/JsonMerger.d.ts +3 -0
- package/lib/merger/JsonMerger.js +19 -194
- package/lib/merger/JsonMerger.js.map +1 -1
- package/lib/merger/MergeContext.d.ts +17 -0
- package/lib/merger/MergeContext.js +2 -0
- package/lib/merger/MergeContext.js.map +1 -0
- package/lib/merger/MergeOrchestrator.d.ts +13 -0
- package/lib/merger/MergeOrchestrator.js +46 -0
- package/lib/merger/MergeOrchestrator.js.map +1 -0
- package/lib/merger/MergeScenarioFactory.d.ts +2 -0
- package/lib/merger/MergeScenarioFactory.js +22 -0
- package/lib/merger/MergeScenarioFactory.js.map +1 -0
- package/lib/merger/XmlMerger.d.ts +5 -0
- package/lib/merger/XmlMerger.js +19 -16
- package/lib/merger/XmlMerger.js.map +1 -1
- package/lib/merger/nodes/KeyedArrayMergeNode.d.ts +12 -0
- package/lib/merger/nodes/KeyedArrayMergeNode.js +67 -0
- package/lib/merger/nodes/KeyedArrayMergeNode.js.map +1 -0
- package/lib/merger/nodes/MergeNode.d.ts +5 -0
- package/lib/merger/nodes/MergeNode.js +2 -0
- package/lib/merger/nodes/MergeNode.js.map +1 -0
- package/lib/merger/nodes/MergeNodeFactory.d.ts +9 -0
- package/lib/merger/nodes/MergeNodeFactory.js +21 -0
- package/lib/merger/nodes/MergeNodeFactory.js.map +1 -0
- package/lib/merger/nodes/ObjectMergeNode.d.ts +20 -0
- package/lib/merger/nodes/ObjectMergeNode.js +49 -0
- package/lib/merger/nodes/ObjectMergeNode.js.map +1 -0
- package/lib/merger/nodes/TextArrayMergeNode.d.ts +12 -0
- package/lib/merger/nodes/TextArrayMergeNode.js +66 -0
- package/lib/merger/nodes/TextArrayMergeNode.js.map +1 -0
- package/lib/merger/nodes/TextMergeNode.d.ts +12 -0
- package/lib/merger/nodes/TextMergeNode.js +36 -0
- package/lib/merger/nodes/TextMergeNode.js.map +1 -0
- package/lib/merger/nodes/nodeUtils.d.ts +5 -0
- package/lib/merger/nodes/nodeUtils.js +20 -0
- package/lib/merger/nodes/nodeUtils.js.map +1 -0
- package/lib/merger/strategies/AllPresentStrategy.d.ts +7 -0
- package/lib/merger/strategies/AllPresentStrategy.js +36 -0
- package/lib/merger/strategies/AllPresentStrategy.js.map +1 -0
- package/lib/merger/strategies/AncestorAndLocalStrategy.d.ts +8 -0
- package/lib/merger/strategies/AncestorAndLocalStrategy.js +64 -0
- package/lib/merger/strategies/AncestorAndLocalStrategy.js.map +1 -0
- package/lib/merger/strategies/AncestorAndOtherStrategy.d.ts +8 -0
- package/lib/merger/strategies/AncestorAndOtherStrategy.js +64 -0
- package/lib/merger/strategies/AncestorAndOtherStrategy.js.map +1 -0
- package/lib/merger/strategies/AncestorOnlyStrategy.d.ts +6 -0
- package/lib/merger/strategies/AncestorOnlyStrategy.js +19 -0
- package/lib/merger/strategies/AncestorOnlyStrategy.js.map +1 -0
- package/lib/merger/strategies/LocalAndOtherStrategy.d.ts +7 -0
- package/lib/merger/strategies/LocalAndOtherStrategy.js +45 -0
- package/lib/merger/strategies/LocalAndOtherStrategy.js.map +1 -0
- package/lib/merger/strategies/LocalOnlyStrategy.d.ts +6 -0
- package/lib/merger/strategies/LocalOnlyStrategy.js +14 -0
- package/lib/merger/strategies/LocalOnlyStrategy.js.map +1 -0
- package/lib/merger/strategies/NoneStrategy.d.ts +6 -0
- package/lib/merger/strategies/NoneStrategy.js +8 -0
- package/lib/merger/strategies/NoneStrategy.js.map +1 -0
- package/lib/merger/strategies/OtherOnlyStrategy.d.ts +6 -0
- package/lib/merger/strategies/OtherOnlyStrategy.js +14 -0
- package/lib/merger/strategies/OtherOnlyStrategy.js.map +1 -0
- package/lib/merger/strategies/ScenarioStrategy.d.ts +5 -0
- package/lib/merger/strategies/ScenarioStrategy.js +2 -0
- package/lib/merger/strategies/ScenarioStrategy.js.map +1 -0
- package/lib/merger/strategies/ScenarioStrategyFactory.d.ts +3 -0
- package/lib/merger/strategies/ScenarioStrategyFactory.js +23 -0
- package/lib/merger/strategies/ScenarioStrategyFactory.js.map +1 -0
- package/lib/merger/strategies/TextMergeStrategy.d.ts +32 -0
- package/lib/merger/strategies/TextMergeStrategy.js +80 -0
- package/lib/merger/strategies/TextMergeStrategy.js.map +1 -0
- package/lib/service/MetadataService.js +2 -0
- package/lib/service/MetadataService.js.map +1 -1
- package/lib/service/NamespaceHandler.js +1 -2
- package/lib/service/NamespaceHandler.js.map +1 -1
- package/lib/service/installService.js +5 -3
- package/lib/service/installService.js.map +1 -1
- package/lib/types/conflictTypes.d.ts +1 -1
- package/lib/types/mergeResult.d.ts +8 -0
- package/lib/types/mergeResult.js +33 -0
- package/lib/types/mergeResult.js.map +1 -0
- package/lib/types/mergeScenario.d.ts +0 -1
- package/lib/types/mergeScenario.js +0 -20
- package/lib/types/mergeScenario.js.map +1 -1
- package/lib/utils/mergeUtils.d.ts +0 -4
- package/lib/utils/mergeUtils.js +0 -7
- package/lib/utils/mergeUtils.js.map +1 -1
- package/npm-shrinkwrap.json +724 -721
- package/oclif.manifest.json +4 -4
- package/package.json +9 -9
- package/lib/merger/conflictMarker.d.ts +0 -12
- package/lib/merger/conflictMarker.js +0 -37
- package/lib/merger/conflictMarker.js.map +0 -1
- package/lib/merger/textAttribute.d.ts +0 -3
- package/lib/merger/textAttribute.js +0 -56
- package/lib/merger/textAttribute.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NamespaceHandler.js","sourceRoot":"","sources":["../../src/service/NamespaceHandler.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"NamespaceHandler.js","sourceRoot":"","sources":["../../src/service/NamespaceHandler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAEhF,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAA;AAElD,MAAM,OAAO,gBAAgB;IAEpB,iBAAiB,CACtB,QAAgC,EAChC,KAA6B,EAC7B,KAA6B;QAE7B,MAAM,UAAU,GAAe,EAAE,CAAA;QAEjC,2DAA2D;QAC3D,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,iEAAiE;gBACjE,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAe,CAAA;gBACvC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7C,IAAI,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;wBAC1C,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;wBACzC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAA,CAAC,8CAA8C;oBAC1E,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAA;IACnB,CAAC;IAGM,qBAAqB,CAAC,GAAc,EAAE,UAAsB;QACjE,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,iCAAiC;YACjC,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAe,CAAA;YAEvC,yDAAyD;YACzD,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,CAAA;YAE/B,0DAA0D;YAC1D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1C,CAAC;gBAAC,UAAU,CAAC,cAAc,CAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;YACpE,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAvCQ;IADN,GAAG;yDAuBH;AAGM;IADN,GAAG;6DAcH"}
|
|
@@ -2,7 +2,7 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { appendFile } from 'node:fs/promises';
|
|
3
3
|
import { simpleGit } from 'simple-git';
|
|
4
4
|
import { DRIVER_NAME, RUN_PLUGIN_COMMAND } from '../constant/driverConstant.js';
|
|
5
|
-
import { METADATA_TYPES_PATTERNS } from '../constant/metadataConstant.js';
|
|
5
|
+
import { MANIFEST_PATTERNS, METADATA_TYPES_PATTERNS, } from '../constant/metadataConstant.js';
|
|
6
6
|
import { getGitAttributesPath } from '../utils/gitUtils.js';
|
|
7
7
|
import { log } from '../utils/LoggingDecorator.js';
|
|
8
8
|
export class InstallService {
|
|
@@ -11,8 +11,10 @@ export class InstallService {
|
|
|
11
11
|
await git.addConfig(`merge.${DRIVER_NAME}.name`, 'Salesforce source merge driver');
|
|
12
12
|
await git.addConfig(`merge.${DRIVER_NAME}.driver`, `sh -c '${RUN_PLUGIN_COMMAND} -O "$1" -A "$2" -B "$3" -P "$4" -L "$5" -X "$6" -Y "$7"' -- %O %A %B %P %L %X %Y`);
|
|
13
13
|
// Configure merge driver for each metadata type pattern
|
|
14
|
-
const
|
|
15
|
-
|
|
14
|
+
const metadataPatterns = METADATA_TYPES_PATTERNS.map(pattern => `*.${pattern}-meta.xml merge=${DRIVER_NAME}`).join('\n');
|
|
15
|
+
// Configure merge driver for manifest files (package.xml, destructiveChanges.xml, etc.)
|
|
16
|
+
const manifestPatterns = MANIFEST_PATTERNS.map(pattern => `${pattern} merge=${DRIVER_NAME}`).join('\n');
|
|
17
|
+
const content = `${metadataPatterns}\n${manifestPatterns}\n`;
|
|
16
18
|
const gitAttributesPath = await getGitAttributesPath();
|
|
17
19
|
await appendFile(gitAttributesPath, content, { flag: 'a' });
|
|
18
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installService.js","sourceRoot":"","sources":["../../src/service/installService.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"installService.js","sourceRoot":"","sources":["../../src/service/installService.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAA;AAElD,MAAM,OAAO,cAAc;IAEZ,AAAN,KAAK,CAAC,kBAAkB;QAC7B,MAAM,GAAG,GAAG,SAAS,EAAE,CAAA;QACvB,MAAM,GAAG,CAAC,SAAS,CACjB,SAAS,WAAW,OAAO,EAC3B,gCAAgC,CACjC,CAAA;QACD,MAAM,GAAG,CAAC,SAAS,CACjB,SAAS,WAAW,SAAS,EAC7B,UAAU,kBAAkB,mFAAmF,CAChH,CAAA;QAED,wDAAwD;QACxD,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,GAAG,CAClD,OAAO,CAAC,EAAE,CAAC,KAAK,OAAO,mBAAmB,WAAW,EAAE,CACxD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEZ,wFAAwF;QACxF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAC5C,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,UAAU,WAAW,EAAE,CAC7C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEZ,MAAM,OAAO,GAAG,GAAG,gBAAgB,KAAK,gBAAgB,IAAI,CAAA;QAE5D,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,EAAE,CAAA;QAEtD,MAAM,UAAU,CAAC,iBAAiB,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7D,CAAC;CACF;AA3Bc;IADZ,GAAG;wDA2BH"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { JsonArray } from './jsonTypes.js';
|
|
2
|
+
export interface MergeResult {
|
|
3
|
+
output: JsonArray;
|
|
4
|
+
hasConflict: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare const combineResults: (results: MergeResult[]) => MergeResult;
|
|
7
|
+
export declare const noConflict: (output: JsonArray) => MergeResult;
|
|
8
|
+
export declare const withConflict: (output: JsonArray) => MergeResult;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Pre-allocated constant for the common empty no-conflict case
|
|
2
|
+
// Used by NoneStrategy, AncestorOnlyStrategy, and equality-based early returns
|
|
3
|
+
const EMPTY_ARRAY = [];
|
|
4
|
+
const EMPTY_NO_CONFLICT = {
|
|
5
|
+
output: EMPTY_ARRAY,
|
|
6
|
+
hasConflict: false,
|
|
7
|
+
};
|
|
8
|
+
export const combineResults = (results) => {
|
|
9
|
+
// Fast path: no results
|
|
10
|
+
if (results.length === 0) {
|
|
11
|
+
return EMPTY_NO_CONFLICT;
|
|
12
|
+
}
|
|
13
|
+
// Fast path: single result
|
|
14
|
+
if (results.length === 1) {
|
|
15
|
+
return results[0];
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
output: results.flatMap(r => r.output),
|
|
19
|
+
hasConflict: results.some(r => r.hasConflict),
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export const noConflict = (output) => {
|
|
23
|
+
// Reuse constant for empty arrays
|
|
24
|
+
if (output.length === 0) {
|
|
25
|
+
return EMPTY_NO_CONFLICT;
|
|
26
|
+
}
|
|
27
|
+
return { output, hasConflict: false };
|
|
28
|
+
};
|
|
29
|
+
export const withConflict = (output) => ({
|
|
30
|
+
output,
|
|
31
|
+
hasConflict: true,
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=mergeResult.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeResult.js","sourceRoot":"","sources":["../../src/types/mergeResult.ts"],"names":[],"mappings":"AAOA,+DAA+D;AAC/D,+EAA+E;AAC/E,MAAM,WAAW,GAAc,EAAE,CAAA;AACjC,MAAM,iBAAiB,GAAgB;IACrC,MAAM,EAAE,WAAW;IACnB,WAAW,EAAE,KAAK;CACnB,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAsB,EAAe,EAAE;IACpE,wBAAwB;IACxB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IACD,2BAA2B;IAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IACD,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACtC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;KAC9C,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAiB,EAAe,EAAE;IAC3D,kCAAkC;IAClC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;AACvC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAiB,EAAe,EAAE,CAAC,CAAC;IAC/D,MAAM;IACN,WAAW,EAAE,IAAI;CAClB,CAAC,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { isEmpty } from 'lodash-es';
|
|
2
1
|
/**
|
|
3
2
|
* Enum representing different merge scenarios based on content presence:
|
|
4
3
|
* - First position: Ancestor content present (1) or absent (0)
|
|
@@ -16,23 +15,4 @@ export var MergeScenario;
|
|
|
16
15
|
MergeScenario[MergeScenario["ANCESTOR_AND_LOCAL"] = 110] = "ANCESTOR_AND_LOCAL";
|
|
17
16
|
MergeScenario[MergeScenario["ALL"] = 111] = "ALL";
|
|
18
17
|
})(MergeScenario || (MergeScenario = {}));
|
|
19
|
-
export const getScenario = (
|
|
20
|
-
// biome-ignore lint/suspicious/noExplicitAny: can be any metadata in json format
|
|
21
|
-
ancestor,
|
|
22
|
-
// biome-ignore lint/suspicious/noExplicitAny: can be any metadata in json format
|
|
23
|
-
local,
|
|
24
|
-
// biome-ignore lint/suspicious/noExplicitAny: can be any metadata in json format
|
|
25
|
-
other) => {
|
|
26
|
-
let scenario = MergeScenario.NONE;
|
|
27
|
-
if (!isEmpty(ancestor)) {
|
|
28
|
-
scenario += 100;
|
|
29
|
-
}
|
|
30
|
-
if (!isEmpty(local)) {
|
|
31
|
-
scenario += 10;
|
|
32
|
-
}
|
|
33
|
-
if (!isEmpty(other)) {
|
|
34
|
-
scenario += 1;
|
|
35
|
-
}
|
|
36
|
-
return scenario;
|
|
37
|
-
};
|
|
38
18
|
//# sourceMappingURL=mergeScenario.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeScenario.js","sourceRoot":"","sources":["../../src/types/mergeScenario.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mergeScenario.js","sourceRoot":"","sources":["../../src/types/mergeScenario.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAN,IAAY,aASX;AATD,WAAY,aAAa;IACvB,iDAAQ,CAAA;IACR,6DAAc,CAAA;IACd,8DAAe,CAAA;IACf,wEAAoB,CAAA;IACpB,qEAAmB,CAAA;IACnB,+EAAwB,CAAA;IACxB,+EAAwB,CAAA;IACxB,iDAAS,CAAA;AACX,CAAC,EATW,aAAa,KAAb,aAAa,QASxB"}
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
import type { JsonArray, JsonObject, JsonValue } from '../types/jsonTypes.js';
|
|
2
|
-
export declare const isObject: (ancestor: JsonValue | undefined | null, local: JsonValue | undefined | null, other: JsonValue | undefined | null) => boolean;
|
|
3
|
-
export declare const ensureArray: (value: JsonValue) => JsonArray;
|
|
4
|
-
export declare const getUniqueSortedProps: (...objects: (JsonObject | JsonArray)[]) => string[];
|
|
5
1
|
export declare const detectEol: (text: string) => string;
|
|
6
2
|
export declare const normalizeEol: (text: string, eol?: string) => string;
|
package/lib/utils/mergeUtils.js
CHANGED
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
import { castArray, isNil } from 'lodash-es';
|
|
2
1
|
import { EOL } from 'os';
|
|
3
2
|
const CR = '\r';
|
|
4
3
|
const LF = '\n';
|
|
5
4
|
const CRLF = `${CR}${LF}`;
|
|
6
5
|
const RE_CRLF = /\r\n/g;
|
|
7
6
|
const RE_LF_OR_CRLF = /\r\n|\n/g;
|
|
8
|
-
export const isObject = (ancestor, local, other) => typeof [ancestor, other, local].find(ele => !isNil(ele)) === 'object';
|
|
9
|
-
export const ensureArray = (value) => isNil(value) ? [] : castArray(value);
|
|
10
|
-
export const getUniqueSortedProps = (...objects) => Array.from(new Set([...objects]
|
|
11
|
-
.filter(jsonElement => ![undefined, null].includes(jsonElement))
|
|
12
|
-
.map(Object.keys)
|
|
13
|
-
.flat())).sort();
|
|
14
7
|
export const detectEol = (text) => {
|
|
15
8
|
if (!text) {
|
|
16
9
|
return EOL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeUtils.js","sourceRoot":"","sources":["../../src/utils/mergeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mergeUtils.js","sourceRoot":"","sources":["../../src/utils/mergeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AAExB,MAAM,EAAE,GAAG,IAAI,CAAA;AACf,MAAM,EAAE,GAAG,IAAI,CAAA;AACf,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAA;AACzB,MAAM,OAAO,GAAG,OAAO,CAAA;AACvB,MAAM,aAAa,GAAG,UAAU,CAAA;AAEhC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE;IAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,KAAK,GAAG,KAAK,CAAA;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBAChC,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,IAAI,CAAA;YACd,CAAC;YAED,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;gBACrB,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,MAAc,GAAG,EAAU,EAAE;IACtE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,KAAK,GAAG,OAAO,CAAA;IACnB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,KAAK,GAAG,aAAa,CAAA;IACvB,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACjC,CAAC,CAAA"}
|