@builder.io/sdk-react-native 4.1.2 → 4.2.0

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.
Files changed (43) hide show
  1. package/lib/browser/commonjs/components/content/components/enable-editor.js +20 -5
  2. package/lib/browser/commonjs/components/content/components/enable-editor.js.map +1 -1
  3. package/lib/browser/commonjs/constants/sdk-version.js +1 -1
  4. package/lib/browser/commonjs/functions/get-processed-block.js +4 -3
  5. package/lib/browser/commonjs/functions/get-processed-block.js.map +1 -1
  6. package/lib/browser/module/components/content/components/enable-editor.js +20 -5
  7. package/lib/browser/module/components/content/components/enable-editor.js.map +1 -1
  8. package/lib/browser/module/constants/sdk-version.js +1 -1
  9. package/lib/browser/module/functions/get-processed-block.js +4 -3
  10. package/lib/browser/module/functions/get-processed-block.js.map +1 -1
  11. package/lib/browser/typescript/components/content/components/enable-editor.d.ts.map +1 -1
  12. package/lib/browser/typescript/constants/sdk-version.d.ts +1 -1
  13. package/lib/browser/typescript/functions/get-processed-block.d.ts.map +1 -1
  14. package/lib/edge/commonjs/components/content/components/enable-editor.js +20 -5
  15. package/lib/edge/commonjs/components/content/components/enable-editor.js.map +1 -1
  16. package/lib/edge/commonjs/constants/sdk-version.js +1 -1
  17. package/lib/edge/commonjs/functions/get-processed-block.js +4 -3
  18. package/lib/edge/commonjs/functions/get-processed-block.js.map +1 -1
  19. package/lib/edge/module/components/content/components/enable-editor.js +20 -5
  20. package/lib/edge/module/components/content/components/enable-editor.js.map +1 -1
  21. package/lib/edge/module/constants/sdk-version.js +1 -1
  22. package/lib/edge/module/functions/get-processed-block.js +4 -3
  23. package/lib/edge/module/functions/get-processed-block.js.map +1 -1
  24. package/lib/edge/typescript/components/content/components/enable-editor.d.ts.map +1 -1
  25. package/lib/edge/typescript/constants/sdk-version.d.ts +1 -1
  26. package/lib/edge/typescript/functions/get-processed-block.d.ts.map +1 -1
  27. package/lib/node/commonjs/components/content/components/enable-editor.js +20 -5
  28. package/lib/node/commonjs/components/content/components/enable-editor.js.map +1 -1
  29. package/lib/node/commonjs/constants/sdk-version.js +1 -1
  30. package/lib/node/commonjs/functions/get-processed-block.js +4 -3
  31. package/lib/node/commonjs/functions/get-processed-block.js.map +1 -1
  32. package/lib/node/module/components/content/components/enable-editor.js +20 -5
  33. package/lib/node/module/components/content/components/enable-editor.js.map +1 -1
  34. package/lib/node/module/constants/sdk-version.js +1 -1
  35. package/lib/node/module/functions/get-processed-block.js +4 -3
  36. package/lib/node/module/functions/get-processed-block.js.map +1 -1
  37. package/lib/node/typescript/components/content/components/enable-editor.d.ts.map +1 -1
  38. package/lib/node/typescript/constants/sdk-version.d.ts +1 -1
  39. package/lib/node/typescript/functions/get-processed-block.d.ts.map +1 -1
  40. package/package.json +1 -1
  41. package/src/components/content/components/enable-editor.tsx +83 -33
  42. package/src/constants/sdk-version.ts +1 -1
  43. package/src/functions/get-processed-block.ts +4 -3
@@ -27,6 +27,27 @@ type BuilderEditorProps = Omit<
27
27
  setBuilderContextSignal?: (signal: any) => any;
28
28
  children?: any;
29
29
  };
30
+ interface BuilderRequest {
31
+ "@type": "@builder.io/core:Request";
32
+ request: {
33
+ url: string;
34
+ query?: {
35
+ [key: string]: string;
36
+ };
37
+ headers?: {
38
+ [key: string]: string;
39
+ };
40
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
41
+ body?: any;
42
+ };
43
+ options?: {
44
+ [key: string]: any;
45
+ };
46
+ bindings?: {
47
+ [key: string]: string;
48
+ };
49
+ }
50
+
30
51
  import builderContext from "../../../context/builder.context";
31
52
  import type { BuilderContextInterface } from "../../../context/types";
32
53
  import { evaluate } from "../../../functions/evaluate/index";
@@ -172,44 +193,73 @@ function EnableEditor(props: BuilderEditorProps) {
172
193
 
173
194
  function runHttpRequests() {
174
195
  const requests: {
175
- [key: string]: string;
196
+ [key: string]: string | any;
176
197
  } = props.builderContextSignal.content?.data?.httpRequests ?? {};
177
- Object.entries(requests).forEach(([key, url]) => {
178
- if (!url) return;
198
+ Object.entries(requests).forEach(
199
+ ([key, httpRequest]: [string, BuilderRequest | string]) => {
200
+ if (!httpRequest) return;
201
+ const isCoreRequest =
202
+ typeof httpRequest === "object" &&
203
+ httpRequest["@type"] === "@builder.io/core:Request";
179
204
 
180
- // request already in progress
181
- if (httpReqsPending[key]) return;
205
+ // request already in progress
206
+ if (httpReqsPending[key]) return;
182
207
 
183
- // request already completed, and not in edit mode
184
- if (httpReqsData[key] && !isEditing()) return;
185
- httpReqsPending[key] = true;
186
- const evaluatedUrl = url.replace(/{{([^}]+)}}/g, (_match, group) =>
187
- String(
188
- evaluate({
189
- code: group,
190
- context: props.context || {},
191
- localState: undefined,
192
- rootState: props.builderContextSignal.rootState,
193
- rootSetState: props.builderContextSignal.rootSetState,
208
+ // request already completed, and not in edit mode
209
+ if (httpReqsData[key] && !isEditing()) return;
210
+ const url = isCoreRequest
211
+ ? httpRequest.request.url
212
+ : (httpRequest as string);
213
+ httpReqsPending[key] = true;
214
+ const evaluatedUrl = url.replace(
215
+ /{{([^}]+)}}/g,
216
+ (_match: string, group: string) =>
217
+ String(
218
+ evaluate({
219
+ code: group,
220
+ context: props.context || {},
221
+ localState: undefined,
222
+ rootState: props.builderContextSignal.rootState,
223
+ rootSetState: props.builderContextSignal.rootSetState,
224
+ })
225
+ )
226
+ );
227
+ const fetchRequestObj = isCoreRequest
228
+ ? {
229
+ url: evaluatedUrl,
230
+ method: httpRequest.request.method,
231
+ headers: httpRequest.request.headers,
232
+ body: httpRequest.request.body,
233
+ }
234
+ : {
235
+ url: evaluatedUrl,
236
+ method: "GET",
237
+ };
238
+ logFetch(JSON.stringify(fetchRequestObj));
239
+ fetch(fetchRequestObj.url, {
240
+ method: fetchRequestObj.method,
241
+ headers: fetchRequestObj.headers,
242
+ body: fetchRequestObj.body,
243
+ })
244
+ .then((response) => response.json())
245
+ .then((json) => {
246
+ mergeNewRootState({
247
+ [key]: json,
248
+ });
249
+ httpReqsData[key] = true;
194
250
  })
195
- )
196
- );
197
- logFetch(evaluatedUrl);
198
- fetch(evaluatedUrl)
199
- .then((response) => response.json())
200
- .then((json) => {
201
- mergeNewRootState({
202
- [key]: json,
251
+ .catch((err) => {
252
+ console.error(
253
+ "error fetching dynamic data",
254
+ JSON.stringify(httpRequest),
255
+ err
256
+ );
257
+ })
258
+ .finally(() => {
259
+ httpReqsPending[key] = false;
203
260
  });
204
- httpReqsData[key] = true;
205
- })
206
- .catch((err) => {
207
- console.error("error fetching dynamic data", url, err);
208
- })
209
- .finally(() => {
210
- httpReqsPending[key] = false;
211
- });
212
- });
261
+ }
262
+ );
213
263
  }
214
264
 
215
265
  function emitStateUpdate() {
@@ -1 +1 @@
1
- export const SDK_VERSION = "4.1.2"
1
+ export const SDK_VERSION = "4.2.0"
@@ -91,13 +91,14 @@ export function getProcessedBlock({
91
91
  }: {
92
92
  block: BuilderBlock;
93
93
  } & Pick<BuilderContextInterface, 'localState' | 'context' | 'rootState' | 'rootSetState'>): BuilderBlock {
94
- let transformedBlock = resolveLocalizedValues(block, (rootState.locale as string | undefined));
95
- transformedBlock = transformBlock(transformedBlock);
96
- return evaluateBindings({
94
+ let transformedBlock = transformBlock(block);
95
+ transformedBlock = evaluateBindings({
97
96
  block: transformedBlock,
98
97
  localState,
99
98
  rootState,
100
99
  rootSetState,
101
100
  context
102
101
  });
102
+ transformedBlock = resolveLocalizedValues(transformedBlock, (rootState.locale as string | undefined));
103
+ return transformedBlock;
103
104
  }