sfdx-easy-sources 0.5.12 → 0.6.0
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 +9 -2
- package/lib/commands/easysources/objecttranslations/clearempty.d.ts +15 -0
- package/lib/commands/easysources/objecttranslations/clearempty.js +115 -0
- package/lib/commands/easysources/objecttranslations/clearempty.js.map +1 -0
- package/lib/commands/easysources/objecttranslations/upsert.js +3 -3
- package/lib/commands/easysources/objecttranslations/upsert.js.map +1 -1
- package/lib/commands/easysources/recordtypes/upsert.js +3 -3
- package/lib/commands/easysources/recordtypes/upsert.js.map +1 -1
- package/lib/commands/easysources/translations/clearempty.d.ts +15 -0
- package/lib/commands/easysources/translations/clearempty.js +114 -0
- package/lib/commands/easysources/translations/clearempty.js.map +1 -0
- package/lib/utils/commands/upserter.js +1 -1
- package/lib/utils/commands/upserter.js.map +1 -1
- package/messages/objtransl_clearempty.json +11 -0
- package/messages/translations_clearempty.json +11 -0
- package/oclif.manifest.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -34,8 +34,8 @@ With this plugin you can:
|
|
|
34
34
|
| Global Value Sets | globalvaluesets | split, upsert, merge, updatekey |
|
|
35
35
|
| Global Value Set Translations | globalvaluesettranslations | split, upsert, merge, updatekey |
|
|
36
36
|
| Applications | applications | split, upsert, merge, updatekey |
|
|
37
|
-
| Object Translations | objecttranslations | split, upsert, merge, updatekey |
|
|
38
|
-
| Translations | translations | split, upsert, merge, updatekey |
|
|
37
|
+
| Object Translations | objecttranslations | split, upsert, merge, updatekey, clearempty |
|
|
38
|
+
| Translations | translations | split, upsert, merge, updatekey, clearempty |
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
|
|
@@ -62,6 +62,7 @@ Based on the source type, this plugin provides the following commands:
|
|
|
62
62
|
- Delete: Bulk deletes a single permission from all the resources of the same type (only applies to Profiles, PermissionSets and Record Types)
|
|
63
63
|
- Minify: Bulk deletes each entry that doesn't add value to the file (example: a permission in a profile xml which has all permissions set to false)
|
|
64
64
|
- Clean: Bulk deletes all the references that are not present in the target org or in the repository
|
|
65
|
+
- Clearempty: Removes empty CSV files and folders from the generated CSV files (available for Object Translations and Translations)
|
|
65
66
|
|
|
66
67
|
# Disclaimer
|
|
67
68
|
- Please experiment at first inside a dummy project!
|
|
@@ -203,3 +204,9 @@ In my project I still have the xml files even if they are supported by csv.
|
|
|
203
204
|
It could be a great idea and it could avoid many conflicts and waste of time if the release manager removes the xml files from the repository, and the pipeline merges automatically the csv into the xml at runtime while deploying.
|
|
204
205
|
|
|
205
206
|
I know that the commands parameters can easily lead to misunderstanding or can be forgotten. I'm developing a vscode extension to easily launch the commands, get the parameters, select the resources on which a command must be run. But at the moment there is no ETA to finish it.
|
|
207
|
+
|
|
208
|
+
## Release Notes
|
|
209
|
+
|
|
210
|
+
### Version 0.6.0
|
|
211
|
+
- Added `objecttranslations:clearempty` command that removes empty CSV files and folders from the generated CSV files. This command helps clean up the repository by removing unnecessary empty files and directories that may be created during the split process.
|
|
212
|
+
- Added `translations:clearempty` command that removes empty CSV files and folders from translations. Similar to the object translations command, it helps maintain a clean repository structure by removing empty CSV files and unused folders.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { flags, SfdxCommand } from '@salesforce/command';
|
|
2
|
+
import { AnyJson } from '@salesforce/ts-types';
|
|
3
|
+
export default class ClearEmpty extends SfdxCommand {
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {
|
|
7
|
+
name: string;
|
|
8
|
+
}[];
|
|
9
|
+
protected static flagsConfig: {
|
|
10
|
+
"sf-xml": flags.Discriminated<flags.String>;
|
|
11
|
+
"es-csv": flags.Discriminated<flags.String>;
|
|
12
|
+
input: flags.Discriminated<flags.String>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<AnyJson>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) 2020, salesforce.com, inc.
|
|
5
|
+
* All rights reserved.
|
|
6
|
+
* Licensed under the BSD 3-Clause license.
|
|
7
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
8
|
+
*/
|
|
9
|
+
const os = require("os");
|
|
10
|
+
const command_1 = require("@salesforce/command");
|
|
11
|
+
const core_1 = require("@salesforce/core");
|
|
12
|
+
const fs = require('fs-extra');
|
|
13
|
+
const path_1 = require("path");
|
|
14
|
+
const performance_1 = require("../../../utils/performance");
|
|
15
|
+
const filesUtils_1 = require("../../../utils/filesUtils");
|
|
16
|
+
const constants_1 = require("../../../utils/constants/constants");
|
|
17
|
+
const localSettings_1 = require("../../../utils/localSettings");
|
|
18
|
+
const constants_objecttranslations_1 = require("../../../utils/constants/constants_objecttranslations");
|
|
19
|
+
const settings = (0, localSettings_1.loadSettings)();
|
|
20
|
+
// Initialize Messages with the current plugin directory
|
|
21
|
+
core_1.Messages.importMessagesDirectory(__dirname);
|
|
22
|
+
// Load the specific messages for this file. Messages from @salesforce/command, @salesforce/core,
|
|
23
|
+
// or any library that is using the messages framework can also be loaded this way.
|
|
24
|
+
const messages = core_1.Messages.loadMessages('sfdx-easy-sources', 'objtransl_clearempty');
|
|
25
|
+
class ClearEmpty extends command_1.SfdxCommand {
|
|
26
|
+
async run() {
|
|
27
|
+
performance_1.default.getInstance().start();
|
|
28
|
+
const csvDir = (0, path_1.join)((this.flags["es-csv"] || settings['easysources-csv-path'] || constants_1.DEFAULT_ESCSV_PATH), constants_objecttranslations_1.OBJTRANSL_SUBPATH);
|
|
29
|
+
const xmlDir = (0, path_1.join)((command_1.flags["sf-xml"] || settings['salesforce-xml-path'] || constants_1.DEFAULT_SFXML_PATH));
|
|
30
|
+
const inputObject = (this.flags.input);
|
|
31
|
+
(0, filesUtils_1.checkDirOrErrorSync)(csvDir);
|
|
32
|
+
(0, filesUtils_1.checkDirOrErrorSync)(xmlDir);
|
|
33
|
+
var objTrList = [];
|
|
34
|
+
if (inputObject) {
|
|
35
|
+
objTrList = inputObject.split(',');
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
objTrList = fs.readdirSync(csvDir, { withFileTypes: true })
|
|
39
|
+
.filter(item => item.isDirectory())
|
|
40
|
+
.map(item => item.name);
|
|
41
|
+
}
|
|
42
|
+
let deletedFiles = 0;
|
|
43
|
+
let deletedFolders = 0;
|
|
44
|
+
// objTrName is the object translation name
|
|
45
|
+
for (const objTrName of objTrList) {
|
|
46
|
+
console.log('Clearing empty CSVs for: ' + objTrName);
|
|
47
|
+
const objTrFolder = (0, path_1.join)(csvDir, objTrName);
|
|
48
|
+
const csvSubFolder = (0, path_1.join)(objTrFolder, 'csv');
|
|
49
|
+
let hasPopulatedCsvs = false;
|
|
50
|
+
for (const tag_section in constants_objecttranslations_1.OBJTRANSL_ITEMS) {
|
|
51
|
+
// tag_section is an object translation section
|
|
52
|
+
const csvFilePath = (0, path_1.join)(csvDir, objTrName, 'csv', (0, filesUtils_1.calcCsvFilename)(objTrName, tag_section));
|
|
53
|
+
if (fs.existsSync(csvFilePath)) {
|
|
54
|
+
// get the list of resources on the csv
|
|
55
|
+
var resListCsv = await (0, filesUtils_1.readCsvToJsonArrayWithNulls)(csvFilePath);
|
|
56
|
+
// if CSV has no records (only headers), delete it
|
|
57
|
+
if (resListCsv.length === 0) {
|
|
58
|
+
console.log(` Deleting empty CSV: ${csvFilePath}`);
|
|
59
|
+
fs.unlinkSync(csvFilePath);
|
|
60
|
+
deletedFiles++;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
hasPopulatedCsvs = true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Check if csv subfolder exists and clean up .part files and empty folders
|
|
68
|
+
if (fs.existsSync(csvSubFolder)) {
|
|
69
|
+
const remainingFiles = fs.readdirSync(csvSubFolder);
|
|
70
|
+
// Remove -part.xml files only if there are no populated CSVs
|
|
71
|
+
if (!hasPopulatedCsvs) {
|
|
72
|
+
const partFiles = remainingFiles.filter(file => file.endsWith('-part.xml'));
|
|
73
|
+
for (const partFile of partFiles) {
|
|
74
|
+
const partFilePath = (0, path_1.join)(csvSubFolder, partFile);
|
|
75
|
+
console.log(` Deleting -part.xml file: ${partFilePath}`);
|
|
76
|
+
fs.unlinkSync(partFilePath);
|
|
77
|
+
deletedFiles++;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Check again for remaining files after cleanup
|
|
81
|
+
const finalRemainingFiles = fs.readdirSync(csvSubFolder);
|
|
82
|
+
// If no files remain in csv subfolder, delete the entire object translation folder
|
|
83
|
+
if (finalRemainingFiles.length === 0) {
|
|
84
|
+
console.log(` Deleting empty folder: ${objTrFolder}`);
|
|
85
|
+
fs.removeSync(objTrFolder);
|
|
86
|
+
deletedFolders++;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
const outputString = `Deleted ${deletedFiles} empty CSV files and ${deletedFolders} empty folders`;
|
|
91
|
+
console.log(outputString);
|
|
92
|
+
performance_1.default.getInstance().end();
|
|
93
|
+
return { outputString, deletedFiles, deletedFolders };
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.default = ClearEmpty;
|
|
97
|
+
ClearEmpty.description = messages.getMessage('commandDescription');
|
|
98
|
+
ClearEmpty.examples = messages.getMessage('examples').split(os.EOL);
|
|
99
|
+
ClearEmpty.args = [{ name: 'file' }];
|
|
100
|
+
ClearEmpty.flagsConfig = {
|
|
101
|
+
// flag with a value (-n, --name=VALUE)
|
|
102
|
+
"sf-xml": command_1.flags.string({
|
|
103
|
+
char: 'x',
|
|
104
|
+
description: messages.getMessage('sfXmlFlagDescription', [constants_1.DEFAULT_SFXML_PATH]),
|
|
105
|
+
}),
|
|
106
|
+
"es-csv": command_1.flags.string({
|
|
107
|
+
char: 'c',
|
|
108
|
+
description: messages.getMessage('esCsvFlagDescription', [constants_1.DEFAULT_ESCSV_PATH]),
|
|
109
|
+
}),
|
|
110
|
+
input: command_1.flags.string({
|
|
111
|
+
char: 'i',
|
|
112
|
+
description: messages.getMessage('inputFlagDescription'),
|
|
113
|
+
}),
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=clearempty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clearempty.js","sourceRoot":"","sources":["../../../../src/commands/easysources/objecttranslations/clearempty.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,8 +28,8 @@ const messages = core_1.Messages.loadMessages('sfdx-easy-sources', 'objtransl_up
|
|
|
28
28
|
class Upsert extends command_1.SfdxCommand {
|
|
29
29
|
async run() {
|
|
30
30
|
performance_1.default.getInstance().start();
|
|
31
|
-
const baseInputDir = (0, path_1.join)((this.flags["
|
|
32
|
-
const baseOutputDir = (0, path_1.join)((this.flags["
|
|
31
|
+
const baseInputDir = (0, path_1.join)((this.flags["sf-xml"] || settings['salesforce-xml-path'] || constants_1.DEFAULT_SFXML_PATH), constants_objecttranslations_1.OBJTRANSL_SUBPATH);
|
|
32
|
+
const baseOutputDir = (0, path_1.join)((this.flags["es-csv"] || settings['easysources-csv-path'] || constants_1.DEFAULT_ESCSV_PATH), constants_objecttranslations_1.OBJTRANSL_SUBPATH);
|
|
33
33
|
const inputObject = (this.flags.input);
|
|
34
34
|
(0, filesUtils_1.checkDirOrErrorSync)(baseInputDir);
|
|
35
35
|
var objectTList = [];
|
|
@@ -105,7 +105,7 @@ class Upsert extends command_1.SfdxCommand {
|
|
|
105
105
|
if (tag_section !== constants_objecttranslations_1.OBJTRANSL_CFIELDTRANSL_ROOT)
|
|
106
106
|
xmlFileContent[constants_objecttranslations_1.OBJTRANSL_ROOT_TAG][tag_section] = null;
|
|
107
107
|
}
|
|
108
|
-
const inputFilePart = (0, path_1.join)(
|
|
108
|
+
const inputFilePart = (0, path_1.join)(baseOutputDir, objTrName, 'csv', objTrName + constants_1.XML_PART_EXTENSION);
|
|
109
109
|
if (fs.existsSync(inputFilePart)) {
|
|
110
110
|
const xmlFileContentPart = (await (0, filesUtils_1.readXmlFromFile)(inputFilePart)) ?? {};
|
|
111
111
|
const objTranslPropertiesPart = xmlFileContentPart[constants_objecttranslations_1.OBJTRANSL_ROOT_TAG] ?? {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upsert.js","sourceRoot":"","sources":["../../../../src/commands/easysources/objecttranslations/upsert.ts"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,yBAAyB;AACzB,iDAAyD;AACzD,2CAA4C;AAE5C,0DAA4K;AAC5K,gDAA+D;AAC/D,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAC/D,kEAAgH;AAChH,4DAAqD;AACrD,+BAA4B;AAC5B,gEAA4D;AAC5D,wGAAyO;AACzO,oEAA2H;AAC3H,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAE/B,MAAM,QAAQ,GAAG,IAAA,4BAAY,GAAE,CAAC;AAEhC,wDAAwD;AACxD,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAE5C,iGAAiG;AACjG,mFAAmF;AACnF,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;AAEhF,MAAqB,MAAO,SAAQ,qBAAW;IA8BpC,KAAK,CAAC,GAAG;QACZ,qBAAW,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;QAElC,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"upsert.js","sourceRoot":"","sources":["../../../../src/commands/easysources/objecttranslations/upsert.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,8 +28,8 @@ const messages = core_1.Messages.loadMessages('sfdx-easy-sources', 'recordtypes_
|
|
|
28
28
|
class Upsert extends command_1.SfdxCommand {
|
|
29
29
|
async run() {
|
|
30
30
|
performance_1.default.getInstance().start();
|
|
31
|
-
const baseInputDir = (0, path_1.join)((this.flags["
|
|
32
|
-
const baseOutputDir = (0, path_1.join)((this.flags["
|
|
31
|
+
const baseInputDir = (0, path_1.join)((this.flags["sf-xml"] || settings['salesforce-xml-path'] || constants_1.DEFAULT_SFXML_PATH), constants_recordtypes_1.RECORDTYPES_SUBPATH);
|
|
32
|
+
const baseOutputDir = (0, path_1.join)((this.flags["es-csv"] || settings['easysources-csv-path'] || constants_1.DEFAULT_ESCSV_PATH), constants_recordtypes_1.RECORDTYPES_SUBPATH);
|
|
33
33
|
const inputObject = (this.flags.object);
|
|
34
34
|
const inputRecordType = (this.flags.recordtype);
|
|
35
35
|
if (!fs.existsSync(baseInputDir)) {
|
|
@@ -102,7 +102,7 @@ class Upsert extends command_1.SfdxCommand {
|
|
|
102
102
|
}
|
|
103
103
|
xmlFileContent[constants_recordtypes_1.RECORDTYPES_ROOT_TAG][tag_section] = null;
|
|
104
104
|
}
|
|
105
|
-
const inputFilePart = (0, path_1.join)(
|
|
105
|
+
const inputFilePart = (0, path_1.join)(baseOutputDir, obj, 'recordTypes', recordtypeName, recordtypeName + constants_1.XML_PART_EXTENSION);
|
|
106
106
|
if (fs.existsSync(inputFilePart)) {
|
|
107
107
|
const xmlFileContentPart = (await (0, filesUtils_1.readXmlFromFile)(inputFilePart)) ?? {};
|
|
108
108
|
const recordtypePropertiesPart = xmlFileContentPart[constants_recordtypes_1.RECORDTYPES_ROOT_TAG] ?? {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upsert.js","sourceRoot":"","sources":["../../../../src/commands/easysources/recordtypes/upsert.ts"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,yBAAyB;AACzB,iDAAyD;AACzD,2CAA4C;AAE5C,0DAAkJ;AAClJ,gDAA+D;AAC/D,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAC/D,kEAAgH;AAChH,4DAAqD;AACrD,+BAA4B;AAC5B,0FAAoJ;AACpJ,wEAAqE;AACrE,gEAA4D;AAC5D,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAE/B,MAAM,QAAQ,GAAG,IAAA,4BAAY,GAAE,CAAC;AAEhC,wDAAwD;AACxD,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAE5C,iGAAiG;AACjG,mFAAmF;AACnF,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;AAElF,MAAqB,MAAO,SAAQ,qBAAW;IAkCpC,KAAK,CAAC,GAAG;QACZ,qBAAW,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;QAElC,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"upsert.js","sourceRoot":"","sources":["../../../../src/commands/easysources/recordtypes/upsert.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { flags, SfdxCommand } from '@salesforce/command';
|
|
2
|
+
import { AnyJson } from '@salesforce/ts-types';
|
|
3
|
+
export default class ClearEmpty extends SfdxCommand {
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {
|
|
7
|
+
name: string;
|
|
8
|
+
}[];
|
|
9
|
+
protected static flagsConfig: {
|
|
10
|
+
"sf-xml": flags.Discriminated<flags.String>;
|
|
11
|
+
"es-csv": flags.Discriminated<flags.String>;
|
|
12
|
+
input: flags.Discriminated<flags.String>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<AnyJson>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) 2020, salesforce.com, inc.
|
|
5
|
+
* All rights reserved.
|
|
6
|
+
* Licensed under the BSD 3-Clause license.
|
|
7
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
8
|
+
*/
|
|
9
|
+
const os = require("os");
|
|
10
|
+
const command_1 = require("@salesforce/command");
|
|
11
|
+
const core_1 = require("@salesforce/core");
|
|
12
|
+
const fs = require('fs-extra');
|
|
13
|
+
const path_1 = require("path");
|
|
14
|
+
const performance_1 = require("../../../utils/performance");
|
|
15
|
+
const filesUtils_1 = require("../../../utils/filesUtils");
|
|
16
|
+
const constants_1 = require("../../../utils/constants/constants");
|
|
17
|
+
const localSettings_1 = require("../../../utils/localSettings");
|
|
18
|
+
const constants_translations_1 = require("../../../utils/constants/constants_translations");
|
|
19
|
+
const settings = (0, localSettings_1.loadSettings)();
|
|
20
|
+
// Initialize Messages with the current plugin directory
|
|
21
|
+
core_1.Messages.importMessagesDirectory(__dirname);
|
|
22
|
+
// Load the specific messages for this file. Messages from @salesforce/command, @salesforce/core,
|
|
23
|
+
// or any library that is using the messages framework can also be loaded this way.
|
|
24
|
+
const messages = core_1.Messages.loadMessages('sfdx-easy-sources', 'translations_clearempty');
|
|
25
|
+
class ClearEmpty extends command_1.SfdxCommand {
|
|
26
|
+
async run() {
|
|
27
|
+
performance_1.default.getInstance().start();
|
|
28
|
+
const csvDir = (0, path_1.join)((this.flags["es-csv"] || settings['easysources-csv-path'] || constants_1.DEFAULT_ESCSV_PATH), constants_translations_1.TRANSLATIONS_SUBPATH);
|
|
29
|
+
const xmlDir = (0, path_1.join)((command_1.flags["sf-xml"] || settings['salesforce-xml-path'] || constants_1.DEFAULT_SFXML_PATH));
|
|
30
|
+
const inputTranslation = (this.flags.input);
|
|
31
|
+
(0, filesUtils_1.checkDirOrErrorSync)(csvDir);
|
|
32
|
+
(0, filesUtils_1.checkDirOrErrorSync)(xmlDir);
|
|
33
|
+
var translationList = [];
|
|
34
|
+
if (inputTranslation) {
|
|
35
|
+
translationList = inputTranslation.split(',');
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
translationList = fs.readdirSync(csvDir, { withFileTypes: true })
|
|
39
|
+
.filter(item => item.isDirectory())
|
|
40
|
+
.map(item => item.name);
|
|
41
|
+
}
|
|
42
|
+
let deletedFiles = 0;
|
|
43
|
+
let deletedFolders = 0;
|
|
44
|
+
// translationName is the translation name
|
|
45
|
+
for (const translationName of translationList) {
|
|
46
|
+
console.log('Clearing empty CSVs for: ' + translationName);
|
|
47
|
+
const translationFolder = (0, path_1.join)(csvDir, translationName);
|
|
48
|
+
let hasPopulatedCsvs = false;
|
|
49
|
+
for (const tag_section in constants_translations_1.TRANSLATION_ITEMS) {
|
|
50
|
+
// tag_section is a translation section
|
|
51
|
+
const csvFilePath = (0, path_1.join)(csvDir, translationName, (0, filesUtils_1.calcCsvFilename)(translationName, tag_section));
|
|
52
|
+
if (fs.existsSync(csvFilePath)) {
|
|
53
|
+
// get the list of resources on the csv
|
|
54
|
+
var resListCsv = await (0, filesUtils_1.readCsvToJsonArrayWithNulls)(csvFilePath);
|
|
55
|
+
// if CSV has no records (only headers), delete it
|
|
56
|
+
if (resListCsv.length === 0) {
|
|
57
|
+
console.log(` Deleting empty CSV: ${csvFilePath}`);
|
|
58
|
+
fs.unlinkSync(csvFilePath);
|
|
59
|
+
deletedFiles++;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
hasPopulatedCsvs = true;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Check if translation folder exists and clean up .part files and empty folders
|
|
67
|
+
if (fs.existsSync(translationFolder)) {
|
|
68
|
+
const remainingFiles = fs.readdirSync(translationFolder);
|
|
69
|
+
// Remove -part.xml files only if there are no populated CSVs
|
|
70
|
+
if (!hasPopulatedCsvs) {
|
|
71
|
+
const partFiles = remainingFiles.filter(file => file.endsWith('-part.xml'));
|
|
72
|
+
for (const partFile of partFiles) {
|
|
73
|
+
const partFilePath = (0, path_1.join)(translationFolder, partFile);
|
|
74
|
+
console.log(` Deleting -part.xml file: ${partFilePath}`);
|
|
75
|
+
fs.unlinkSync(partFilePath);
|
|
76
|
+
deletedFiles++;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Check again for remaining files after cleanup
|
|
80
|
+
const finalRemainingFiles = fs.readdirSync(translationFolder);
|
|
81
|
+
// If no files remain in translation folder, delete the entire translation folder
|
|
82
|
+
if (finalRemainingFiles.length === 0) {
|
|
83
|
+
console.log(` Deleting empty folder: ${translationFolder}`);
|
|
84
|
+
fs.removeSync(translationFolder);
|
|
85
|
+
deletedFolders++;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
performance_1.default.getInstance().end();
|
|
90
|
+
const outputString = `Deleted ${deletedFiles} empty CSV files and ${deletedFolders} empty folders`;
|
|
91
|
+
console.log(outputString);
|
|
92
|
+
return { outputString, deletedFiles, deletedFolders };
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.default = ClearEmpty;
|
|
96
|
+
ClearEmpty.description = messages.getMessage('commandDescription');
|
|
97
|
+
ClearEmpty.examples = messages.getMessage('examples').split(os.EOL);
|
|
98
|
+
ClearEmpty.args = [{ name: 'file' }];
|
|
99
|
+
ClearEmpty.flagsConfig = {
|
|
100
|
+
// flag with a value (-n, --name=VALUE)
|
|
101
|
+
"sf-xml": command_1.flags.string({
|
|
102
|
+
char: 'x',
|
|
103
|
+
description: messages.getMessage('sfXmlFlagDescription', [constants_1.DEFAULT_SFXML_PATH]),
|
|
104
|
+
}),
|
|
105
|
+
"es-csv": command_1.flags.string({
|
|
106
|
+
char: 'c',
|
|
107
|
+
description: messages.getMessage('esCsvFlagDescription', [constants_1.DEFAULT_ESCSV_PATH]),
|
|
108
|
+
}),
|
|
109
|
+
input: command_1.flags.string({
|
|
110
|
+
char: 'i',
|
|
111
|
+
description: messages.getMessage('inputFlagDescription'),
|
|
112
|
+
}),
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=clearempty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clearempty.js","sourceRoot":"","sources":["../../../../src/commands/easysources/translations/clearempty.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,7 +75,7 @@ async function upsert(flags, file_subpath, file_extension, file_root_tag, file_i
|
|
|
75
75
|
}
|
|
76
76
|
xmlFileContent[file_root_tag][tag_section] = null;
|
|
77
77
|
}
|
|
78
|
-
const inputFilePart = (0, path_1.join)(
|
|
78
|
+
const inputFilePart = (0, path_1.join)(baseOutputDir, fileName, fileName + constants_1.XML_PART_EXTENSION);
|
|
79
79
|
if (fs.existsSync(inputFilePart)) {
|
|
80
80
|
const xmlFileContentPart = (await (0, filesUtils_1.readXmlFromFile)(inputFilePart)) ?? {};
|
|
81
81
|
const filePropertiesPart = xmlFileContentPart[file_root_tag] ?? {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upserter.js","sourceRoot":"","sources":["../../../src/utils/commands/upserter.ts"],"names":[],"mappings":";;;AAAA,8CAAsI;AACtI,oCAAmD;AACnD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAC/D,+BAA4B;AAC5B,sDAAoG;AACpG,wEAAwE;AACxE,oDAAgD;AAChD,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAE/B,MAAM,QAAQ,GAAG,IAAA,4BAAY,GAAE,CAAC;AAEzB,KAAK,UAAU,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU;IAEvF,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,qBAAqB,CAAC,IAAI,8BAAkB,CAAC,EAAE,YAAY,CAAW,CAAC;IAC9H,MAAM,aAAa,GAAG,IAAA,WAAI,EAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,sBAAsB,CAAC,IAAI,8BAAkB,CAAC,EAAE,YAAY,CAAW,CAAC;IAChI,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,KAAK,CAAW,CAAC;IAE3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,YAAY,GAAG,kBAAkB,CAAC,CAAC;QACjE,OAAO;KACV;IAED,IAAI,QAAQ,GAAG,EAAE,CAAA;IACjB,IAAI,UAAU,EAAE;QACZ,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KACpC;SAAM;QACH,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;aACzE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC9B;IAED,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE;QAC7B,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,cAAc,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,YAAY,CAAC,CAAC;QAE1C,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAEnD,MAAM,cAAc,GAAG,CAAC,MAAM,IAAA,4BAAe,EAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,MAAM,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAE3D,MAAM,QAAQ,GAAG,IAAA,4BAAe,EAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAEhD,KAAK,MAAM,WAAW,IAAI,UAAU,EAAE;YAClC,IAAG,KAAK,CAAC,cAAc,KAAK,MAAM,IAAI,WAAW,IAAI,0CAAqB,EAAC;gBACvE,cAAc,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;gBAClD,SAAS;aACZ;YAED,IAAI,YAAY,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;YAC/C,IAAI,YAAY,IAAI,SAAS;gBAAE,SAAS;YACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;gBAAE,YAAY,GAAG,CAAC,YAAY,CAAC,CAAC;YAEhE,IAAA,qBAAa,EAAC,YAAY,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAA;YAEzF,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC;YAChD,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;YAG1E,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,IAAA,4BAAe,EAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;YAE3E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;gBAC3B,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;aAC3B;YAED,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;gBAC3B,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,aAAa,EAAE,QAAQ,EAAE,IAAA,4BAAe,EAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;gBAE1F,IAAI,UAAU,GAAG,MAAM,IAAA,6BAAgB,EAAC,WAAW,CAAC,CAAC;gBACrD,IAAI,UAAU,GAAG,IAAA,8BAAiB,EAAC,YAAY,CAAC,CAAA;gBAEhD,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBAC9B,UAAU,CAAC,GAAG,CAAC,GAAa,EAAE,KAAK,CAAC,CAAA;gBACxC,CAAC,CAAC,CAAC;gBAEH,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;aAElD;YAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;gBACvB,YAAY,GAAG,IAAA,iBAAS,EAAC,YAAY,CAAC,CAAC;aAC1C;YAED,IAAI;gBACA,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACvC,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1E,4BAA4B;aAC/B;YAAC,OAAO,GAAG,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACtB;YACD,cAAc,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"upserter.js","sourceRoot":"","sources":["../../../src/utils/commands/upserter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"commandDescription": "Clear empty CSV files from object translations and remove empty folders",
|
|
3
|
+
"sfXmlFlagDescription": "Salesforce XML source path (default: %s)",
|
|
4
|
+
"esCsvFlagDescription": "Easy Sources CSV path (default: %s)",
|
|
5
|
+
"inputFlagDescription": "Comma-separated list of object translation names to process. If not specified, all object translations will be processed",
|
|
6
|
+
"examples": [
|
|
7
|
+
"$ sfdx easysources:objecttranslations:clearempty",
|
|
8
|
+
"$ sfdx easysources:objecttranslations:clearempty --input Account,Contact",
|
|
9
|
+
"$ sfdx easysources:objecttranslations:clearempty --es-csv ./csv --sf-xml ./force-app"
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"commandDescription": "Clear empty CSV files from translations and remove empty folders",
|
|
3
|
+
"sfXmlFlagDescription": "Salesforce XML source path (default: %s)",
|
|
4
|
+
"esCsvFlagDescription": "Easy Sources CSV path (default: %s)",
|
|
5
|
+
"inputFlagDescription": "Comma-separated list of translation names to process. If not specified, all translations will be processed",
|
|
6
|
+
"examples": [
|
|
7
|
+
"$ sfdx easysources:translations:clearempty",
|
|
8
|
+
"$ sfdx easysources:translations:clearempty --input en_US,it",
|
|
9
|
+
"$ sfdx easysources:translations:clearempty --es-csv ./csv --sf-xml ./force-app"
|
|
10
|
+
]
|
|
11
|
+
}
|