-
Notifications
You must be signed in to change notification settings - Fork 2
/
dynamic-values.ts
99 lines (93 loc) · 2.54 KB
/
dynamic-values.ts
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import Paw from 'types/paw'
const ENVIRONMENT_DYNAMIC_VALUE =
'com.luckymarmot.EnvironmentVariableDynamicValue'
const REQUEST_DYNAMIC_VALUE = 'com.luckymarmot.RequestVariableDynamicValue'
const FILE_DYNAMIC_VALUE = 'com.luckymarmot.FileContentDynamicValue'
/**
* @exports createDynamicValue
* @summary
* - renamed from `makeDv`
*
* @param {Object<createDynamicValueParams>} opts -
* @returns {DynamicValue} class instance
*/
export const createDynamicValue = (
type: string,
props?: { [key: string]: any },
): DynamicValue => new DynamicValue(type, props)
/**
* @exports createDynamicString
* @summary
* - renamed from `makeDs`
*
* @param {Array<DynamicStringComponent>} prop
* @returns {DynamicString} class instance
*/
export const createDynamicString = (
...prop: DynamicStringComponent[]
): DynamicString => new DynamicString(...prop)
/**
* @exports createEnvironmentValues
* @summary
* - renamed from `makeEnvDv`
*
* @param {String} variableUUID -
* @returns {DynamicValue} class instance
*/
export const createEnvDynamicValue = (
environmentVariable: string,
): DynamicValue =>
createDynamicValue(ENVIRONMENT_DYNAMIC_VALUE, {
environmentVariable,
})
/**
* @exports createRequestValues
* @summary
* - renamed from `makeRequestDv`
*
* @param {String} variableUUID -
* @returns {DynamicValue} class instance
*/
export const createRequestValues = (variableId: string) =>
createDynamicValue(REQUEST_DYNAMIC_VALUE, { variableId })
/**
* @exports createFileValues
* @summary
*
* @returns {DynamicValue} class instance
*/
export const createFileValues = (): DynamicValue =>
createDynamicValue(FILE_DYNAMIC_VALUE, { bookmarkData: null })
/**
* @exports convertEnvString
* @summary
*
* @param {Object<TransformStringType>} opts
* @param {String} opts.defaultValue
* @param {EnvironmentManager} opts.envManager
* @param {String} opts.stringInput
* @param {Object<Paw.Request>} opts.requestInput
*
* @returns {string}
*/
export function convertEnvString(
dynamicString: DynamicString,
context: Paw.Context,
): string {
if (!dynamicString) return ''
return dynamicString.components
.map((component): string => {
if (typeof component === 'string') {
return component
}
if (component.type === ENVIRONMENT_DYNAMIC_VALUE) {
const envVarId = (component as any).environmentVariable
const envVar = context.getEnvironmentVariableById(envVarId)
if (envVar) {
return `{${envVar.name}}`
}
}
return component.getEvaluatedString()
})
.join('')
}