Skip to content

Commit 179e2b6

Browse files
remove duplicate code
1 parent 4310747 commit 179e2b6

File tree

2 files changed

+6
-55
lines changed

2 files changed

+6
-55
lines changed

packages/cli/src/commands/generate-test-payload.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,9 @@ import { autoPrompt } from '../lib/prompt'
77
import { loadDestination } from '../lib/destinations'
88
import { DestinationDefinition } from '../lib/destinations'
99
import { InputField, BaseActionDefinition } from '@segment/actions-core'
10-
import {
11-
generateSamplePayloadFromMapping,
12-
generateAudienceSettings,
13-
addAudienceSettingsToPayload,
14-
generateSampleFromSchema
15-
} from '../lib/payload-generator/payload'
16-
import { generateDestinationSettings } from '../lib/payload-generator/settings'
10+
import { generateSamplePayloadFromMapping, addAudienceSettingsToPayload } from '../lib/payload-generator/payload'
11+
import { generateDestinationSettings, generateSampleFromSchema } from '../lib/payload-generator/settings'
12+
import { generateAudienceSettings } from '../lib/payload-generator/audience'
1713
import {
1814
API_ENDPOINTS,
1915
ApiEndpoint,

packages/cli/src/lib/payload-generator/payload.ts

Lines changed: 3 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,11 @@
11
import Chance from 'chance'
22
import { get, set } from 'lodash'
3-
import { isDirective, InputField, GlobalSetting, AudienceDestinationDefinition } from '@segment/actions-core'
3+
import { isDirective, InputField } from '@segment/actions-core'
44
import { getRawKeys } from '@segment/actions-core/mapping-kit/value-keys'
55
import { ErrorCondition, GroupCondition, parseFql } from '@segment/destination-subscriptions'
66
import { reconstructSegmentEvent } from '../event-generator'
7-
/**
8-
* Generates sample settings based on schema.
9-
*/
10-
export function generateSampleFromSchema(schema: Record<string, GlobalSetting>): Record<string, any> {
11-
const result: Record<string, any> = {}
12-
for (const [propName, setting] of Object.entries(schema)) {
13-
if (setting.default !== undefined) {
14-
result[propName] = setting.default
15-
} else {
16-
result[propName] = generatePlaceholderForSchema(setting)
17-
}
18-
}
19-
20-
return result
21-
}
22-
23-
/**
24-
* Generates a placeholder value based on schema type.
25-
*/
26-
export function generatePlaceholderForSchema(schema: GlobalSetting): any {
27-
const type = schema.type
28-
29-
switch (type) {
30-
case 'string':
31-
if (schema.choices) {
32-
return schema.choices[0]
33-
}
34-
return `<${schema.label || 'VALUE'}>`
35-
case 'number':
36-
return 0
37-
case 'boolean':
38-
return false
39-
case 'password':
40-
return `<${schema.label || 'PASSWORD'}>`
41-
default:
42-
return null
43-
}
44-
}
45-
46-
/**
47-
* Generates audience settings based on the destination definition.
48-
*/
49-
export function generateAudienceSettings(destination: any): Record<string, any> {
50-
return {
51-
...(destination as AudienceDestinationDefinition)?.audienceFields
52-
}
53-
}
7+
import { generateSampleFromSchema } from './settings'
8+
import { generateAudienceSettings } from './audience'
549

5510
/**
5611
* Adds audience settings to a payload if applicable.

0 commit comments

Comments
 (0)