expo-invoke 2.8.0 → 2.8.1
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.
|
@@ -41,25 +41,32 @@ function swiftParamType(param) {
|
|
|
41
41
|
}
|
|
42
42
|
function paramToJSON(param) {
|
|
43
43
|
const name = param.name;
|
|
44
|
+
const isOptional = param.optional !== false;
|
|
45
|
+
// Non-optional params cannot use `if let` — use direct assignment instead
|
|
46
|
+
const direct = (expr) => `params["${name}"] = ${expr}`;
|
|
47
|
+
const guarded = (expr) => `if let v = ${name} { params["${name}"] = ${expr} }`;
|
|
44
48
|
switch (param.type) {
|
|
45
49
|
case 'location':
|
|
46
|
-
return
|
|
50
|
+
return isOptional ? guarded('v.toJSON()') : direct(`${name}.toJSON()`);
|
|
47
51
|
case 'person':
|
|
48
|
-
return
|
|
52
|
+
return isOptional ? guarded('v.toJSON()') : direct(`${name}.toJSON()`);
|
|
49
53
|
case 'enum':
|
|
50
|
-
return
|
|
54
|
+
return isOptional ? guarded('v.id') : direct(`${name}.id`);
|
|
51
55
|
case 'date':
|
|
52
|
-
return
|
|
56
|
+
return isOptional
|
|
57
|
+
? guarded('v.timeIntervalSince1970 * 1000')
|
|
58
|
+
: direct(`${name}.timeIntervalSince1970 * 1000`);
|
|
53
59
|
case 'boolean':
|
|
54
|
-
|
|
60
|
+
// Bool is never optional in the generated code — always direct
|
|
61
|
+
return direct(name);
|
|
55
62
|
case 'number':
|
|
56
|
-
return
|
|
63
|
+
return isOptional ? guarded('v') : direct(name);
|
|
57
64
|
case 'array':
|
|
58
|
-
return
|
|
65
|
+
return isOptional ? guarded('v') : direct(name);
|
|
59
66
|
case 'entity':
|
|
60
|
-
return
|
|
67
|
+
return isOptional ? guarded('v.toJSON()') : direct(`${name}.toJSON()`);
|
|
61
68
|
default:
|
|
62
|
-
return
|
|
69
|
+
return isOptional ? guarded('v') : direct(name);
|
|
63
70
|
}
|
|
64
71
|
}
|
|
65
72
|
function generateIntentStruct(intent) {
|
|
@@ -79,12 +86,40 @@ function generateIntentStruct(intent) {
|
|
|
79
86
|
const orig = { ...p, name: swiftName };
|
|
80
87
|
return ` ${paramToJSON(orig)}`;
|
|
81
88
|
}).join('\n');
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
return .result(
|
|
86
|
-
|
|
87
|
-
|
|
89
|
+
// Build spoken result — substitute ${paramName} placeholders with runtime values
|
|
90
|
+
const spokenResult = (() => {
|
|
91
|
+
if (!intent.spokenResponse)
|
|
92
|
+
return `\n return .result()`;
|
|
93
|
+
const template = escapeSwiftString(intent.spokenResponse);
|
|
94
|
+
// Find which params appear as ${name} in the template
|
|
95
|
+
const usedParams = params.filter((p) => intent.spokenResponse.includes(`\${${p.name}}`));
|
|
96
|
+
if (usedParams.length === 0) {
|
|
97
|
+
return `\n let spoken = "${template}"\n return .result(dialog: IntentDialog(full: .init(stringLiteral: spoken)))`;
|
|
98
|
+
}
|
|
99
|
+
// Generate individual replacingOccurrences calls for each used param.
|
|
100
|
+
// Uses String(format:) to build the "${key}" search token to avoid Swift/TS escaping conflicts.
|
|
101
|
+
const replacements = usedParams.map((p) => {
|
|
102
|
+
const camelName = toCamelCase(p.name);
|
|
103
|
+
const isOptional = p.optional !== false;
|
|
104
|
+
let cast;
|
|
105
|
+
if (p.type === 'number') {
|
|
106
|
+
cast = isOptional
|
|
107
|
+
? `${camelName}.map { String(format: "%g", $0) } ?? ""`
|
|
108
|
+
: `String(format: "%g", ${camelName})`;
|
|
109
|
+
}
|
|
110
|
+
else if (p.type === 'boolean') {
|
|
111
|
+
cast = isOptional
|
|
112
|
+
? `${camelName}.map { $0 ? "true" : "false" } ?? ""`
|
|
113
|
+
: `${camelName} ? "true" : "false"`;
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
cast = isOptional ? `${camelName} ?? ""` : camelName;
|
|
117
|
+
}
|
|
118
|
+
// \${ + %@ + } generates "${paramName}" at runtime — \$ produces literal $ in the TS template
|
|
119
|
+
return ` spoken = spoken.replacingOccurrences(of: String(format: "\${%@}", "${p.name}"), with: ${cast})`;
|
|
120
|
+
}).join('\n');
|
|
121
|
+
return `\n var spoken = "${template}"\n${replacements}\n return .result(dialog: IntentDialog(full: .init(stringLiteral: spoken)))`;
|
|
122
|
+
})();
|
|
88
123
|
const backgroundCall = intent.openAppWhenRun === false
|
|
89
124
|
? ` await ExpoInvokeBackgroundBridge.shared.dispatch(intentId: "${escapeSwiftString(intent.id)}", parameters: params)`
|
|
90
125
|
: ` ExpoInvokeModule.writePendingIntent(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSwiftIntents.js","sourceRoot":"","sources":["../../../plugin/codegen/generateSwiftIntents.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"generateSwiftIntents.js","sourceRoot":"","sources":["../../../plugin/codegen/generateSwiftIntents.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,5 +62,5 @@ const withInvoke = (config, options) => {
|
|
|
62
62
|
});
|
|
63
63
|
return config;
|
|
64
64
|
};
|
|
65
|
-
exports.default = (0, config_plugins_1.createRunOncePlugin)(withInvoke, 'expo-invoke', '2.8.
|
|
65
|
+
exports.default = (0, config_plugins_1.createRunOncePlugin)(withInvoke, 'expo-invoke', '2.8.1');
|
|
66
66
|
//# sourceMappingURL=withInvoke.js.map
|
package/bundle/decorator.ts
CHANGED
|
@@ -47,7 +47,7 @@ function decorateNode(
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
function isReactElementNode(node: unknown): node is ReactElementNode {
|
|
50
|
-
return
|
|
50
|
+
return node !== null && typeof node === 'object' && 'type' in node && 'props' in node;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
function buildButtonTargetId(index: number, parentKey: string | null) {
|
package/bundle/index.ts
CHANGED
|
@@ -11,7 +11,7 @@ import * as React from './react-stub';
|
|
|
11
11
|
type Dictionary = Record<string, unknown>;
|
|
12
12
|
|
|
13
13
|
declare global {
|
|
14
|
-
var __expoWidgetLayout: (props: Dictionary, environment: Dictionary) => Dictionary;
|
|
14
|
+
var __expoWidgetLayout: ((props: Dictionary, environment: Dictionary) => Dictionary) | undefined;
|
|
15
15
|
var __expoWidgetRender: (props: Dictionary, environment: Dictionary) => Dictionary;
|
|
16
16
|
var __expoWidgetHandlePress: (
|
|
17
17
|
props: Dictionary,
|
|
@@ -26,7 +26,7 @@ const __expoWidgetRender = function (props: Dictionary, environment: Dictionary)
|
|
|
26
26
|
decoratedEnvironment.date = new Date(timestamp as number);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
return decorateInteractiveTargets(globalThis.__expoWidgetLayout(props, decoratedEnvironment));
|
|
29
|
+
return decorateInteractiveTargets(globalThis.__expoWidgetLayout!(props, decoratedEnvironment));
|
|
30
30
|
};
|
|
31
31
|
|
|
32
32
|
const __expoWidgetHandlePress = function (
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-invoke",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.1",
|
|
4
4
|
"description": "The complete native-surface-to-JS bridge for Expo. One intent config → Siri, Google Assistant, home screen widgets, Dynamic Island, app icon menus, notification actions, NFC, QR, deep links and more — all through a single useInvoke() hook.",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"module": "build/src/index.js",
|
|
@@ -120,7 +120,8 @@
|
|
|
120
120
|
"testEnvironment": "node",
|
|
121
121
|
"moduleNameMapper": {
|
|
122
122
|
"^react-native$": "<rootDir>/node_modules/react-native/jest/setup.js",
|
|
123
|
-
"^expo-modules-core$": "<rootDir>/__mocks__/expo-modules-core.ts"
|
|
123
|
+
"^expo-modules-core$": "<rootDir>/__mocks__/expo-modules-core.ts",
|
|
124
|
+
"^@expo/ui(.*)$": "<rootDir>/__mocks__/expo-ui.ts"
|
|
124
125
|
},
|
|
125
126
|
"testMatch": [
|
|
126
127
|
"**/__tests__/**/*.test.ts"
|