@salesforce/plugin-custom-metadata 1.1.0 → 2.0.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/CHANGELOG.md +14 -12
- package/LICENSE.txt +2 -2
- package/README.md +137 -133
- package/lib/commands/force/cmdt/create.d.ts +8 -2
- package/lib/commands/force/cmdt/create.js +15 -21
- package/lib/commands/force/cmdt/create.js.map +1 -1
- package/lib/commands/force/cmdt/field/create.d.ts +7 -2
- package/lib/commands/force/cmdt/field/create.js +15 -20
- package/lib/commands/force/cmdt/field/create.js.map +1 -1
- package/lib/commands/force/cmdt/generate.d.ts +6 -2
- package/lib/commands/force/cmdt/generate.js +79 -150
- package/lib/commands/force/cmdt/generate.js.map +1 -1
- package/lib/commands/force/cmdt/record/create.d.ts +14 -3
- package/lib/commands/force/cmdt/record/create.js +25 -33
- package/lib/commands/force/cmdt/record/create.js.map +1 -1
- package/lib/commands/force/cmdt/record/insert.d.ts +2 -2
- package/lib/commands/force/cmdt/record/insert.js +28 -40
- package/lib/commands/force/cmdt/record/insert.js.map +1 -1
- package/lib/lib/helpers/createUtil.d.ts +10 -6
- package/lib/lib/helpers/createUtil.js +48 -100
- package/lib/lib/helpers/createUtil.js.map +1 -1
- package/lib/lib/helpers/fileWriter.d.ts +11 -11
- package/lib/lib/helpers/fileWriter.js +14 -24
- package/lib/lib/helpers/fileWriter.js.map +1 -1
- package/lib/lib/helpers/metadataUtil.d.ts +25 -51
- package/lib/lib/helpers/metadataUtil.js +55 -131
- package/lib/lib/helpers/metadataUtil.js.map +1 -1
- package/lib/lib/helpers/validationUtil.d.ts +25 -26
- package/lib/lib/helpers/validationUtil.js +66 -43
- package/lib/lib/helpers/validationUtil.js.map +1 -1
- package/lib/lib/interfaces/createConfig.d.ts +3 -2
- package/lib/lib/templates/templates.d.ts +8 -99
- package/lib/lib/templates/templates.js +38 -67
- package/lib/lib/templates/templates.js.map +1 -1
- package/messages/createField.json +22 -31
- package/messages/generate.json +38 -51
- package/messages/template.json +2 -2
- package/messages/validation.json +5 -0
- package/oclif.manifest.json +1 -1
- package/package.json +53 -42
- package/lib/lib/interfaces/customField.d.ts +0 -7
- package/lib/lib/interfaces/customField.js +0 -9
- package/lib/lib/interfaces/customField.js.map +0 -1
- package/lib/lib/interfaces/errorMessage.d.ts +0 -4
- package/lib/lib/interfaces/errorMessage.js +0 -9
- package/lib/lib/interfaces/errorMessage.js.map +0 -1
- package/lib/lib/interfaces/record.d.ts +0 -3
- package/lib/lib/interfaces/record.js +0 -9
- package/lib/lib/interfaces/record.js.map +0 -1
- package/lib/lib/interfaces/saveResults.d.ts +0 -5
- package/lib/lib/interfaces/saveResults.js +0 -9
- package/lib/lib/interfaces/saveResults.js.map +0 -1
|
@@ -6,136 +6,60 @@
|
|
|
6
6
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const query = await this._getSoqlQuery(describeResult['fields'], describeResult['fullName']);
|
|
62
|
-
const queryResult = await this.queryObject(query);
|
|
63
|
-
return (0, ts_types_1.toAnyJson)(queryResult);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Returns describe object for the field API name from the Object API name you specify
|
|
67
|
-
*
|
|
68
|
-
* @param objDescribe describe object JSON
|
|
69
|
-
* @param fieldName API name of the field to query
|
|
70
|
-
* @returns Promise - Promise - record in JSON format
|
|
71
|
-
*/
|
|
72
|
-
describeField(objDescribe, fieldName) {
|
|
73
|
-
const fieldsDescribe = objDescribe['fields'];
|
|
74
|
-
let fieldsDescribeResult;
|
|
75
|
-
fieldsDescribe.map((field) => {
|
|
76
|
-
if (field.fullName === fieldName) {
|
|
77
|
-
fieldsDescribeResult = field;
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
return fieldsDescribeResult;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Returns describe object for all fields from the object API name you specify
|
|
84
|
-
*
|
|
85
|
-
* @param objDescribe object describe JSON
|
|
86
|
-
* @returns Promise - Promise - record in JSON format
|
|
87
|
-
*/
|
|
88
|
-
describeObjFields(objDescribe) {
|
|
89
|
-
const fieldsDescribe = objDescribe['fields'];
|
|
90
|
-
return fieldsDescribe;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Returns true if the object name you specify is a list type custom setting
|
|
94
|
-
*
|
|
95
|
-
* @param objName API name of the object to query
|
|
96
|
-
* @returns boolean
|
|
97
|
-
*/
|
|
98
|
-
validCustomSettingType(objDescribe) {
|
|
99
|
-
if (objDescribe['customSettingsType'] === 'List' &&
|
|
100
|
-
objDescribe['visibility'] === 'Public') {
|
|
101
|
-
return true;
|
|
9
|
+
exports.cleanQueryResponse = exports.describeObjFields = exports.validCustomSettingType = exports.describeField = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Returns describe object for the field API name from the Object API name you specify
|
|
12
|
+
*
|
|
13
|
+
* @param objDescribe describe object JSON
|
|
14
|
+
* @param fieldName API name of the field to query
|
|
15
|
+
* @returns Promise - Promise - record in JSON format
|
|
16
|
+
*/
|
|
17
|
+
const describeField = (objDescribe, fieldName) => {
|
|
18
|
+
return (0, exports.describeObjFields)(objDescribe).find((field) => field.fullName === fieldName);
|
|
19
|
+
};
|
|
20
|
+
exports.describeField = describeField;
|
|
21
|
+
/**
|
|
22
|
+
* Returns true if the object name you specify is a list type custom setting
|
|
23
|
+
*
|
|
24
|
+
* @param objName object describe JSON
|
|
25
|
+
* @returns boolean
|
|
26
|
+
*/
|
|
27
|
+
const validCustomSettingType = (objDescribe) => objDescribe.customSettingsType === 'List' && objDescribe.visibility === 'Public';
|
|
28
|
+
exports.validCustomSettingType = validCustomSettingType;
|
|
29
|
+
/**
|
|
30
|
+
* Returns describe object for all fields from the object API name you specify
|
|
31
|
+
*
|
|
32
|
+
* @param objDescribe object describe JSON
|
|
33
|
+
* @returns Promise - Promise - record in JSON format
|
|
34
|
+
*/
|
|
35
|
+
const describeObjFields = (objDescribe) => {
|
|
36
|
+
return objDescribe.fields;
|
|
37
|
+
};
|
|
38
|
+
exports.describeObjFields = describeObjFields;
|
|
39
|
+
const cleanQueryResponse = (sObjectRecord, objectDescribe) => {
|
|
40
|
+
return Object.fromEntries(Object.entries(sObjectRecord)
|
|
41
|
+
.filter(([fieldName]) => fieldName !== 'attributes' && fieldName !== 'Name')
|
|
42
|
+
.flatMap(([fieldName, value]) => {
|
|
43
|
+
const fieldDescribe = (0, exports.describeField)(objectDescribe, fieldName);
|
|
44
|
+
// everything but location returns as is
|
|
45
|
+
if (fieldDescribe.type !== 'Location') {
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
47
|
+
return [[fieldName, value]];
|
|
48
|
+
}
|
|
49
|
+
const fieldValue = JSON.stringify(value);
|
|
50
|
+
if (fieldValue.includes('latitude') || fieldValue.includes('longitude')) {
|
|
51
|
+
return [
|
|
52
|
+
[`Lat_${fieldName}`, fieldValue.slice(fieldValue.indexOf(':') + 1, fieldValue.indexOf(','))],
|
|
53
|
+
[`Long_${fieldName}`, fieldValue.slice(fieldValue.lastIndexOf(':') + 1, fieldValue.indexOf('}'))],
|
|
54
|
+
];
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
return [
|
|
58
|
+
[`Lat_${fieldName}`, ''],
|
|
59
|
+
[`Long_${fieldName}`, ''],
|
|
60
|
+
];
|
|
102
61
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
const record = {};
|
|
107
|
-
Object.keys(sObjecRecord).forEach((fieldName) => {
|
|
108
|
-
if (fieldName !== 'attributes' && fieldName !== 'Name') {
|
|
109
|
-
const fieldDescribe = this.describeField(objectDescribe, fieldName);
|
|
110
|
-
const fieldType = fieldDescribe['type'];
|
|
111
|
-
const fieldValue = JSON.stringify(sObjecRecord[fieldName]);
|
|
112
|
-
if (fieldType === 'Location') {
|
|
113
|
-
if (fieldValue.includes('latitude') ||
|
|
114
|
-
fieldValue.includes('longitude')) {
|
|
115
|
-
record['Lat_' + fieldName] = fieldValue.slice(fieldValue.indexOf(':') + 1, fieldValue.indexOf(','));
|
|
116
|
-
record['Long_' + fieldName] = fieldValue.slice(fieldValue.lastIndexOf(':') + 1, fieldValue.indexOf('}'));
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
record['Lat_' + fieldName] = '';
|
|
120
|
-
record['Long_' + fieldName] = '';
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
record[fieldName] = sObjecRecord[fieldName];
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
return record;
|
|
129
|
-
}
|
|
130
|
-
_getSoqlQuery(arr, objName) {
|
|
131
|
-
const fieldNames = arr
|
|
132
|
-
.map((field) => {
|
|
133
|
-
return field.fullName;
|
|
134
|
-
})
|
|
135
|
-
.join(',');
|
|
136
|
-
// Added Name hardcoded as Name field is not retreived as part of object describe.
|
|
137
|
-
return `SELECT Name, ${fieldNames} FROM ${objName}`;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
exports.MetadataUtil = MetadataUtil;
|
|
62
|
+
}));
|
|
63
|
+
};
|
|
64
|
+
exports.cleanQueryResponse = cleanQueryResponse;
|
|
141
65
|
//# sourceMappingURL=metadataUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadataUtil.js","sourceRoot":"","sources":["../../../src/lib/helpers/metadataUtil.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"metadataUtil.js","sourceRoot":"","sources":["../../../src/lib/helpers/metadataUtil.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH;;;;;;GAMG;AACI,MAAM,aAAa,GAAG,CAAC,WAAyB,EAAE,SAAiB,EAAe,EAAE;IACzF,OAAO,IAAA,yBAAiB,EAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;AACtF,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAEF;;;;;GAKG;AACI,MAAM,sBAAsB,GAAG,CAAC,WAAyB,EAAW,EAAE,CAC3E,WAAW,CAAC,kBAAkB,KAAK,MAAM,IAAI,WAAW,CAAC,UAAU,KAAK,QAAQ,CAAC;AADtE,QAAA,sBAAsB,0BACgD;AAEnF;;;;;GAKG;AACI,MAAM,iBAAiB,GAAG,CAAC,WAAyB,EAAiB,EAAE;IAC5E,OAAO,WAAW,CAAC,MAAM,CAAC;AAC5B,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B;AAEK,MAAM,kBAAkB,GAAG,CAAC,aAAqB,EAAE,cAA4B,EAAU,EAAE;IAChG,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;SAC1B,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,KAAK,YAAY,IAAI,SAAS,KAAK,MAAM,CAAC;SAC3E,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE;QAC9B,MAAM,aAAa,GAAG,IAAA,qBAAa,EAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAC/D,wCAAwC;QACxC,IAAI,aAAa,CAAC,IAAI,KAAK,UAAU,EAAE;YACrC,+DAA+D;YAC/D,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;SAC7B;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACvE,OAAO;gBACL,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;gBAC5F,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;aAClG,CAAC;SACH;aAAM;YACL,OAAO;gBACL,CAAC,OAAO,SAAS,EAAE,EAAE,EAAE,CAAC;gBACxB,CAAC,QAAQ,SAAS,EAAE,EAAE,EAAE,CAAC;aAC1B,CAAC;SACH;IACH,CAAC,CAAC,CACL,CAAC;AACJ,CAAC,CAAC;AAzBW,QAAA,kBAAkB,sBAyB7B"}
|
|
@@ -1,26 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Returns true if the name is a valid api name for an sobject/field
|
|
3
|
+
*
|
|
4
|
+
* @param name API name of the object
|
|
5
|
+
*/
|
|
6
|
+
export declare const validateAPIName: (name: string, message?: string) => string;
|
|
7
|
+
/**
|
|
8
|
+
* Returns true if the fieldname is a valid metadata object name
|
|
9
|
+
*
|
|
10
|
+
* @param fieldName API name of the field
|
|
11
|
+
*/
|
|
12
|
+
export declare const validateMetadataTypeName: (typeName: string) => string;
|
|
13
|
+
export declare const isValidMetadataRecordName: (recordName: string) => boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Returns true if the fieldname is a valid metadata record name
|
|
16
|
+
*
|
|
17
|
+
* @param fieldName record name of a metadata record
|
|
18
|
+
*/
|
|
19
|
+
export declare const validateMetadataRecordName: (typeName: string) => string;
|
|
20
|
+
/**
|
|
21
|
+
* Returns true if name is below 40 characters
|
|
22
|
+
*
|
|
23
|
+
* @param name label name or plural label
|
|
24
|
+
*/
|
|
25
|
+
export declare const validateLessThanForty: (name: string, message: string) => string;
|
|
@@ -1,55 +1,78 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateLessThanForty = exports.validateMetadataRecordName = exports.isValidMetadataRecordName = exports.validateMetadataTypeName = exports.validateAPIName = void 0;
|
|
2
4
|
/*
|
|
3
5
|
* Copyright (c) 2020, salesforce.com, inc.
|
|
4
6
|
* All rights reserved.
|
|
5
7
|
* Licensed under the BSD 3-Clause license.
|
|
6
8
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
9
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
10
|
+
const core_1 = require("@salesforce/core");
|
|
11
|
+
core_1.Messages.importMessagesDirectory(__dirname);
|
|
12
|
+
const messages = core_1.Messages.load('@salesforce/plugin-custom-metadata', 'validation', [
|
|
13
|
+
'sobjectnameFlagError',
|
|
14
|
+
'invalidCMDTApiName',
|
|
15
|
+
'notAValidRecordNameError',
|
|
16
|
+
]);
|
|
17
|
+
/**
|
|
18
|
+
* Returns true if the name is a valid api name for an sobject/field
|
|
19
|
+
*
|
|
20
|
+
* @param name API name of the object
|
|
21
|
+
*/
|
|
22
|
+
const validateAPIName = (name, message) => {
|
|
23
|
+
// trimming the __c from the field during character count since it does not count towards the limit
|
|
24
|
+
// Regex makes sure that the field name is alpha numeric, doesn't end in an underscore
|
|
25
|
+
// and optionally if it ends in __c
|
|
26
|
+
const cleanedValue = name.replace('__c', '').replace('__C', '');
|
|
27
|
+
if (cleanedValue.length > 40 || !/^[a-zA-Z][a-zA-Z0-9]*(_[a-zA-Z0-9]+)*(__[cC])?$/.test(cleanedValue)) {
|
|
28
|
+
throw new core_1.SfError(message !== null && message !== void 0 ? message : messages.getMessage('sobjectnameFlagError', [name]));
|
|
22
29
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
return name;
|
|
31
|
+
};
|
|
32
|
+
exports.validateAPIName = validateAPIName;
|
|
33
|
+
/**
|
|
34
|
+
* Returns true if the fieldname is a valid metadata object name
|
|
35
|
+
*
|
|
36
|
+
* @param fieldName API name of the field
|
|
37
|
+
*/
|
|
38
|
+
const validateMetadataTypeName = (typeName) => {
|
|
39
|
+
// trimming the __mdt from the field during character count since it does not count towards the limit
|
|
40
|
+
// Regex makes sure that the field name is alpha numeric, doesn't end in an underscore
|
|
41
|
+
// and optionally if it ends in __mdt
|
|
42
|
+
const trimmedValue = typeName.replace(/__mdt$/gi, '');
|
|
43
|
+
if (trimmedValue.length > 40 || !/^[a-zA-Z][a-zA-Z0-9]*(_[a-zA-Z0-9]+)*(__[mdtT])?$/.test(trimmedValue)) {
|
|
44
|
+
throw new core_1.SfError(messages.getMessage('invalidCMDTApiName', [typeName]));
|
|
34
45
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
46
|
+
return trimmedValue;
|
|
47
|
+
};
|
|
48
|
+
exports.validateMetadataTypeName = validateMetadataTypeName;
|
|
49
|
+
const isValidMetadataRecordName = (recordName) => {
|
|
50
|
+
return recordName.length <= 40 && /^[a-zA-Z][a-zA-Z0-9]*(_[a-zA-Z0-9]+)*$/.test(recordName);
|
|
51
|
+
};
|
|
52
|
+
exports.isValidMetadataRecordName = isValidMetadataRecordName;
|
|
53
|
+
/**
|
|
54
|
+
* Returns true if the fieldname is a valid metadata record name
|
|
55
|
+
*
|
|
56
|
+
* @param fieldName record name of a metadata record
|
|
57
|
+
*/
|
|
58
|
+
const validateMetadataRecordName = (typeName) => {
|
|
59
|
+
// Regex makes sure that the field name is alpha numeric, doesn't end in an underscore
|
|
60
|
+
if (!(0, exports.isValidMetadataRecordName)(typeName)) {
|
|
61
|
+
throw new core_1.SfError(messages.getMessage('notAValidRecordNameError', [typeName]));
|
|
44
62
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
63
|
+
return typeName;
|
|
64
|
+
};
|
|
65
|
+
exports.validateMetadataRecordName = validateMetadataRecordName;
|
|
66
|
+
/**
|
|
67
|
+
* Returns true if name is below 40 characters
|
|
68
|
+
*
|
|
69
|
+
* @param name label name or plural label
|
|
70
|
+
*/
|
|
71
|
+
const validateLessThanForty = (name, message) => {
|
|
72
|
+
if (name.length > 40) {
|
|
73
|
+
throw new core_1.SfError(message);
|
|
52
74
|
}
|
|
53
|
-
|
|
54
|
-
|
|
75
|
+
return name;
|
|
76
|
+
};
|
|
77
|
+
exports.validateLessThanForty = validateLessThanForty;
|
|
55
78
|
//# sourceMappingURL=validationUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validationUtil.js","sourceRoot":"","sources":["../../../src/lib/helpers/validationUtil.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validationUtil.js","sourceRoot":"","sources":["../../../src/lib/helpers/validationUtil.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,2CAAqD;AACrD,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,IAAI,CAAC,oCAAoC,EAAE,YAAY,EAAE;IACjF,sBAAsB;IACtB,oBAAoB;IACpB,0BAA0B;CAC3B,CAAC,CAAC;AAEH;;;;GAIG;AACI,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,OAAgB,EAAU,EAAE;IACxE,mGAAmG;IACnG,sFAAsF;IACtF,mCAAmC;IACnC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChE,IAAI,YAAY,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,iDAAiD,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;QACrG,MAAM,IAAI,cAAO,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,QAAQ,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AATW,QAAA,eAAe,mBAS1B;AAEF;;;;GAIG;AACI,MAAM,wBAAwB,GAAG,CAAC,QAAgB,EAAU,EAAE;IACnE,qGAAqG;IACrG,sFAAsF;IACtF,qCAAqC;IACrC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACtD,IAAI,YAAY,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,mDAAmD,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;QACvG,MAAM,IAAI,cAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAC1E;IACD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AATW,QAAA,wBAAwB,4BASnC;AAEK,MAAM,yBAAyB,GAAG,CAAC,UAAkB,EAAW,EAAE;IACvE,OAAO,UAAU,CAAC,MAAM,IAAI,EAAE,IAAI,wCAAwC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9F,CAAC,CAAC;AAFW,QAAA,yBAAyB,6BAEpC;AACF;;;;GAIG;AACI,MAAM,0BAA0B,GAAG,CAAC,QAAgB,EAAU,EAAE;IACrE,sFAAsF;IACtF,IAAI,CAAC,IAAA,iCAAyB,EAAC,QAAQ,CAAC,EAAE;QACxC,MAAM,IAAI,cAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAChF;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AANW,QAAA,0BAA0B,8BAMrC;AAEF;;;;GAIG;AACI,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,OAAe,EAAU,EAAE;IAC7E,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE;QACpB,MAAM,IAAI,cAAO,CAAC,OAAO,CAAC,CAAC;KAC5B;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AALW,QAAA,qBAAqB,yBAKhC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Record } from 'jsforce';
|
|
2
|
+
import { CustomField } from 'jsforce/api/metadata';
|
|
2
3
|
export interface CreateConfig {
|
|
3
4
|
typename: string;
|
|
4
5
|
recordname: string;
|
|
@@ -6,7 +7,7 @@ export interface CreateConfig {
|
|
|
6
7
|
inputdir: string;
|
|
7
8
|
outputdir: string;
|
|
8
9
|
protected?: boolean;
|
|
9
|
-
varargs?:
|
|
10
|
+
varargs?: Record;
|
|
10
11
|
fileData?: CustomField[];
|
|
11
12
|
ignorefields?: boolean;
|
|
12
13
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CustomField } from 'jsforce/api/metadata';
|
|
1
2
|
export declare class Templates {
|
|
2
3
|
/**
|
|
3
4
|
* Using the given data and visibility, creates the body of a type metadata file
|
|
@@ -5,110 +6,19 @@ export declare class Templates {
|
|
|
5
6
|
* @param data
|
|
6
7
|
* @param visibility
|
|
7
8
|
*/
|
|
8
|
-
createObjectXML(
|
|
9
|
+
createObjectXML({ label, pluralLabel }: {
|
|
10
|
+
label: string;
|
|
11
|
+
pluralLabel: string;
|
|
12
|
+
}, visibility: string): string;
|
|
9
13
|
/**
|
|
10
14
|
* Using the given data and defaultToString, creates the body for a field file.
|
|
11
15
|
*
|
|
12
16
|
* @param data Record details
|
|
13
17
|
* @param defaultToString If the defaultToString set type to Text for unsupported field types
|
|
14
18
|
*/
|
|
15
|
-
createFieldXML(data:
|
|
16
|
-
createDefaultTypeStructure(fullName: string, type: string, label: string, picklistValues: string[], decimalplaces?: number):
|
|
17
|
-
|
|
18
|
-
defaultValue: string;
|
|
19
|
-
type: "Checkbox";
|
|
20
|
-
label: string;
|
|
21
|
-
unique?: undefined;
|
|
22
|
-
precision?: undefined;
|
|
23
|
-
scale?: undefined;
|
|
24
|
-
valueSet?: undefined;
|
|
25
|
-
length?: undefined;
|
|
26
|
-
visibleLines?: undefined;
|
|
27
|
-
} | {
|
|
28
|
-
fullName: string;
|
|
29
|
-
type: "Email";
|
|
30
|
-
label: string;
|
|
31
|
-
unique: string;
|
|
32
|
-
defaultValue?: undefined;
|
|
33
|
-
precision?: undefined;
|
|
34
|
-
scale?: undefined;
|
|
35
|
-
valueSet?: undefined;
|
|
36
|
-
length?: undefined;
|
|
37
|
-
visibleLines?: undefined;
|
|
38
|
-
} | {
|
|
39
|
-
fullName: string;
|
|
40
|
-
type: "Number";
|
|
41
|
-
label: string;
|
|
42
|
-
precision: number;
|
|
43
|
-
scale: number;
|
|
44
|
-
unique: string;
|
|
45
|
-
defaultValue?: undefined;
|
|
46
|
-
valueSet?: undefined;
|
|
47
|
-
length?: undefined;
|
|
48
|
-
visibleLines?: undefined;
|
|
49
|
-
} | {
|
|
50
|
-
fullName: string;
|
|
51
|
-
type: "Percent";
|
|
52
|
-
label: string;
|
|
53
|
-
precision: number;
|
|
54
|
-
scale: number;
|
|
55
|
-
defaultValue?: undefined;
|
|
56
|
-
unique?: undefined;
|
|
57
|
-
valueSet?: undefined;
|
|
58
|
-
length?: undefined;
|
|
59
|
-
visibleLines?: undefined;
|
|
60
|
-
} | {
|
|
61
|
-
fullName: string;
|
|
62
|
-
type: "Picklist";
|
|
63
|
-
label: string;
|
|
64
|
-
valueSet: {
|
|
65
|
-
restricted: string;
|
|
66
|
-
valueSetDefinition: {
|
|
67
|
-
sorted: string;
|
|
68
|
-
value: any[];
|
|
69
|
-
};
|
|
70
|
-
};
|
|
71
|
-
defaultValue?: undefined;
|
|
72
|
-
unique?: undefined;
|
|
73
|
-
precision?: undefined;
|
|
74
|
-
scale?: undefined;
|
|
75
|
-
length?: undefined;
|
|
76
|
-
visibleLines?: undefined;
|
|
77
|
-
} | {
|
|
78
|
-
fullName: string;
|
|
79
|
-
type: "Text";
|
|
80
|
-
label: string;
|
|
81
|
-
unique: string;
|
|
82
|
-
length: string;
|
|
83
|
-
defaultValue?: undefined;
|
|
84
|
-
precision?: undefined;
|
|
85
|
-
scale?: undefined;
|
|
86
|
-
valueSet?: undefined;
|
|
87
|
-
visibleLines?: undefined;
|
|
88
|
-
} | {
|
|
89
|
-
fullName: string;
|
|
90
|
-
type: "LongTextArea";
|
|
91
|
-
label: string;
|
|
92
|
-
length: string;
|
|
93
|
-
visibleLines: number;
|
|
94
|
-
defaultValue?: undefined;
|
|
95
|
-
unique?: undefined;
|
|
96
|
-
precision?: undefined;
|
|
97
|
-
scale?: undefined;
|
|
98
|
-
valueSet?: undefined;
|
|
99
|
-
} | {
|
|
100
|
-
fullName: string;
|
|
101
|
-
type: string;
|
|
102
|
-
label: string;
|
|
103
|
-
defaultValue?: undefined;
|
|
104
|
-
unique?: undefined;
|
|
105
|
-
precision?: undefined;
|
|
106
|
-
scale?: undefined;
|
|
107
|
-
valueSet?: undefined;
|
|
108
|
-
length?: undefined;
|
|
109
|
-
visibleLines?: undefined;
|
|
110
|
-
};
|
|
111
|
-
canConvert(type: any): boolean;
|
|
19
|
+
createFieldXML(data: CustomField, defaultToString: boolean): string;
|
|
20
|
+
createDefaultTypeStructure(fullName: string, type: string, label: string, picklistValues: string[], decimalplaces?: number): CustomField;
|
|
21
|
+
canConvert(type: string): boolean;
|
|
112
22
|
private getType;
|
|
113
23
|
private getConvertType;
|
|
114
24
|
private getFullName;
|
|
@@ -124,5 +34,4 @@ export declare class Templates {
|
|
|
124
34
|
private getVisibleLines;
|
|
125
35
|
private getDefaultValue;
|
|
126
36
|
private getValueSet;
|
|
127
|
-
private createPicklistValues;
|
|
128
37
|
}
|