@salesforce/plugin-custom-metadata 2.2.13 → 3.0.2
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 +46 -46
- package/lib/commands/cmdt/generate/field.d.ts +7 -7
- package/lib/commands/cmdt/generate/field.js +76 -79
- package/lib/commands/cmdt/generate/field.js.map +1 -1
- package/lib/commands/cmdt/generate/fromorg.d.ts +11 -11
- package/lib/commands/cmdt/generate/fromorg.js +87 -92
- package/lib/commands/cmdt/generate/fromorg.js.map +1 -1
- package/lib/commands/cmdt/generate/object.d.ts +6 -6
- package/lib/commands/cmdt/generate/object.js +55 -58
- package/lib/commands/cmdt/generate/object.js.map +1 -1
- package/lib/commands/cmdt/generate/record.d.ts +7 -7
- package/lib/commands/cmdt/generate/record.js +64 -68
- package/lib/commands/cmdt/generate/record.js.map +1 -1
- package/lib/commands/cmdt/generate/records.d.ts +7 -7
- package/lib/commands/cmdt/generate/records.js +58 -60
- package/lib/commands/cmdt/generate/records.js.map +1 -1
- package/lib/index.js +1 -3
- package/lib/index.js.map +1 -1
- package/lib/shared/helpers/createUtil.d.ts +2 -2
- package/lib/shared/helpers/createUtil.js +17 -27
- package/lib/shared/helpers/createUtil.js.map +1 -1
- package/lib/shared/helpers/fileWriter.d.ts +2 -2
- package/lib/shared/helpers/fileWriter.js +4 -9
- package/lib/shared/helpers/fileWriter.js.map +1 -1
- package/lib/shared/helpers/metadataUtil.js +5 -12
- package/lib/shared/helpers/metadataUtil.js.map +1 -1
- package/lib/shared/helpers/validationUtil.js +15 -21
- package/lib/shared/helpers/validationUtil.js.map +1 -1
- package/lib/shared/interfaces/createConfig.js +1 -2
- package/lib/shared/interfaces/createConfig.js.map +1 -1
- package/lib/shared/templates/templates.js +13 -18
- package/lib/shared/templates/templates.js.map +1 -1
- package/oclif.lock +292 -390
- package/oclif.manifest.json +520 -268
- package/package.json +29 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/commands/cmdt/generate/record.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/commands/cmdt/generate/record.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SfCommand } from '@salesforce/sf-plugins-core';
|
|
2
|
-
import { CreateConfigs } from '../../../shared/interfaces/createConfig';
|
|
2
|
+
import { CreateConfigs } from '../../../shared/interfaces/createConfig.js';
|
|
3
3
|
export default class Insert extends SfCommand<CreateConfigs> {
|
|
4
4
|
static readonly summary: string;
|
|
5
5
|
static readonly description: string;
|
|
@@ -7,12 +7,12 @@ export default class Insert extends SfCommand<CreateConfigs> {
|
|
|
7
7
|
static readonly aliases: string[];
|
|
8
8
|
static readonly examples: string[];
|
|
9
9
|
static readonly flags: {
|
|
10
|
-
loglevel: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
11
|
-
csv: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
12
|
-
'type-name': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
13
|
-
'input-directory': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
14
|
-
'output-directory': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
15
|
-
'name-column': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
10
|
+
loglevel: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
11
|
+
csv: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
12
|
+
'type-name': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
13
|
+
'input-directory': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
14
|
+
'output-directory': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
15
|
+
'name-column': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
16
16
|
};
|
|
17
17
|
run(): Promise<CreateConfigs>;
|
|
18
18
|
}
|
|
@@ -1,30 +1,70 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
1
|
/*
|
|
4
2
|
* Copyright (c) 2020, salesforce.com, inc.
|
|
5
3
|
* All rights reserved.
|
|
6
4
|
* Licensed under the BSD 3-Clause license.
|
|
7
5
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
8
6
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
7
|
+
import fs from 'node:fs';
|
|
8
|
+
import path from 'node:path';
|
|
9
|
+
import { fileURLToPath } from 'node:url';
|
|
10
|
+
import { Flags, loglevel, SfCommand } from '@salesforce/sf-plugins-core';
|
|
11
|
+
import { Messages, SfError } from '@salesforce/core';
|
|
12
|
+
import { parse } from 'csv-parse/sync';
|
|
13
|
+
import { getFieldNames, appendDirectorySuffix, createRecord, getFileData } from '../../../shared/helpers/createUtil.js';
|
|
14
|
+
Messages.importMessagesDirectory(path.dirname(fileURLToPath(import.meta.url)));
|
|
15
|
+
const messages = Messages.loadMessages('@salesforce/plugin-custom-metadata', 'records');
|
|
16
|
+
export default class Insert extends SfCommand {
|
|
17
|
+
static summary = messages.getMessage('summary');
|
|
18
|
+
static description = messages.getMessage('description');
|
|
19
|
+
static requiresProject = true;
|
|
20
|
+
static aliases = ['force:cmdt:record:insert', 'cmdt:record:insert'];
|
|
21
|
+
static examples = messages.getMessages('examples');
|
|
22
|
+
static flags = {
|
|
23
|
+
loglevel,
|
|
24
|
+
csv: Flags.string({
|
|
25
|
+
char: 'f',
|
|
26
|
+
summary: messages.getMessage('flags.csv.summary'),
|
|
27
|
+
required: true,
|
|
28
|
+
aliases: ['filepath'],
|
|
29
|
+
}),
|
|
30
|
+
'type-name': Flags.string({
|
|
31
|
+
char: 't',
|
|
32
|
+
summary: messages.getMessage('flags.type-name.summary'),
|
|
33
|
+
description: messages.getMessage('flags.type-name.description'),
|
|
34
|
+
required: true,
|
|
35
|
+
parse: (input) => Promise.resolve(input.endsWith('__mdt') ? input.replace('__mdt', '') : input),
|
|
36
|
+
aliases: ['typename'],
|
|
37
|
+
}),
|
|
38
|
+
'input-directory': Flags.directory({
|
|
39
|
+
char: 'i',
|
|
40
|
+
summary: messages.getMessage('flags.input-directory.summary'),
|
|
41
|
+
default: path.join('force-app', 'main', 'default', 'objects'),
|
|
42
|
+
aliases: ['inputdir', 'inputdirectory'],
|
|
43
|
+
exists: true,
|
|
44
|
+
}),
|
|
45
|
+
'output-directory': Flags.directory({
|
|
46
|
+
char: 'd',
|
|
47
|
+
summary: messages.getMessage('flags.output-directory.summary'),
|
|
48
|
+
default: path.join('force-app', 'main', 'default', 'customMetadata'),
|
|
49
|
+
aliases: ['outputdir', 'outputdirectory'],
|
|
50
|
+
}),
|
|
51
|
+
'name-column': Flags.string({
|
|
52
|
+
char: 'n',
|
|
53
|
+
summary: messages.getMessage('flags.name-column.summary'),
|
|
54
|
+
default: 'Name',
|
|
55
|
+
aliases: ['namecolumn'],
|
|
56
|
+
}),
|
|
57
|
+
};
|
|
18
58
|
async run() {
|
|
19
59
|
const { flags } = await this.parse(Insert);
|
|
20
|
-
const dirName =
|
|
60
|
+
const dirName = appendDirectorySuffix(flags['type-name']);
|
|
21
61
|
const fieldDirPath = path.join(flags['input-directory'], dirName, 'fields');
|
|
22
62
|
const fileNames = await fs.promises.readdir(fieldDirPath);
|
|
23
63
|
// if customMetadata folder does not exist, create it
|
|
24
64
|
await fs.promises.mkdir(flags['output-directory'], { recursive: true });
|
|
25
|
-
const fileData = await
|
|
26
|
-
const metadataTypeFields =
|
|
27
|
-
const parsedRecords =
|
|
65
|
+
const fileData = await getFileData(fieldDirPath, fileNames);
|
|
66
|
+
const metadataTypeFields = getFieldNames(fileData, flags['name-column']);
|
|
67
|
+
const parsedRecords = parse(await fs.promises.readFile(flags.csv), {
|
|
28
68
|
columns: (header) => columnValidation(metadataTypeFields, header, flags['type-name']),
|
|
29
69
|
});
|
|
30
70
|
// Transforms on the recordname are to match the behavior of adding a new Custom Metadata Type record in the UI
|
|
@@ -47,65 +87,23 @@ class Insert extends sf_plugins_core_1.SfCommand {
|
|
|
47
87
|
return record[file.fullName] ? [file.fullName, record[file.fullName]] : [];
|
|
48
88
|
}
|
|
49
89
|
else {
|
|
50
|
-
throw new
|
|
90
|
+
throw new SfError('No fullName found in fileData');
|
|
51
91
|
}
|
|
52
92
|
})),
|
|
53
93
|
fileData,
|
|
54
94
|
}));
|
|
55
95
|
// find the cmdt in the inputdir.
|
|
56
96
|
// loop through files and create records that match fields
|
|
57
|
-
await Promise.all(recordConfigs.map((r) =>
|
|
97
|
+
await Promise.all(recordConfigs.map((r) => createRecord(r)));
|
|
58
98
|
this.log(messages.getMessage('successResponse', [flags.csv, flags['output-directory']]));
|
|
59
99
|
return recordConfigs;
|
|
60
100
|
}
|
|
61
101
|
}
|
|
62
|
-
Insert.summary = messages.getMessage('summary');
|
|
63
|
-
Insert.description = messages.getMessage('description');
|
|
64
|
-
Insert.requiresProject = true;
|
|
65
|
-
Insert.aliases = ['force:cmdt:record:insert', 'cmdt:record:insert'];
|
|
66
|
-
Insert.examples = messages.getMessages('examples');
|
|
67
|
-
Insert.flags = {
|
|
68
|
-
loglevel: sf_plugins_core_1.loglevel,
|
|
69
|
-
csv: sf_plugins_core_1.Flags.string({
|
|
70
|
-
char: 'f',
|
|
71
|
-
summary: messages.getMessage('flags.csv.summary'),
|
|
72
|
-
required: true,
|
|
73
|
-
aliases: ['filepath'],
|
|
74
|
-
}),
|
|
75
|
-
'type-name': sf_plugins_core_1.Flags.string({
|
|
76
|
-
char: 't',
|
|
77
|
-
summary: messages.getMessage('flags.type-name.summary'),
|
|
78
|
-
description: messages.getMessage('flags.type-name.description'),
|
|
79
|
-
required: true,
|
|
80
|
-
parse: (input) => Promise.resolve(input.endsWith('__mdt') ? input.replace('__mdt', '') : input),
|
|
81
|
-
aliases: ['typename'],
|
|
82
|
-
}),
|
|
83
|
-
'input-directory': sf_plugins_core_1.Flags.directory({
|
|
84
|
-
char: 'i',
|
|
85
|
-
summary: messages.getMessage('flags.input-directory.summary'),
|
|
86
|
-
default: path.join('force-app', 'main', 'default', 'objects'),
|
|
87
|
-
aliases: ['inputdir', 'inputdirectory'],
|
|
88
|
-
exists: true,
|
|
89
|
-
}),
|
|
90
|
-
'output-directory': sf_plugins_core_1.Flags.directory({
|
|
91
|
-
char: 'd',
|
|
92
|
-
summary: messages.getMessage('flags.output-directory.summary'),
|
|
93
|
-
default: path.join('force-app', 'main', 'default', 'customMetadata'),
|
|
94
|
-
aliases: ['outputdir', 'outputdirectory'],
|
|
95
|
-
}),
|
|
96
|
-
'name-column': sf_plugins_core_1.Flags.string({
|
|
97
|
-
char: 'n',
|
|
98
|
-
summary: messages.getMessage('flags.name-column.summary'),
|
|
99
|
-
default: 'Name',
|
|
100
|
-
aliases: ['namecolumn'],
|
|
101
|
-
}),
|
|
102
|
-
};
|
|
103
|
-
exports.default = Insert;
|
|
104
102
|
/** Validate that every column in the CSV has known metadata */
|
|
105
103
|
const columnValidation = (requiredFields, columnList, typeNameFlag) => {
|
|
106
104
|
columnList.forEach((column) => {
|
|
107
105
|
if (!requiredFields.includes(column)) {
|
|
108
|
-
throw new
|
|
106
|
+
throw new SfError(messages.getMessage('fieldNotFoundError', [column, typeNameFlag]));
|
|
109
107
|
}
|
|
110
108
|
});
|
|
111
109
|
return columnList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"records.js","sourceRoot":"","sources":["../../../../src/commands/cmdt/generate/records.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"records.js","sourceRoot":"","sources":["../../../../src/commands/cmdt/generate/records.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/*
|
|
3
2
|
* Copyright (c) 2020, salesforce.com, inc.
|
|
4
3
|
* All rights reserved.
|
|
5
4
|
* Licensed under the BSD 3-Clause license.
|
|
6
5
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
exports.default = {};
|
|
7
|
+
export default {};
|
|
10
8
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAe,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CustomField } from 'jsforce/api/metadata';
|
|
2
|
-
import { CreateConfig } from '../interfaces/createConfig';
|
|
2
|
+
import { CreateConfig } from '../interfaces/createConfig.js';
|
|
3
3
|
/**
|
|
4
4
|
* Number and Percent types will be int or double depending on their respective scale values.
|
|
5
5
|
* If the scale === 0, it is an int, otherwise it is a double
|
|
@@ -41,7 +41,7 @@ export declare const getFieldPrimitiveType: (fileData?: CustomField[], fieldName
|
|
|
41
41
|
*/
|
|
42
42
|
export declare const appendDirectorySuffix: (typename: string) => string;
|
|
43
43
|
/**
|
|
44
|
-
* Goes through the file data that has been
|
|
44
|
+
* Goes through the file data that has been generated and gets all of the field names and adds the
|
|
45
45
|
* name of the field that is used as the label for metadata record
|
|
46
46
|
*
|
|
47
47
|
* @param fileData Array of objects based on metadata type xml
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getFieldNames = exports.appendDirectorySuffix = exports.getFieldPrimitiveType = exports.createRecord = exports.getFieldDataType = exports.getFileData = void 0;
|
|
4
1
|
/*
|
|
5
2
|
* Copyright (c) 2020, salesforce.com, inc.
|
|
6
3
|
* All rights reserved.
|
|
7
4
|
* Licensed under the BSD 3-Clause license.
|
|
8
5
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
9
6
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const templates_1 = require("../templates/templates");
|
|
7
|
+
import fs from 'node:fs';
|
|
8
|
+
import path from 'node:path';
|
|
9
|
+
import { XMLParser } from 'fast-xml-parser';
|
|
10
|
+
import { canConvert } from '../templates/templates.js';
|
|
15
11
|
const fieldTypeMap = new Map([
|
|
16
12
|
['Checkbox', 'boolean'],
|
|
17
13
|
['Date', 'date'],
|
|
@@ -35,8 +31,8 @@ const fieldTypeMap = new Map([
|
|
|
35
31
|
* @param fileNames filenames in that folder that should be read
|
|
36
32
|
* @returns CustomField[]
|
|
37
33
|
*/
|
|
38
|
-
const getFileData = async (fieldDirPath, fileNames) => {
|
|
39
|
-
const parser = new
|
|
34
|
+
export const getFileData = async (fieldDirPath, fileNames) => {
|
|
35
|
+
const parser = new XMLParser();
|
|
40
36
|
return Promise.all(fileNames
|
|
41
37
|
.map((file) => path.join(fieldDirPath, file))
|
|
42
38
|
.map(async (filePath) => {
|
|
@@ -44,7 +40,6 @@ const getFileData = async (fieldDirPath, fileNames) => {
|
|
|
44
40
|
return parser.parse(fileData).CustomField;
|
|
45
41
|
}));
|
|
46
42
|
};
|
|
47
|
-
exports.getFileData = getFileData;
|
|
48
43
|
/**
|
|
49
44
|
* Get the field type from the custom metadata type that has a matching field name.
|
|
50
45
|
*
|
|
@@ -52,20 +47,18 @@ exports.getFileData = getFileData;
|
|
|
52
47
|
* @param fieldName Name of the field
|
|
53
48
|
* @return {string} Data Type of the field.
|
|
54
49
|
*/
|
|
55
|
-
const getFieldDataType = (fileData = [], fieldName = '') => fileData.find((file) => file.fullName === fieldName)?.type;
|
|
56
|
-
exports.getFieldDataType = getFieldDataType;
|
|
50
|
+
export const getFieldDataType = (fileData = [], fieldName = '') => fileData.find((file) => file.fullName === fieldName)?.type;
|
|
57
51
|
/**
|
|
58
52
|
* Creates the Custom Metadata Record
|
|
59
53
|
*
|
|
60
54
|
* @param createConfig Properties include typename, recname, label, protection, varargs, and fileData
|
|
61
55
|
* @return void
|
|
62
56
|
*/
|
|
63
|
-
const createRecord = async (createConfig) => {
|
|
57
|
+
export const createRecord = async (createConfig) => {
|
|
64
58
|
const outputFilePath = path.join(createConfig.outputdir, `${createConfig.typename}.${createConfig.recordname}.md-meta.xml`);
|
|
65
59
|
const newRecordContent = getRecordTemplate(createConfig.label, createConfig.protected, buildCustomFieldXml(createConfig.fileData, createConfig.varargs, createConfig.ignorefields));
|
|
66
60
|
return fs.promises.writeFile(outputFilePath, newRecordContent);
|
|
67
61
|
};
|
|
68
|
-
exports.createRecord = createRecord;
|
|
69
62
|
/**
|
|
70
63
|
* Get the field primitive type from the custom metadata type that has a matching field name.
|
|
71
64
|
*
|
|
@@ -73,7 +66,7 @@ exports.createRecord = createRecord;
|
|
|
73
66
|
* @param fieldName Name of the field
|
|
74
67
|
* @return {string} Type used by a custom metadata record
|
|
75
68
|
*/
|
|
76
|
-
const getFieldPrimitiveType = (fileData = [], fieldName) => {
|
|
69
|
+
export const getFieldPrimitiveType = (fileData = [], fieldName) => {
|
|
77
70
|
const matchingFile = fileData.find((file) => file.fullName === fieldName);
|
|
78
71
|
if (matchingFile && typeof matchingFile.type === 'string' && ['Number', 'Percent'].includes(matchingFile.type)) {
|
|
79
72
|
return getNumberType(matchingFile.type, matchingFile.scale);
|
|
@@ -83,27 +76,24 @@ const getFieldPrimitiveType = (fileData = [], fieldName) => {
|
|
|
83
76
|
}
|
|
84
77
|
return 'string';
|
|
85
78
|
};
|
|
86
|
-
exports.getFieldPrimitiveType = getFieldPrimitiveType;
|
|
87
79
|
/**
|
|
88
80
|
* Filenames should have the suffix of '__mdt'. This will append that suffix if it does not exist.
|
|
89
81
|
*
|
|
90
82
|
* @param typename Name of file
|
|
91
83
|
*/
|
|
92
|
-
const appendDirectorySuffix = (typename) => typename.endsWith('__mdt') ? typename : `${typename}__mdt`;
|
|
93
|
-
exports.appendDirectorySuffix = appendDirectorySuffix;
|
|
84
|
+
export const appendDirectorySuffix = (typename) => typename.endsWith('__mdt') ? typename : `${typename}__mdt`;
|
|
94
85
|
/**
|
|
95
|
-
* Goes through the file data that has been
|
|
86
|
+
* Goes through the file data that has been generated and gets all of the field names and adds the
|
|
96
87
|
* name of the field that is used as the label for metadata record
|
|
97
88
|
*
|
|
98
89
|
* @param fileData Array of objects based on metadata type xml
|
|
99
90
|
* @param nameField name of the column that is going to be used for the name of the metadata record
|
|
100
91
|
* @return [] Array of field names
|
|
101
92
|
*/
|
|
102
|
-
const getFieldNames = (fileData, nameField) => [
|
|
103
|
-
...fileData.map((file) => file.fullName).filter(
|
|
93
|
+
export const getFieldNames = (fileData, nameField) => [
|
|
94
|
+
...fileData.map((file) => file.fullName).filter((f) => typeof f === 'string'),
|
|
104
95
|
nameField,
|
|
105
96
|
];
|
|
106
|
-
exports.getFieldNames = getFieldNames;
|
|
107
97
|
/**
|
|
108
98
|
* Takes JSON representation of CLI varargs and converts them to xml with help
|
|
109
99
|
* from helper.getFieldTemplate
|
|
@@ -115,10 +105,10 @@ exports.getFieldNames = getFieldNames;
|
|
|
115
105
|
const buildCustomFieldXml = (fileData = [], cliParams = {}, ignoreFields = false) => {
|
|
116
106
|
let ret = '';
|
|
117
107
|
for (const fieldName of Object.keys(cliParams)) {
|
|
118
|
-
const type =
|
|
119
|
-
const dataType =
|
|
120
|
-
// Added functionality to handle the
|
|
121
|
-
if (
|
|
108
|
+
const type = getFieldPrimitiveType(fileData, fieldName);
|
|
109
|
+
const dataType = getFieldDataType(fileData, fieldName);
|
|
110
|
+
// Added functionality to handle the ignore fields scenario.
|
|
111
|
+
if (canConvert(dataType) || !ignoreFields) {
|
|
122
112
|
ret += getFieldTemplate(fieldName, cliParams[fieldName], type);
|
|
123
113
|
}
|
|
124
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createUtil.js","sourceRoot":"","sources":["../../../src/shared/helpers/createUtil.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createUtil.js","sourceRoot":"","sources":["../../../src/shared/helpers/createUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/*
|
|
3
2
|
* Copyright (c) 2020, salesforce.com, inc.
|
|
4
3
|
* All rights reserved.
|
|
5
4
|
* Licensed under the BSD 3-Clause license.
|
|
6
5
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const fs = require("node:fs");
|
|
11
|
-
const path = require("node:path");
|
|
7
|
+
import fs from 'node:fs';
|
|
8
|
+
import path from 'node:path';
|
|
12
9
|
/**
|
|
13
10
|
* Using the given file system, creates a file representing a new custom metadata type.
|
|
14
11
|
*
|
|
@@ -16,7 +13,7 @@ const path = require("node:path");
|
|
|
16
13
|
* @param devname
|
|
17
14
|
* @param objectXML
|
|
18
15
|
*/
|
|
19
|
-
const writeTypeFile = async (corefs = fs, dir, devName, objectXML) => {
|
|
16
|
+
export const writeTypeFile = async (corefs = fs, dir, devName, objectXML) => {
|
|
20
17
|
let apiName = devName;
|
|
21
18
|
// replace __c with __mdt
|
|
22
19
|
if (apiName.endsWith('__c')) {
|
|
@@ -33,7 +30,6 @@ const writeTypeFile = async (corefs = fs, dir, devName, objectXML) => {
|
|
|
33
30
|
await corefs.promises.writeFile(path.join(outputFilePath, fileName), objectXML);
|
|
34
31
|
return { dir: outputFilePath, fileName, updated };
|
|
35
32
|
};
|
|
36
|
-
exports.writeTypeFile = writeTypeFile;
|
|
37
33
|
/**
|
|
38
34
|
* Using the given file system, creates a file representing a new field for the given custom metadata type
|
|
39
35
|
*
|
|
@@ -42,7 +38,7 @@ exports.writeTypeFile = writeTypeFile;
|
|
|
42
38
|
* @param fieldXML
|
|
43
39
|
*/
|
|
44
40
|
// /fields/{fieldAPI}.field-meta.xml
|
|
45
|
-
const writeFieldFile = async (corefs = fs, dir, fieldName, fieldXML) => {
|
|
41
|
+
export const writeFieldFile = async (corefs = fs, dir, fieldName, fieldXML) => {
|
|
46
42
|
// appending __c if its not already there
|
|
47
43
|
if (fieldName?.endsWith('__c') === false) {
|
|
48
44
|
fieldName += '__c';
|
|
@@ -54,6 +50,5 @@ const writeFieldFile = async (corefs = fs, dir, fieldName, fieldXML) => {
|
|
|
54
50
|
await corefs.promises.writeFile(path.join(outputFilePath, fileName), fieldXML);
|
|
55
51
|
return { dir: outputFilePath, fileName, updated };
|
|
56
52
|
};
|
|
57
|
-
exports.writeFieldFile = writeFieldFile;
|
|
58
53
|
const removeTrailingSlash = (dir) => dir.replace(/\/+$/, '');
|
|
59
54
|
//# sourceMappingURL=fileWriter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileWriter.js","sourceRoot":"","sources":["../../../src/shared/helpers/fileWriter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fileWriter.js","sourceRoot":"","sources":["../../../src/shared/helpers/fileWriter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,MAAM,GAAG,EAAE,EACX,GAAW,EACX,OAAe,EACf,SAAiB,EACU,EAAE;IAC7B,IAAI,OAAO,GAAG,OAAO,CAAC;IAEtB,yBAAyB;IACzB,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC3B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KAC3C;IAED,8CAA8C;IAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAC9B,OAAO,IAAI,OAAO,CAAC;KACpB;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,GAAG,OAAO,kBAAkB,CAAC;IAC9C,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEnE,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;IAEhF,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACpD,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,oCAAoC;AACpC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,MAAM,GAAG,EAAE,EACX,GAAW,EACX,SAAoC,EACpC,QAAgB,EACW,EAAE;IAC7B,yCAAyC;IACzC,IAAI,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;QACxC,SAAS,IAAI,KAAK,CAAC;KACpB;IACD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,GAAG,SAAS,iBAAiB,CAAC;IAC/C,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE/E,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/*
|
|
3
2
|
* Copyright (c) 2020, salesforce.com, inc.
|
|
4
3
|
* All rights reserved.
|
|
5
4
|
* Licensed under the BSD 3-Clause license.
|
|
6
5
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
6
|
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.cleanQueryResponse = exports.describeObjFields = exports.validCustomSettingType = exports.describeField = void 0;
|
|
10
7
|
/**
|
|
11
8
|
* Returns describe object for the field API name from the Object API name you specify
|
|
12
9
|
*
|
|
@@ -14,28 +11,25 @@ exports.cleanQueryResponse = exports.describeObjFields = exports.validCustomSett
|
|
|
14
11
|
* @param fieldName API name of the field to query
|
|
15
12
|
* @returns Promise - Promise - record in JSON format
|
|
16
13
|
*/
|
|
17
|
-
const describeField = (objDescribe, fieldName) =>
|
|
18
|
-
exports.describeField = describeField;
|
|
14
|
+
export const describeField = (objDescribe, fieldName) => describeObjFields(objDescribe).find((field) => field.fullName === fieldName);
|
|
19
15
|
/**
|
|
20
16
|
* Returns true if the object name you specify is a list type custom setting
|
|
21
17
|
*
|
|
22
18
|
* @param objName object describe JSON
|
|
23
19
|
* @returns boolean
|
|
24
20
|
*/
|
|
25
|
-
const validCustomSettingType = (objDescribe) => objDescribe.customSettingsType === 'List' && objDescribe.visibility === 'Public';
|
|
26
|
-
exports.validCustomSettingType = validCustomSettingType;
|
|
21
|
+
export const validCustomSettingType = (objDescribe) => objDescribe.customSettingsType === 'List' && objDescribe.visibility === 'Public';
|
|
27
22
|
/**
|
|
28
23
|
* Returns describe object for all fields from the object API name you specify
|
|
29
24
|
*
|
|
30
25
|
* @param objDescribe object describe JSON
|
|
31
26
|
* @returns Promise - Promise - record in JSON format
|
|
32
27
|
*/
|
|
33
|
-
const describeObjFields = (objDescribe) => objDescribe.fields;
|
|
34
|
-
|
|
35
|
-
const cleanQueryResponse = (sObjectRecord, objectDescribe) => Object.fromEntries(Object.entries(sObjectRecord)
|
|
28
|
+
export const describeObjFields = (objDescribe) => objDescribe.fields;
|
|
29
|
+
export const cleanQueryResponse = (sObjectRecord, objectDescribe) => Object.fromEntries(Object.entries(sObjectRecord)
|
|
36
30
|
.filter(([fieldName]) => fieldName !== 'attributes' && fieldName !== 'Name')
|
|
37
31
|
.flatMap(([fieldName, value]) => {
|
|
38
|
-
const fieldDescribe =
|
|
32
|
+
const fieldDescribe = describeField(objectDescribe, fieldName);
|
|
39
33
|
// everything but location returns as is
|
|
40
34
|
if (fieldDescribe?.type !== 'Location') {
|
|
41
35
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
@@ -55,5 +49,4 @@ const cleanQueryResponse = (sObjectRecord, objectDescribe) => Object.fromEntries
|
|
|
55
49
|
];
|
|
56
50
|
}
|
|
57
51
|
}));
|
|
58
|
-
exports.cleanQueryResponse = cleanQueryResponse;
|
|
59
52
|
//# sourceMappingURL=metadataUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadataUtil.js","sourceRoot":"","sources":["../../../src/shared/helpers/metadataUtil.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"metadataUtil.js","sourceRoot":"","sources":["../../../src/shared/helpers/metadataUtil.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,WAAyB,EAAE,SAAiB,EAA2B,EAAE,CACrG,iBAAiB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,WAAyB,EAAW,EAAE,CAC3E,WAAW,CAAC,kBAAkB,KAAK,MAAM,IAAI,WAAW,CAAC,UAAU,KAAK,QAAQ,CAAC;AAEnF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,WAAyB,EAAiB,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;AAElG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,aAAqB,EAAE,cAA4B,EAAU,EAAE,CAChG,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;KAC1B,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,KAAK,YAAY,IAAI,SAAS,KAAK,MAAM,CAAC;KAC3E,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE;IAC9B,MAAM,aAAa,GAAG,aAAa,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC/D,wCAAwC;IACxC,IAAI,aAAa,EAAE,IAAI,KAAK,UAAU,EAAE;QACtC,+DAA+D;QAC/D,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;KAC7B;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QACvE,OAAO;YACL,CAAC,OAAO,SAAS,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5F,CAAC,QAAQ,SAAS,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;SAClG,CAAC;KACH;SAAM;QACL,OAAO;YACL,CAAC,OAAO,SAAS,EAAE,EAAE,EAAE,CAAC;YACxB,CAAC,QAAQ,SAAS,EAAE,EAAE,EAAE,CAAC;SAC1B,CAAC;KACH;AACH,CAAC,CAAC,CACL,CAAC"}
|