@botonic/plugin-flow-builder 0.24.6-alpha.1 → 0.24.6
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.
- package/lib/cjs/content-fields/flow-text.d.ts +1 -0
- package/lib/cjs/content-fields/flow-text.js +6 -2
- package/lib/cjs/content-fields/flow-text.js.map +1 -1
- package/lib/cjs/utils.js +8 -2
- package/lib/cjs/utils.js.map +1 -1
- package/lib/esm/content-fields/flow-text.d.ts +1 -0
- package/lib/esm/content-fields/flow-text.js +6 -2
- package/lib/esm/content-fields/flow-text.js.map +1 -1
- package/lib/esm/utils.js +8 -2
- package/lib/esm/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/content-fields/flow-text.tsx +10 -2
- package/src/utils.ts +9 -2
|
@@ -11,5 +11,6 @@ export declare class FlowText extends ContentFieldsBase {
|
|
|
11
11
|
buttonStyle: HtButtonStyle;
|
|
12
12
|
static fromHubtypeCMS(cmsText: HtTextNode, locale: string, cmsApi: FlowBuilderApi): FlowText;
|
|
13
13
|
static replaceVariables(text: string, request: ActionRequest): string;
|
|
14
|
+
private static isValidType;
|
|
14
15
|
toBotonic(id: string, request: ActionRequest): JSX.Element;
|
|
15
16
|
}
|
|
@@ -32,13 +32,17 @@ class FlowText extends content_fields_base_1.ContentFieldsBase {
|
|
|
32
32
|
matches.forEach(match => {
|
|
33
33
|
const keyPath = match.slice(1, -1);
|
|
34
34
|
const botVariable = keyPath.endsWith(constants_1.ACCESS_TOKEN_VARIABLE_KEY)
|
|
35
|
-
?
|
|
35
|
+
? match
|
|
36
36
|
: (0, utils_1.getValueFromKeyPath)(request, keyPath);
|
|
37
|
-
replacedText = replacedText.replace(match, botVariable
|
|
37
|
+
replacedText = replacedText.replace(match, this.isValidType(botVariable) ? botVariable : match);
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
return replacedText;
|
|
41
41
|
}
|
|
42
|
+
static isValidType(botVariable) {
|
|
43
|
+
const validTypes = ['boolean', 'string', 'number'];
|
|
44
|
+
return validTypes.includes(typeof botVariable);
|
|
45
|
+
}
|
|
42
46
|
toBotonic(id, request) {
|
|
43
47
|
const replacedText = FlowText.replaceVariables(this.text, request);
|
|
44
48
|
return (react_2.default.createElement(react_1.Text, { key: id },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-text.js","sourceRoot":"","sources":["../../../src/content-fields/flow-text.tsx"],"names":[],"mappings":";;;;AAAA,0CAAoD;AACpD,0DAAyB;AAGzB,4CAA0E;AAC1E,oCAA8C;AAC9C,+DAAyD;AACzD,+CAA0C;AAC1C,qDAA4D;AAE5D,MAAa,QAAS,SAAQ,uCAAiB;IAA/C;;QACS,SAAI,GAAG,EAAE,CAAA;QACT,SAAI,GAAG,EAAE,CAAA;QACT,YAAO,GAAiB,EAAE,CAAA;QAC1B,gBAAW,GAAG,8BAAa,CAAC,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"flow-text.js","sourceRoot":"","sources":["../../../src/content-fields/flow-text.tsx"],"names":[],"mappings":";;;;AAAA,0CAAoD;AACpD,0DAAyB;AAGzB,4CAA0E;AAC1E,oCAA8C;AAC9C,+DAAyD;AACzD,+CAA0C;AAC1C,qDAA4D;AAE5D,MAAa,QAAS,SAAQ,uCAAiB;IAA/C;;QACS,SAAI,GAAG,EAAE,CAAA;QACT,SAAI,GAAG,EAAE,CAAA;QACT,YAAO,GAAiB,EAAE,CAAA;QAC1B,gBAAW,GAAG,8BAAa,CAAC,MAAM,CAAA;IAqD3C,CAAC;IAnDC,MAAM,CAAC,cAAc,CACnB,OAAmB,EACnB,MAAc,EACd,MAAsB;QAEtB,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACxC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QAC3B,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,8BAAa,CAAC,MAAM,CAAA;QAC3E,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CACrD,wBAAU,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAClD,CAAA;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,IAAY,EAAE,OAAsB;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,4BAAgB,CAAC,CAAA;QAE5C,IAAI,YAAY,GAAG,IAAI,CAAA;QACvB,IAAI,OAAO,IAAI,OAAO,EAAE;YACtB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBAClC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,qCAAyB,CAAC;oBAC7D,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,IAAA,2BAAmB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBACzC,YAAY,GAAG,YAAY,CAAC,OAAO,CACjC,KAAK,EACL,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CACpD,CAAA;YACH,CAAC,CAAC,CAAA;SACH;QAED,OAAO,YAAY,CAAA;IACrB,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,WAAgB;QACzC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAClD,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAA;IAChD,CAAC;IAED,SAAS,CAAC,EAAU,EAAE,OAAsB;QAC1C,MAAM,YAAY,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAClE,OAAO,CACL,8BAAC,YAAI,IAAC,GAAG,EAAE,EAAE;YACV,YAAY;YACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CACxC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CACnD,CACI,CACR,CAAA;IACH,CAAC;CACF;AAzDD,4BAyDC"}
|
package/lib/cjs/utils.js
CHANGED
|
@@ -23,11 +23,17 @@ function getValueFromKeyPath(request, keyPath) {
|
|
|
23
23
|
if (keyPath.startsWith('input') || keyPath.startsWith('session')) {
|
|
24
24
|
return keyPath
|
|
25
25
|
.split('.')
|
|
26
|
-
.reduce((object, key) => (object
|
|
26
|
+
.reduce((object, key) => resolveObjectKey(object, key), request);
|
|
27
27
|
}
|
|
28
28
|
return keyPath
|
|
29
29
|
.split('.')
|
|
30
|
-
.reduce((object, key) => (object
|
|
30
|
+
.reduce((object, key) => resolveObjectKey(object, key), request.session.user.extra_data);
|
|
31
31
|
}
|
|
32
32
|
exports.getValueFromKeyPath = getValueFromKeyPath;
|
|
33
|
+
function resolveObjectKey(object, key) {
|
|
34
|
+
if (object && object[key] !== undefined) {
|
|
35
|
+
return object[key];
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
33
39
|
//# sourceMappingURL=utils.js.map
|
package/lib/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAGA,mCAA6E;AAE7E,SAAS,yBAAyB,CAAC,OAAgB;IACjD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;KACpD;IACD,OAAO,OAAO,CAAC,aAAa,CAAA;AAC9B,CAAC;AAED,SAAgB,qBAAqB,CACnC,OAAwC;IAExC,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC5B,KAAK,0BAAkB,CAAC,UAAU;YAChC,OAAO,yBAAyB,CAAA;QAClC,KAAK,0BAAkB,CAAC,WAAW;YACjC,OAAO,OAAO,CAAC,cAAc,CAAA;QAC/B;YACE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;KAChE;AACH,CAAC;AAXD,sDAWC;AAED,SAAgB,mBAAmB,CACjC,OAAsB,EACtB,OAAe;IAEf,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAChE,OAAO,OAAO;aACX,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAGA,mCAA6E;AAE7E,SAAS,yBAAyB,CAAC,OAAgB;IACjD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;KACpD;IACD,OAAO,OAAO,CAAC,aAAa,CAAA;AAC9B,CAAC;AAED,SAAgB,qBAAqB,CACnC,OAAwC;IAExC,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC5B,KAAK,0BAAkB,CAAC,UAAU;YAChC,OAAO,yBAAyB,CAAA;QAClC,KAAK,0BAAkB,CAAC,WAAW;YACjC,OAAO,OAAO,CAAC,cAAc,CAAA;QAC/B;YACE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;KAChE;AACH,CAAC;AAXD,sDAWC;AAED,SAAgB,mBAAmB,CACjC,OAAsB,EACtB,OAAe;IAEf,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAChE,OAAO,OAAO;aACX,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;KACnE;IAED,OAAO,OAAO;SACX,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CACL,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAChC,CAAA;AACL,CAAC;AAhBD,kDAgBC;AAED,SAAS,gBAAgB,CAAC,MAAW,EAAE,GAAW;IAChD,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;QACvC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;KACnB;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -11,5 +11,6 @@ export declare class FlowText extends ContentFieldsBase {
|
|
|
11
11
|
buttonStyle: HtButtonStyle;
|
|
12
12
|
static fromHubtypeCMS(cmsText: HtTextNode, locale: string, cmsApi: FlowBuilderApi): FlowText;
|
|
13
13
|
static replaceVariables(text: string, request: ActionRequest): string;
|
|
14
|
+
private static isValidType;
|
|
14
15
|
toBotonic(id: string, request: ActionRequest): JSX.Element;
|
|
15
16
|
}
|
|
@@ -28,13 +28,17 @@ export class FlowText extends ContentFieldsBase {
|
|
|
28
28
|
matches.forEach(match => {
|
|
29
29
|
const keyPath = match.slice(1, -1);
|
|
30
30
|
const botVariable = keyPath.endsWith(ACCESS_TOKEN_VARIABLE_KEY)
|
|
31
|
-
?
|
|
31
|
+
? match
|
|
32
32
|
: getValueFromKeyPath(request, keyPath);
|
|
33
|
-
replacedText = replacedText.replace(match, botVariable
|
|
33
|
+
replacedText = replacedText.replace(match, this.isValidType(botVariable) ? botVariable : match);
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
return replacedText;
|
|
37
37
|
}
|
|
38
|
+
static isValidType(botVariable) {
|
|
39
|
+
const validTypes = ['boolean', 'string', 'number'];
|
|
40
|
+
return validTypes.includes(typeof botVariable);
|
|
41
|
+
}
|
|
38
42
|
toBotonic(id, request) {
|
|
39
43
|
const replacedText = FlowText.replaceVariables(this.text, request);
|
|
40
44
|
return (React.createElement(Text, { key: id },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-text.js","sourceRoot":"","sources":["../../../src/content-fields/flow-text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAc,MAAM,kBAAkB,CAAA;AAE5D,MAAM,OAAO,QAAS,SAAQ,iBAAiB;IAA/C;;QACS,SAAI,GAAG,EAAE,CAAA;QACT,SAAI,GAAG,EAAE,CAAA;QACT,YAAO,GAAiB,EAAE,CAAA;QAC1B,gBAAW,GAAG,aAAa,CAAC,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"flow-text.js","sourceRoot":"","sources":["../../../src/content-fields/flow-text.tsx"],"names":[],"mappings":"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"}
|
package/lib/esm/utils.js
CHANGED
|
@@ -19,10 +19,16 @@ export function getValueFromKeyPath(request, keyPath) {
|
|
|
19
19
|
if (keyPath.startsWith('input') || keyPath.startsWith('session')) {
|
|
20
20
|
return keyPath
|
|
21
21
|
.split('.')
|
|
22
|
-
.reduce((object, key) => (object
|
|
22
|
+
.reduce((object, key) => resolveObjectKey(object, key), request);
|
|
23
23
|
}
|
|
24
24
|
return keyPath
|
|
25
25
|
.split('.')
|
|
26
|
-
.reduce((object, key) => (object
|
|
26
|
+
.reduce((object, key) => resolveObjectKey(object, key), request.session.user.extra_data);
|
|
27
|
+
}
|
|
28
|
+
function resolveObjectKey(object, key) {
|
|
29
|
+
if (object && object[key] !== undefined) {
|
|
30
|
+
return object[key];
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
27
33
|
}
|
|
28
34
|
//# sourceMappingURL=utils.js.map
|
package/lib/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmC,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAE7E,SAAS,yBAAyB,CAAC,OAAgB;IACjD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;KACpD;IACD,OAAO,OAAO,CAAC,aAAa,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAwC;IAExC,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC5B,KAAK,kBAAkB,CAAC,UAAU;YAChC,OAAO,yBAAyB,CAAA;QAClC,KAAK,kBAAkB,CAAC,WAAW;YACjC,OAAO,OAAO,CAAC,cAAc,CAAA;QAC/B;YACE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;KAChE;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAsB,EACtB,OAAe;IAEf,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAChE,OAAO,OAAO;aACX,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmC,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAE7E,SAAS,yBAAyB,CAAC,OAAgB;IACjD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;KACpD;IACD,OAAO,OAAO,CAAC,aAAa,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAwC;IAExC,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC5B,KAAK,kBAAkB,CAAC,UAAU;YAChC,OAAO,yBAAyB,CAAA;QAClC,KAAK,kBAAkB,CAAC,WAAW;YACjC,OAAO,OAAO,CAAC,cAAc,CAAA;QAC/B;YACE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;KAChE;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAsB,EACtB,OAAe;IAEf,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAChE,OAAO,OAAO;aACX,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;KACnE;IAED,OAAO,OAAO;SACX,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CACL,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAChC,CAAA;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAW,EAAE,GAAW;IAChD,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;QACvC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;KACnB;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -37,15 +37,23 @@ export class FlowText extends ContentFieldsBase {
|
|
|
37
37
|
matches.forEach(match => {
|
|
38
38
|
const keyPath = match.slice(1, -1)
|
|
39
39
|
const botVariable = keyPath.endsWith(ACCESS_TOKEN_VARIABLE_KEY)
|
|
40
|
-
?
|
|
40
|
+
? match
|
|
41
41
|
: getValueFromKeyPath(request, keyPath)
|
|
42
|
-
replacedText = replacedText.replace(
|
|
42
|
+
replacedText = replacedText.replace(
|
|
43
|
+
match,
|
|
44
|
+
this.isValidType(botVariable) ? botVariable : match
|
|
45
|
+
)
|
|
43
46
|
})
|
|
44
47
|
}
|
|
45
48
|
|
|
46
49
|
return replacedText
|
|
47
50
|
}
|
|
48
51
|
|
|
52
|
+
private static isValidType(botVariable: any): boolean {
|
|
53
|
+
const validTypes = ['boolean', 'string', 'number']
|
|
54
|
+
return validTypes.includes(typeof botVariable)
|
|
55
|
+
}
|
|
56
|
+
|
|
49
57
|
toBotonic(id: string, request: ActionRequest): JSX.Element {
|
|
50
58
|
const replacedText = FlowText.replaceVariables(this.text, request)
|
|
51
59
|
return (
|
package/src/utils.ts
CHANGED
|
@@ -30,13 +30,20 @@ export function getValueFromKeyPath(
|
|
|
30
30
|
if (keyPath.startsWith('input') || keyPath.startsWith('session')) {
|
|
31
31
|
return keyPath
|
|
32
32
|
.split('.')
|
|
33
|
-
.reduce((object, key) => (object
|
|
33
|
+
.reduce((object, key) => resolveObjectKey(object, key), request)
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
return keyPath
|
|
37
37
|
.split('.')
|
|
38
38
|
.reduce(
|
|
39
|
-
(object, key) => (object
|
|
39
|
+
(object, key) => resolveObjectKey(object, key),
|
|
40
40
|
request.session.user.extra_data
|
|
41
41
|
)
|
|
42
42
|
}
|
|
43
|
+
|
|
44
|
+
function resolveObjectKey(object: any, key: string): any {
|
|
45
|
+
if (object && object[key] !== undefined) {
|
|
46
|
+
return object[key]
|
|
47
|
+
}
|
|
48
|
+
return undefined
|
|
49
|
+
}
|