Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion messages/deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,24 @@ Deploys an initialized and packaged Data Cloud code extension to a Salesforce or

<%= config.bin %> data-code-extension %s deploy --name my-package --package-version 1.0.0 --description "My package" --package-dir ./package --target-org myorg

- Deploy with specific a CPU size:
- Deploy with a specific CPU size:

<%= config.bin %> data-code-extension %s deploy --name my-package --package-version 1.0.0 --description "My package" --package-dir ./package --target-org myorg --cpu-size CPU_4XL

- Deploy with network configuration for Jupyter notebooks:

<%= config.bin %> data-code-extension %s deploy --name my-package --package-version 1.0.0 --description "My package" --package-dir ./package --target-org myorg --network host

# examples.function

- Deploy a function package to the org with alias "myorg":

<%= config.bin %> data-code-extension function deploy --name my-package --package-version 1.0.0 --description "My package" --package-dir ./package --target-org myorg --function-invoke-opt UnstructuredChunking

- Deploy with a specific CPU size:

<%= config.bin %> data-code-extension function deploy --name my-package --package-version 1.0.0 --description "My package" --package-dir ./package --target-org myorg --cpu-size CPU_4XL --function-invoke-opt UnstructuredChunking

# info.checkingPython

Checking Python version...
Expand Down
6 changes: 2 additions & 4 deletions src/base/deployBase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
import { Messages, Org } from '@salesforce/core';
import { DatacodeBinaryExecutor, type DatacodeDeployExecutionResult } from '../utils/datacodeBinaryExecutor.js';
import { checkEnvironment } from '../utils/environmentChecker.js';
import { sharedBaseFlags, type SharedResultProps } from './types.js';
import { type SharedResultProps } from './types.js';

Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
const messages = Messages.loadMessages('@salesforce/plugin-data-code-extension', 'deploy');
Expand All @@ -27,8 +27,7 @@ export type DeployResult = SharedResultProps & {

// eslint-disable-next-line sf-plugin/command-summary, sf-plugin/command-example
export abstract class DeployBase<TFlags extends BaseDeployFlags = BaseDeployFlags> extends SfCommand<DeployResult> {
// Override baseFlags to hide global flags
public static readonly baseFlags = sharedBaseFlags;
public static enableJsonFlag = false;

public static readonly flags = {
name: Flags.string({
Expand All @@ -38,7 +37,6 @@ export abstract class DeployBase<TFlags extends BaseDeployFlags = BaseDeployFlag
required: true,
}),
version: Flags.string({
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

char: 'v',
summary: messages.getMessage('flags.version.summary'),
description: messages.getMessage('flags.version.description'),
required: true,
Expand Down
5 changes: 2 additions & 3 deletions src/base/initBase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { SfCommand } from '@salesforce/sf-plugins-core';
import { Messages } from '@salesforce/core';
import { DatacodeBinaryExecutor, type DatacodeInitExecutionResult } from '../utils/datacodeBinaryExecutor.js';
import { checkEnvironment } from '../utils/environmentChecker.js';
import { sharedBaseFlags, type SharedResultProps } from './types.js';
import { type SharedResultProps } from './types.js';

export type BaseInitFlags = {
'package-dir': string;
Expand All @@ -14,8 +14,7 @@ export type InitResult = SharedResultProps & {

// eslint-disable-next-line sf-plugin/command-summary, sf-plugin/command-example
export abstract class InitBase extends SfCommand<InitResult> {
// Override baseFlags to hide global flags
public static readonly baseFlags = sharedBaseFlags;
public static enableJsonFlag = false;

public async run(): Promise<InitResult> {
const { flags } = (await this.parse(this.constructor as typeof InitBase)) as unknown as { flags: BaseInitFlags };
Expand Down
5 changes: 2 additions & 3 deletions src/base/runBase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { SfCommand } from '@salesforce/sf-plugins-core';
import { Messages, Org } from '@salesforce/core';
import { DatacodeBinaryExecutor, type DatacodeRunExecutionResult } from '../utils/datacodeBinaryExecutor.js';
import { checkEnvironment } from '../utils/environmentChecker.js';
import { sharedBaseFlags, type SharedResultProps } from './types.js';
import { type SharedResultProps } from './types.js';

export type BaseRunFlags = {
entrypoint: string;
Expand All @@ -20,8 +20,7 @@ export type RunResult = SharedResultProps & {

// eslint-disable-next-line sf-plugin/command-summary, sf-plugin/command-example
export abstract class RunBase extends SfCommand<RunResult> {
// Override baseFlags to hide global flags
public static readonly baseFlags = sharedBaseFlags;
public static enableJsonFlag = false;

public async run(): Promise<RunResult> {
const { flags } = (await this.parse(this.constructor as typeof RunBase)) as unknown as { flags: BaseRunFlags };
Expand Down
4 changes: 1 addition & 3 deletions src/base/scanBase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { SfCommand } from '@salesforce/sf-plugins-core';
import { Messages } from '@salesforce/core';
import { DatacodeBinaryExecutor, type ScanResult } from '../utils/datacodeBinaryExecutor.js';
import { checkEnvironment } from '../utils/environmentChecker.js';
import { sharedBaseFlags } from './types.js';

export type BaseScanFlags = {
entrypoint?: string;
Expand All @@ -13,8 +12,7 @@ export type BaseScanFlags = {

// eslint-disable-next-line sf-plugin/command-summary, sf-plugin/command-example
export abstract class ScanBase extends SfCommand<ScanResult> {
// Override baseFlags to hide global flags
public static readonly baseFlags = sharedBaseFlags;
public static enableJsonFlag = false;

public async run(): Promise<ScanResult> {
const { flags } = (await this.parse(this.constructor as typeof ScanBase)) as unknown as { flags: BaseScanFlags };
Expand Down
16 changes: 0 additions & 16 deletions src/base/types.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,7 @@
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
import { type PythonVersionInfo } from '../utils/pythonChecker.js';
import { type PipPackageInfo } from '../utils/pipChecker.js';
import { type DatacodeBinaryInfo } from '../utils/datacodeBinaryChecker.js';

// eslint-disable-next-line sf-plugin/no-hardcoded-messages-flags, sf-plugin/no-json-flag
export const sharedBaseFlags = {
...SfCommand.baseFlags,
'flags-dir': Flags.directory({
summary: 'Import flag values from a directory.',
helpGroup: 'GLOBAL',
hidden: false,
}),
json: Flags.boolean({
summary: 'Format output as json.',
helpGroup: 'GLOBAL',
hidden: true,
}),
};

export type SharedResultProps = {
success: boolean;
pythonVersion: PythonVersionInfo;
Expand Down
5 changes: 2 additions & 3 deletions src/base/zipBase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { SfCommand } from '@salesforce/sf-plugins-core';
import { Messages, SfError } from '@salesforce/core';
import { DatacodeBinaryExecutor, type DatacodeZipExecutionResult } from '../utils/datacodeBinaryExecutor.js';
import { checkEnvironment } from '../utils/environmentChecker.js';
import { sharedBaseFlags, type SharedResultProps } from './types.js';
import { type SharedResultProps } from './types.js';

export type BaseZipFlags = {
'package-dir': string;
Expand All @@ -17,8 +17,7 @@ export type ZipResult = SharedResultProps & {

// eslint-disable-next-line sf-plugin/command-summary, sf-plugin/command-example
export abstract class ZipBase extends SfCommand<ZipResult> {
// Override baseFlags to hide global flags
public static readonly baseFlags = sharedBaseFlags;
public static enableJsonFlag = false;

public async run(): Promise<ZipResult> {
const { flags } = (await this.parse(this.constructor as typeof ZipBase)) as unknown as { flags: BaseZipFlags };
Expand Down
6 changes: 2 additions & 4 deletions src/commands/data-code-extension/function/deploy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,15 @@ export type FunctionDeployFlags = BaseDeployFlags & {
export default class Deploy extends DeployBase<FunctionDeployFlags> {
public static readonly summary = messages.getMessage('summary', ['function']);
public static readonly description = messages.getMessage('description');
public static readonly examples = messages
// eslint-disable-next-line sf-plugin/no-missing-messages
.getMessages('examples')
.map((example) => example.replace(/%s/g, 'function'));
public static readonly examples = messages.getMessages('examples.function');
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


public static readonly flags = {
...DeployBase.flags,
// Function-specific flag
'function-invoke-opt': Flags.string({
summary: messages.getMessage('flags.functionInvokeOpt.summary'),
description: messages.getMessage('flags.functionInvokeOpt.description'),
options: ['UnstructuredChunking'],
required: true,
}),
};
Expand Down
9 changes: 1 addition & 8 deletions src/commands/data-code-extension/function/init.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,7 @@ const messages = Messages.loadMessages('@salesforce/plugin-data-code-extension',
export default class Init extends InitBase {
public static readonly summary = messages.getMessage('summary', ['function']);
public static readonly description = messages.getMessage('description');
public static readonly examples = ((): string[] => {
try {
// eslint-disable-next-line sf-plugin/no-missing-messages
return messages.getMessages('examples').map((example) => example.replace(/%s/g, 'function'));
} catch {
return [];
}
})();
public static readonly examples = messages.getMessages('examples', ['function', 'function', 'function']);

public static readonly flags = {
...InitBase.flags,
Expand Down
5 changes: 1 addition & 4 deletions src/commands/data-code-extension/function/run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,7 @@ const messages = Messages.loadMessages('@salesforce/plugin-data-code-extension',
export default class Run extends RunBase {
public static readonly summary = messages.getMessage('summary', ['function']);
public static readonly description = messages.getMessage('description');
public static readonly examples = messages
// eslint-disable-next-line sf-plugin/no-missing-messages
.getMessages('examples')
.map((example) => example.replace(/%s/g, 'function'));
public static readonly examples = messages.getMessages('examples', ['function', 'function', 'function', 'function']);

public static readonly flags = {
entrypoint: Flags.file({
Expand Down
12 changes: 8 additions & 4 deletions src/commands/data-code-extension/function/scan.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@ const messages = Messages.loadMessages('@salesforce/plugin-data-code-extension',
export default class Scan extends ScanBase {
public static readonly summary = messages.getMessage('summary', ['function']);
public static readonly description = messages.getMessage('description');
public static readonly examples = messages
// eslint-disable-next-line sf-plugin/no-missing-messages
.getMessages('examples')
.map((example) => example.replace(/%s/g, 'function'));
public static readonly examples = messages.getMessages('examples', [
'function',
'function',
'function',
'function',
'function',
'function',
]);

public static readonly flags = {
entrypoint: Flags.string({
Expand Down
11 changes: 7 additions & 4 deletions src/commands/data-code-extension/function/zip.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,13 @@ const messages = Messages.loadMessages('@salesforce/plugin-data-code-extension',
export default class Zip extends ZipBase {
public static readonly summary = messages.getMessage('summary', ['function']);
public static readonly description = messages.getMessage('description');
public static readonly examples = messages
// eslint-disable-next-line sf-plugin/no-missing-messages
.getMessages('examples')
.map((example) => example.replace(/%s/g, 'function'));
public static readonly examples = messages.getMessages('examples', [
'function',
'function',
'function',
'function',
'function',
]);

public static readonly flags = {
'package-dir': Flags.directory({
Expand Down
9 changes: 1 addition & 8 deletions src/commands/data-code-extension/script/init.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,7 @@ const messages = Messages.loadMessages('@salesforce/plugin-data-code-extension',
export default class Init extends InitBase {
public static readonly summary = messages.getMessage('summary', ['script']);
public static readonly description = messages.getMessage('description');
public static readonly examples = ((): string[] => {
try {
// eslint-disable-next-line sf-plugin/no-missing-messages
return messages.getMessages('examples').map((example) => example.replace(/%s/g, 'script'));
} catch {
return [];
}
})();
public static readonly examples = messages.getMessages('examples', ['script', 'script', 'script']);

public static readonly flags = {
...InitBase.flags,
Expand Down
3 changes: 1 addition & 2 deletions src/commands/data-code-extension/script/run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ const messages = Messages.loadMessages('@salesforce/plugin-data-code-extension',
export default class Run extends RunBase {
public static readonly summary = messages.getMessage('summary', ['script']);
public static readonly description = messages.getMessage('description');
// eslint-disable-next-line sf-plugin/no-missing-messages
public static readonly examples = messages.getMessages('examples').map((example) => example.replace(/%s/g, 'script'));
public static readonly examples = messages.getMessages('examples', ['script', 'script', 'script', 'script']);

public static readonly flags = {
entrypoint: Flags.file({
Expand Down
10 changes: 8 additions & 2 deletions src/commands/data-code-extension/script/scan.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,14 @@ const messages = Messages.loadMessages('@salesforce/plugin-data-code-extension',
export default class Scan extends ScanBase {
public static readonly summary = messages.getMessage('summary', ['script']);
public static readonly description = messages.getMessage('description');
// eslint-disable-next-line sf-plugin/no-missing-messages
public static readonly examples = messages.getMessages('examples').map((example) => example.replace(/%s/g, 'script'));
public static readonly examples = messages.getMessages('examples', [
'script',
'script',
'script',
'script',
'script',
'script',
]);

public static readonly flags = {
entrypoint: Flags.string({
Expand Down
9 changes: 7 additions & 2 deletions src/commands/data-code-extension/script/zip.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,13 @@ const messages = Messages.loadMessages('@salesforce/plugin-data-code-extension',
export default class Zip extends ZipBase {
public static readonly summary = messages.getMessage('summary', ['script']);
public static readonly description = messages.getMessage('description');
// eslint-disable-next-line sf-plugin/no-missing-messages
public static readonly examples = messages.getMessages('examples').map((example) => example.replace(/%s/g, 'script'));
public static readonly examples = messages.getMessages('examples', [
'script',
'script',
'script',
'script',
'script',
]);

public static readonly flags = {
'package-dir': Flags.directory({
Expand Down
11 changes: 5 additions & 6 deletions test/commands/data-code-extension/deploy.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ describe('data-code-extension deploy', () => {
'--target-org',
'test@example.com',
'--function-invoke-opt',
'sync',
'UnstructuredChunking',
]);

expect(sfCommandStubs.log.calledWith('Data Code Extension deployment completed successfully!')).to.be.true;
Expand All @@ -233,10 +233,10 @@ describe('data-code-extension deploy', () => {
'--target-org',
'test@example.com',
'--function-invoke-opt',
'sync',
'UnstructuredChunking',
]);

expect(binaryDeployStub.firstCall.args[7]).to.equal('sync');
expect(binaryDeployStub.firstCall.args[7]).to.equal('UnstructuredChunking');
});

it('should validate CPU size options', async () => {
Expand Down Expand Up @@ -278,7 +278,7 @@ describe('data-code-extension deploy', () => {
'--target-org',
'test@example.com',
'--function-invoke-opt',
'sync',
'UnstructuredChunking',
]);
expect.fail('Should have thrown an error');
} catch (error) {
Expand All @@ -303,7 +303,7 @@ describe('data-code-extension deploy', () => {
'--target-org',
'test@example.com',
'--function-invoke-opt',
'sync',
'UnstructuredChunking',
]);
expect.fail('Should have thrown an error');
} catch (error) {
Expand Down Expand Up @@ -360,7 +360,6 @@ describe('data-code-extension deploy', () => {
testDir,
'--target-org',
'test@example.com',
'--json',
]);

expect(result).to.have.property('success', true);
Expand Down
Loading
Loading