Skip to content

Commit 08cd236

Browse files
authored
feat: version bumped and table adjusted
1 parent bf19a1a commit 08cd236

9 files changed

Lines changed: 4776 additions & 5517 deletions

File tree

.eslintrc.cjs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
module.exports = {
22
extends: ['eslint-config-salesforce-typescript', 'plugin:sf-plugin/recommended'],
3+
ignorePatterns: [
4+
'.eslintrc.cjs',
5+
'dist',
6+
'node_modules'
7+
]
38
};

messages/connected-objects.upsert.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,6 @@ Print the changed fields into the outcome table
4343

4444
Recipes not found in the repository
4545

46-
# nothing.changed
47-
48-
Nothing changed
49-
5046
# connector.not.found
5147

5248
Connector named %s not found. Create an empty data connection to proceed

package.json

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,22 @@
44
"version": "1.1.3",
55
"author": "Luca Bassani",
66
"dependencies": {
7-
"@oclif/core": "^3.22.0",
8-
"@salesforce/core": "^6.7.0",
9-
"@salesforce/sf-plugins-core": "^7.1.14",
10-
"@salesforce/source-deploy-retrieve": "^10.5.1"
7+
"@oclif/core": "^4",
8+
"@salesforce/core": "^8.25.1",
9+
"@salesforce/sf-plugins-core": "^12.2.6",
10+
"@salesforce/source-deploy-retrieve": "^12.32.1",
11+
"@salesforce/kit": "^3.2.4",
12+
"@salesforce/ts-types": "^2.0.12"
1113
},
1214
"devDependencies": {
13-
"@oclif/plugin-command-snapshot": "^5.1.0",
14-
"@salesforce/cli-plugins-testkit": "^5.1.10",
15-
"@salesforce/dev-scripts": "^8.4.2",
16-
"@types/mocha": "^10.0.6",
17-
"eslint-plugin-sf-plugin": "^1.17.4",
18-
"oclif": "^4.5.0",
19-
"shx": "^0.3.4",
15+
"@oclif/plugin-command-snapshot": "^5.3.15",
16+
"@salesforce/cli-plugins-testkit": "^5.3.52",
17+
"@salesforce/dev-scripts": "^11.0.4",
18+
"@salesforce/plugin-command-reference": "^3.1.88",
19+
"eslint-plugin-sf-plugin": "^1.20.33",
20+
"oclif": "^4.22.96",
2021
"ts-node": "^10.9.2",
21-
"typescript": "^5.3.3"
22+
"typescript": "^5.9.3"
2223
},
2324
"engines": {
2425
"node": ">=18.0.0"

src/commands/analytics/connected-objects/upsert.ts

Lines changed: 20 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@ import { Messages, SfError } from '@salesforce/core';
44
import { MetadataHelper } from '../../../metadataHelper.js';
55
import { ApiHelper } from '../../../apiHelper.js';
66
import { RecipeDefinition, LoadDefinitionNodeParam, ReplicatedDataset } from '../../../modules/upsert.js';
7-
import { PrinterHelper } from '../../../printerHelper.js';
87

98
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
109
const messages = Messages.loadMessages('plugin-analytics-connected-objects', 'connected-objects.upsert');
1110
const common = Messages.loadMessages('plugin-analytics-connected-objects', 'common');
1211

13-
export interface ConnectedObjectUpsertResult {
12+
export type ConnectedObjectUpsertResult = {
1413
[key: string]: string | boolean | string[] | number | undefined;
1514
objectName: string;
1615
connectorName: string;
@@ -33,8 +32,7 @@ export default class ConnectedObjectsUpsert extends SfCommand<ConnectedObjectUps
3332
'target-org': Flags.requiredOrg({
3433
char: 'o',
3534
summary: common.getMessage('flags.target-org.summary'),
36-
description: common.getMessage('flags.target-org.description'),
37-
required: true,
35+
description: common.getMessage('flags.target-org.description')
3836
}),
3937
'recipe-names': Flags.string({
4038
char: 'n',
@@ -50,7 +48,7 @@ export default class ConnectedObjectsUpsert extends SfCommand<ConnectedObjectUps
5048
}),
5149
verbose: Flags.boolean({
5250
summary: messages.getMessage('flags.verbose.summary'),
53-
}),
51+
})
5452
};
5553

5654
public async run(): Promise<ConnectedObjectUpsertResult[]> {
@@ -114,7 +112,6 @@ export default class ConnectedObjectsUpsert extends SfCommand<ConnectedObjectUps
114112
}
115113
const fieldSet = objectFields.get(dataset.sourceObjectName) as Set<string>;
116114
const { changedFields, missingFields } = await service.updateReplicatedDatasetFields(dataset.id, fieldSet);
117-
118115
if (missingFields.length > 0) {
119116
const message = messages.getMessage('fields.not.found', [
120117
objectName,
@@ -123,11 +120,10 @@ export default class ConnectedObjectsUpsert extends SfCommand<ConnectedObjectUps
123120
]);
124121
warnMessages.push(message);
125122
}
126-
if (changedFields.length > 0) {
127-
const item = resultMap.get(dataset.sourceObjectName) as ConnectedObjectUpsertResult;
128-
item.fields = changedFields;
129-
item.fieldsCount = changedFields.length;
130-
}
123+
const item = resultMap.get(dataset.sourceObjectName) as ConnectedObjectUpsertResult;
124+
item.fields = changedFields;
125+
item.fieldsCount = changedFields.length;
126+
item.operation = changedFields.length === 0 ? 'Unchanged' : item.isNew ? 'Created' : 'Updated';
131127
current++;
132128
progressBar.update(current);
133129
}
@@ -142,15 +138,8 @@ export default class ConnectedObjectsUpsert extends SfCommand<ConnectedObjectUps
142138
this.warn(warnMessage);
143139
}
144140
}
145-
146-
const result: ConnectedObjectUpsertResult[] = Array.from(resultMap.values()).filter(
147-
(x) => x.fields && x.fields.length > 0
148-
);
149-
if (result.length > 0) {
150-
this.printConnectionUpgradeResult(result, flags.verbose);
151-
} else {
152-
this.log(messages.getMessage('nothing.changed'));
153-
}
141+
const result: ConnectedObjectUpsertResult[] = Array.from(resultMap.values());
142+
this.printConnectionUpgradeResult(result);
154143
return result;
155144
}
156145

@@ -184,25 +173,16 @@ export default class ConnectedObjectsUpsert extends SfCommand<ConnectedObjectUps
184173
return response;
185174
}
186175

187-
private printConnectionUpgradeResult(records: ConnectedObjectUpsertResult[], verbose: boolean): void {
188-
this.table(
189-
records,
190-
{
191-
objectName: { header: 'OBJECT' },
192-
connectorName: { header: 'CONNECTOR' },
193-
isNEW: {
194-
header: 'OPERATION',
195-
get: (data): string => (data.isNew ? 'Create' : 'Update'),
196-
},
197-
fieldsCount: { header: 'FIELDSCOUNT' },
198-
fields: {
199-
header: 'FIELDS',
200-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
201-
get: (data): string => PrinterHelper.printFieldsMultiline(data.fields!, 60),
202-
extended: !verbose,
203-
},
204-
},
205-
{ title: 'Changed connected-objects' }
206-
);
176+
private printConnectionUpgradeResult(records: ConnectedObjectUpsertResult[]): void {
177+
const columns = [
178+
{ key: 'objectName', name: 'Object' },
179+
{ key: 'connectorName', name: 'Connector' },
180+
{ key: 'operation', name: 'Operation' },
181+
{ key: 'fieldsCount', name: 'Added Fields' }
182+
];
183+
this.table({
184+
data: records,
185+
columns
186+
});
207187
}
208188
}

src/printerHelper.ts

Lines changed: 0 additions & 20 deletions
This file was deleted.

test/commands/analytics/connected-objects/upsert.nut.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ describe('analytics connected-objects upsert NUTs', () => {
3838
connectorName: 'SFDC_LOCAL',
3939
objectName: 'User',
4040
isNew: true,
41+
operation: 'Created',
4142
fields: ['Id', 'Username'],
4243
fieldsCount: 2,
4344
},
@@ -55,6 +56,7 @@ describe('analytics connected-objects upsert NUTs', () => {
5556
connectorName: 'SFDC_LOCAL',
5657
objectName: 'User',
5758
isNew: false,
59+
operation: 'Updated',
5860
fields: [
5961
'LastName',
6062
'FirstName',
@@ -75,6 +77,7 @@ describe('analytics connected-objects upsert NUTs', () => {
7577
connectorName: 'SFDC_LOCAL',
7678
objectName: 'Profile',
7779
isNew: true,
80+
operation: 'Created',
7881
fields: ['Id', 'Name'],
7982
fieldsCount: 2,
8083
},

test/commands/analytics/connected-objects/upsert.test.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import path, { resolve } from 'node:path';
44
import { fileURLToPath } from 'node:url';
55
import { expect } from 'chai';
6-
import { TestContext, MockTestOrgData } from '@salesforce/core/lib/testSetup.js';
6+
import { TestContext, MockTestOrgData } from '@salesforce/core/testSetup';
77
import { ensureJsonMap, AnyJson } from '@salesforce/ts-types';
88
import { Config } from '@oclif/core';
99
import { ComponentSet, ComponentSetBuilder, LazyCollection, SourceComponent } from '@salesforce/source-deploy-retrieve';
@@ -63,6 +63,7 @@ describe('analytics recipe run', () => {
6363
{
6464
objectName: 'User',
6565
isNew: true,
66+
operation: 'Created',
6667
fields: recipeFields,
6768
fieldsCount: recipeFields.length,
6869
connectorName: 'SFDC_LOCAL',
@@ -87,6 +88,7 @@ describe('analytics recipe run', () => {
8788
{
8889
objectName: 'User',
8990
isNew: false,
91+
operation: 'Updated',
9092
fields: [USERNAME],
9193
fieldsCount: 1,
9294
connectorName: 'SFDC_LOCAL',
@@ -122,7 +124,8 @@ describe('analytics recipe run', () => {
122124
);
123125
const cmd = new ConnectedObjectsUpsert([...commandParams, '--json', '--verbose'], config);
124126
const result = await cmd.run();
125-
expect(result).to.lengthOf(0);
127+
expect(result).to.lengthOf(1);
128+
expect(result[0].fieldsCount).to.equal(0);
126129
});
127130
});
128131

test/tsconfig.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"extends": "@salesforce/dev-config/tsconfig-test-strict-esm",
33
"include": ["./**/*.ts"],
44
"compilerOptions": {
5-
"skipLibCheck": true,
6-
"strictNullChecks": true
5+
"types": ["mocha", "node"],
6+
"skipLibCheck": true
77
}
88
}

0 commit comments

Comments
 (0)