@salesforce/templates 66.10.4 → 66.11.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.
@@ -12,14 +12,21 @@ const utils_1 = require("../utils");
12
12
  const baseGenerator_1 = require("./baseGenerator");
13
13
  class ApexClassGenerator extends baseGenerator_1.BaseGenerator {
14
14
  validateOptions() {
15
+ var _a;
15
16
  utils_1.CreateUtil.checkInputs(this.options.template);
16
17
  utils_1.CreateUtil.checkInputs(this.options.classname);
18
+ if (this.options.template === 'Batchable' &&
19
+ ((_a = this.options.sobjecttype) === null || _a === void 0 ? void 0 : _a.trim())) {
20
+ utils_1.CreateUtil.checkSObjectType(this.options.sobjecttype.trim());
21
+ }
17
22
  }
18
23
  generate() {
19
24
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
20
- const { template, classname } = this.options;
25
+ const { template, classname, sobjecttype } = this.options;
21
26
  this.sourceRootWithPartialPath('apexclass');
22
- yield this.render(this.templatePath(`${template}.cls`), this.destinationPath(path.join(this.outputdir, `${classname}.cls`)), { apiName: classname });
27
+ yield this.render(this.templatePath(`${template}.cls`), this.destinationPath(path.join(this.outputdir, `${classname}.cls`)), Object.assign({ apiName: classname }, (template === 'Batchable' && {
28
+ sobjectType: (sobjecttype === null || sobjecttype === void 0 ? void 0 : sobjecttype.trim()) || 'SObject',
29
+ })));
23
30
  yield this.render(this.templatePath('_class.cls-meta.xml'), this.destinationPath(path.join(this.outputdir, `${classname}.cls-meta.xml`)), { apiName: classname, apiVersion: this.apiversion });
24
31
  });
25
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"apexClassGenerator.js","sourceRoot":"","sources":["../../src/generators/apexClassGenerator.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,6BAA6B;AAC7B,oCAAsC;AAEtC,mDAAgD;AAEhD,MAAqB,kBAAmB,SAAQ,6BAA+B;IACtE,eAAe;QACpB,kBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9C,kBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAEY,QAAQ;;YACnB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7C,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;YAE5C,MAAM,IAAI,CAAC,MAAM,CACf,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,MAAM,CAAC,EACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,MAAM,CAAC,CAAC,EACnE,EAAE,OAAO,EAAE,SAAS,EAAE,CACvB,CAAC;YAEF,MAAM,IAAI,CAAC,MAAM,CACf,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,EACxC,IAAI,CAAC,eAAe,CAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,eAAe,CAAC,CACvD,EACD,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CACpD,CAAC;QACJ,CAAC;KAAA;CACF;AAxBD,qCAwBC"}
1
+ {"version":3,"file":"apexClassGenerator.js","sourceRoot":"","sources":["../../src/generators/apexClassGenerator.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,6BAA6B;AAC7B,oCAAsC;AAEtC,mDAAgD;AAEhD,MAAqB,kBAAmB,SAAQ,6BAA+B;IACtE,eAAe;;QACpB,kBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9C,kBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/C,IACE,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,WAAW;aACrC,MAAA,IAAI,CAAC,OAAO,CAAC,WAAW,0CAAE,IAAI,EAAE,CAAA,EAChC,CAAC;YACD,kBAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAEY,QAAQ;;YACnB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YAC1D,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;YAE5C,MAAM,IAAI,CAAC,MAAM,CACf,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,MAAM,CAAC,EACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,MAAM,CAAC,CAAC,kBAEjE,OAAO,EAAE,SAAS,IACf,CAAC,QAAQ,KAAK,WAAW,IAAI;gBAC9B,WAAW,EAAE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,EAAE,KAAI,SAAS;aAC9C,CAAC,EAEL,CAAC;YAEF,MAAM,IAAI,CAAC,MAAM,CACf,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,EACxC,IAAI,CAAC,eAAe,CAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,eAAe,CAAC,CACvD,EACD,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CACpD,CAAC;QACJ,CAAC;KAAA;CACF;AAnCD,qCAmCC"}
@@ -38,6 +38,7 @@ export declare const messages: {
38
38
  MissingFlexipageTemplate: string;
39
39
  FailedToLoadFlexipageTemplatesRepo: string;
40
40
  AlphaNumericValidationError: string;
41
+ InvalidSObjectType: string;
41
42
  InvalidLightningEmbeddingSrcUrl: string;
42
43
  InvalidLightningEmbeddingSrcChar: string;
43
44
  InvalidLightningEmbeddingSandboxToken: string;
package/lib/i18n/i18n.js CHANGED
@@ -47,6 +47,7 @@ exports.messages = {
47
47
  MissingFlexipageTemplate: 'FlexiPage template "%s" not found in repository: %s. Please verify the template name is correct.',
48
48
  FailedToLoadFlexipageTemplatesRepo: 'Failed to load the FlexiPage templates repository. Please verify the URL is correct and accessible.',
49
49
  AlphaNumericValidationError: '%s must contain only alphanumeric characters.',
50
+ InvalidSObjectType: 'Invalid sobjecttype "%s". It must be a valid SObject API name: start with a letter, contain only letters, numbers, and underscores, and not end with an underscore.',
50
51
  InvalidLightningEmbeddingSrcUrl: 'The --src flag must be an absolute https URL (e.g., https://app.example.com). Plain http is only allowed for localhost or 127.0.0.1.',
51
52
  InvalidLightningEmbeddingSrcChar: 'The --src flag must not contain a single-quote character; it would break the generated JavaScript string literal.',
52
53
  InvalidLightningEmbeddingSandboxToken: 'Invalid sandbox tokens: %s. Valid tokens are: %s.',
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/i18n/i18n.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;;;;;;;;GASG;AACU,QAAA,QAAQ,GAAG;IACtB,qBAAqB,EAAE,iDAAiD;IACxE,4BAA4B,EAAE,gCAAgC;IAC9D,sBAAsB,EAAE,oCAAoC;IAC5D,qBAAqB,EAAE,+CAA+C;IACtE,eAAe,EAAE,uDAAuD;IAExE,uBAAuB,EACrB,sEAAsE;IACxE,cAAc,EAAE,2DAA2D;IAC3E,aAAa,EAAE,0DAA0D;IACzE,mBAAmB,EACjB,yDAAyD;IAC3D,oBAAoB,EAClB,0DAA0D;IAC5D,iCAAiC,EAC/B,kDAAkD;IAEpD,6BAA6B,EAC3B,iDAAiD;IACnD,qCAAqC,EACnC,gEAAgE;IAClE,iCAAiC,EAC/B,iEAAiE;IACnE,6BAA6B,EAAE,6CAA6C;IAC5E,0CAA0C,EACxC,oEAAoE;IACtE,kBAAkB,EAAE,gCAAgC;IACpD,wBAAwB,EAAE,8BAA8B;IACxD,oBAAoB,EAAE,0BAA0B;IAChD,wBAAwB,EAAE,8BAA8B;IACxD,aAAa,EAAE,kBAAkB;IACjC,SAAS,EAAE,qBAAqB;IAChC,oBAAoB,EAAE,kCAAkC;IACxD,wBAAwB,EACtB,0DAA0D;IAC5D,4BAA4B,EAC1B,yGAAyG;IAC3G,sBAAsB,EACpB,mHAAmH;IACrH,wBAAwB,EACtB,kGAAkG;IACpG,kCAAkC,EAChC,qGAAqG;IAEvG,2BAA2B,EAAE,+CAA+C;IAE5E,+BAA+B,EAC7B,sIAAsI;IACxI,gCAAgC,EAC9B,mHAAmH;IACrH,qCAAqC,EACnC,mDAAmD;IACrD,mCAAmC,EACjC,uGAAuG;IACzG,uCAAuC,EACrC,gHAAgH;IAClH,wBAAwB,EACtB,8EAA8E;CACjF,CAAC"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/i18n/i18n.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;;;;;;;;GASG;AACU,QAAA,QAAQ,GAAG;IACtB,qBAAqB,EAAE,iDAAiD;IACxE,4BAA4B,EAAE,gCAAgC;IAC9D,sBAAsB,EAAE,oCAAoC;IAC5D,qBAAqB,EAAE,+CAA+C;IACtE,eAAe,EAAE,uDAAuD;IAExE,uBAAuB,EACrB,sEAAsE;IACxE,cAAc,EAAE,2DAA2D;IAC3E,aAAa,EAAE,0DAA0D;IACzE,mBAAmB,EACjB,yDAAyD;IAC3D,oBAAoB,EAClB,0DAA0D;IAC5D,iCAAiC,EAC/B,kDAAkD;IAEpD,6BAA6B,EAC3B,iDAAiD;IACnD,qCAAqC,EACnC,gEAAgE;IAClE,iCAAiC,EAC/B,iEAAiE;IACnE,6BAA6B,EAAE,6CAA6C;IAC5E,0CAA0C,EACxC,oEAAoE;IACtE,kBAAkB,EAAE,gCAAgC;IACpD,wBAAwB,EAAE,8BAA8B;IACxD,oBAAoB,EAAE,0BAA0B;IAChD,wBAAwB,EAAE,8BAA8B;IACxD,aAAa,EAAE,kBAAkB;IACjC,SAAS,EAAE,qBAAqB;IAChC,oBAAoB,EAAE,kCAAkC;IACxD,wBAAwB,EACtB,0DAA0D;IAC5D,4BAA4B,EAC1B,yGAAyG;IAC3G,sBAAsB,EACpB,mHAAmH;IACrH,wBAAwB,EACtB,kGAAkG;IACpG,kCAAkC,EAChC,qGAAqG;IAEvG,2BAA2B,EAAE,+CAA+C;IAE5E,kBAAkB,EAChB,qKAAqK;IAEvK,+BAA+B,EAC7B,sIAAsI;IACxI,gCAAgC,EAC9B,mHAAmH;IACrH,qCAAqC,EACnC,mDAAmD;IACrD,mCAAmC,EACjC,uGAAuG;IACzG,uCAAuC,EACrC,gHAAgH;IAClH,wBAAwB,EACtB,8EAA8E;CACjF,CAAC"}
@@ -0,0 +1,15 @@
1
+ public with sharing class <%= apiName %> implements Database.Batchable<<%= sobjectType %>>, Database.RaisesPlatformEvents {
2
+
3
+ public Database.QueryLocator start(Database.BatchableContext context) {
4
+ // TODO: add a WHERE clause to filter records
5
+ return Database.getQueryLocator([SELECT Id FROM <%= sobjectType %>]);
6
+ }
7
+
8
+ public void execute(Database.BatchableContext context, List<<%= sobjectType %>> scope) {
9
+
10
+ }
11
+
12
+ public void finish(Database.BatchableContext context) {
13
+
14
+ }
15
+ }
@@ -0,0 +1,13 @@
1
+ public with sharing class <%= apiName %> implements Queueable, Finalizer {
2
+
3
+ public void execute(QueueableContext context) {
4
+ System.attachFinalizer(this);
5
+ // TODO: implement job logic here
6
+ }
7
+
8
+ public void execute(FinalizerContext context) {
9
+ if (context.getResult() == ParentJobResult.UNHANDLED_EXCEPTION) {
10
+ // handle failure
11
+ }
12
+ }
13
+ }