@plasmicpkgs/plasmic-query 0.0.203 → 0.0.205

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/dist/Fetcher.d.ts CHANGED
@@ -7,12 +7,13 @@ export interface GenericFetcherProps {
7
7
  errorDisplay?: ReactNode;
8
8
  previewErrorDisplay?: boolean;
9
9
  dataName?: string;
10
+ errorName?: string;
10
11
  noLayout?: boolean;
11
12
  className?: string;
12
13
  }
13
14
  declare type PropMetas<P> = ComponentMeta<P>["props"];
14
15
  export declare const genericFetcherPropsMeta: PropMetas<GenericFetcherProps>;
15
- export declare function GenericFetcherShell<T>({ result, children, loadingDisplay, previewSpinner, errorDisplay, previewErrorDisplay, dataName, noLayout, className, }: GenericFetcherProps & {
16
+ export declare function GenericFetcherShell<T>({ result, children, loadingDisplay, previewSpinner, errorDisplay, previewErrorDisplay, dataName, errorName, noLayout, className, }: GenericFetcherProps & {
16
17
  result: {
17
18
  data?: T;
18
19
  error?: Error;
@@ -380,10 +380,16 @@ var genericFetcherPropsMeta = {
380
380
  },
381
381
  dataName: {
382
382
  type: "string",
383
- displayName: "Variable name",
383
+ displayName: "Data name",
384
384
  defaultValue: "fetchedData",
385
385
  description: "Variable name to store the fetched data in"
386
386
  },
387
+ errorName: {
388
+ type: "string",
389
+ displayName: "Error name",
390
+ defaultValue: "fetchError",
391
+ description: "Variable name to store the fetch error in"
392
+ },
387
393
  previewSpinner: {
388
394
  type: "boolean",
389
395
  description: "Force preview the loading state",
@@ -409,13 +415,17 @@ function GenericFetcherShell(_ref) {
409
415
  errorDisplay = _ref.errorDisplay,
410
416
  previewErrorDisplay = _ref.previewErrorDisplay,
411
417
  dataName = _ref.dataName,
418
+ errorName = _ref.errorName,
412
419
  noLayout = _ref.noLayout,
413
420
  className = _ref.className;
414
421
  var inEditor = !!host.usePlasmicCanvasContext();
415
422
  if (inEditor && previewSpinner || !("error" in result) && !("data" in result)) {
416
423
  return React.createElement(React.Fragment, null, loadingDisplay != null ? loadingDisplay : null);
417
424
  } else if (inEditor && previewErrorDisplay || "error" in result) {
418
- return React.createElement(React.Fragment, null, errorDisplay != null ? errorDisplay : null);
425
+ return React.createElement(host.DataProvider, {
426
+ name: errorName,
427
+ data: result.error
428
+ }, errorDisplay != null ? errorDisplay : null);
419
429
  } else {
420
430
  var content = React.createElement(host.DataProvider, {
421
431
  name: dataName,
@@ -434,7 +444,7 @@ function performFetch(_x) {
434
444
  }
435
445
  function _performFetch() {
436
446
  _performFetch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
437
- var url, method, body, headers, response, text;
447
+ var url, method, body, headers, response, text, json, error;
438
448
  return _regeneratorRuntime().wrap(function _callee$(_context) {
439
449
  while (1) switch (_context.prev = _context.next) {
440
450
  case 0:
@@ -453,29 +463,38 @@ function _performFetch() {
453
463
  });
454
464
  case 5:
455
465
  response = _context.sent;
456
- if (response.ok) {
457
- _context.next = 8;
458
- break;
459
- }
460
- throw new Error(response.statusText);
461
- case 8:
462
- _context.next = 10;
466
+ _context.next = 8;
463
467
  return response.text();
464
- case 10:
468
+ case 8:
465
469
  text = _context.sent;
466
- _context.prev = 11;
467
- return _context.abrupt("return", JSON.parse(text));
468
- case 15:
469
- _context.prev = 15;
470
- _context.t0 = _context["catch"](11);
471
- return _context.abrupt("return", {
470
+ json = {
472
471
  text: text
473
- });
474
- case 18:
472
+ };
473
+ try {
474
+ json = JSON.parse(text);
475
+ } catch (e) {
476
+ json = {
477
+ text: text
478
+ };
479
+ }
480
+ // @see https://swr.vercel.app/docs/error-handling
481
+ // If the status code is not in the range 200-299,
482
+ // we still try to parse and throw it.
483
+ if (response.ok) {
484
+ _context.next = 16;
485
+ break;
486
+ }
487
+ error = new Error(response.statusText); // Attach extra info to the error object.
488
+ error.info = json;
489
+ error.status = response.status;
490
+ throw error;
491
+ case 16:
492
+ return _context.abrupt("return", json);
493
+ case 17:
475
494
  case "end":
476
495
  return _context.stop();
477
496
  }
478
- }, _callee, null, [[11, 15]]);
497
+ }, _callee);
479
498
  }));
480
499
  return _performFetch.apply(this, arguments);
481
500
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plasmic-query.cjs.development.js","sources":["../src/Fetcher.tsx"],"sourcesContent":["import { DataProvider, usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport React, { ReactNode } from \"react\";\n\nexport interface GenericFetcherProps {\n children?: ReactNode;\n loadingDisplay?: ReactNode;\n previewSpinner?: boolean;\n errorDisplay?: ReactNode;\n previewErrorDisplay?: boolean;\n dataName?: string;\n noLayout?: boolean;\n className?: string;\n}\n\ntype PropMetas<P> = ComponentMeta<P>[\"props\"];\n\nexport const genericFetcherPropsMeta: PropMetas<GenericFetcherProps> = {\n children: \"slot\",\n loadingDisplay: { type: \"slot\", defaultValue: \"Loading...\" },\n errorDisplay: { type: \"slot\", defaultValue: \"Error fetching data\" },\n dataName: {\n type: \"string\",\n displayName: \"Variable name\",\n defaultValue: \"fetchedData\",\n description: \"Variable name to store the fetched data in\",\n },\n previewSpinner: {\n type: \"boolean\",\n description: \"Force preview the loading state\",\n displayName: \"Preview loading\",\n },\n previewErrorDisplay: {\n type: \"boolean\",\n description: \"Force preview the error display\",\n displayName: \"Preview error\",\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, CMS Data Loader will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n};\n\nexport function GenericFetcherShell<T>({\n result,\n children,\n loadingDisplay,\n previewSpinner,\n errorDisplay,\n previewErrorDisplay,\n dataName,\n noLayout,\n className,\n}: GenericFetcherProps & {\n result: { data?: T; error?: Error; isLoading?: boolean };\n}) {\n const inEditor = !!usePlasmicCanvasContext();\n if (\n (inEditor && previewSpinner) ||\n (!(\"error\" in result) && !(\"data\" in result))\n ) {\n return <>{loadingDisplay ?? null}</>;\n } else if ((inEditor && previewErrorDisplay) || \"error\" in result) {\n return <>{errorDisplay ?? null}</>;\n } else {\n const content = (\n <DataProvider name={dataName} data={result.data}>\n {children}\n </DataProvider>\n );\n return noLayout ? content : <div className={className}>{content}</div>;\n }\n}\n\nexport interface FetchProps {\n url?: string;\n method?: string;\n body?: string | object;\n headers?: Record<string, string>;\n}\n\n/**\n * Tries to return the JSON response, or else returns an object with a text key containing the response body text.\n */\nasync function performFetch({ url, method, body, headers }: FetchProps) {\n if (!url) {\n throw new Error(\"Please specify a URL to fetch\");\n }\n const response = await fetch(url, {\n method,\n headers,\n body:\n body === undefined\n ? body\n : typeof body === \"string\"\n ? body\n : JSON.stringify(body),\n });\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const text = await response.text();\n try {\n return JSON.parse(text);\n } catch (e) {\n return { text };\n }\n}\n\nexport interface DataFetcherProps extends FetchProps, GenericFetcherProps {\n queryKey?: string;\n}\n\nexport function DataFetcher(props: DataFetcherProps) {\n const { url, method, body, headers, queryKey } = props;\n const fetchProps: FetchProps = { url, method, body, headers };\n const result = usePlasmicQueryData(\n queryKey || JSON.stringify({ type: \"DataFetcher\", ...fetchProps }),\n () => performFetch(fetchProps)\n );\n return <GenericFetcherShell result={result} {...props} />;\n}\n\nfunction mkFetchProps(\n defaultUrl: string,\n defaultMethod: string\n): PropMetas<FetchProps & { queryKey?: string }> {\n return {\n url: {\n type: \"string\",\n defaultValue: defaultUrl,\n description: \"Where to fetch the data from\",\n },\n method: {\n type: \"choice\",\n options: [\n \"GET\",\n \"DELETE\",\n \"CONNECT\",\n \"HEAD\",\n \"OPTIONS\",\n \"POST\",\n \"PUT\",\n \"TRACE\",\n ],\n defaultValue: defaultMethod,\n description: \"Method to use when fetching\",\n },\n headers: {\n type: \"object\",\n description: \"Request headers (as JSON object) to send\",\n defaultValue: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n },\n queryKey: {\n type: \"string\",\n description:\n \"A globally unique ID for this query, used for invalidating queries\",\n invariantable: true,\n },\n };\n}\n\nexport const dataFetcherMeta: ComponentMeta<DataFetcherProps> = {\n name: \"hostless-plasmic-query-data-fetcher\",\n displayName: \"HTTP REST API Fetcher\",\n importName: \"DataFetcher\",\n importPath: \"@plasmicpkgs/plasmic-query\",\n providesData: true,\n description:\n \"These fetches may be run client-side (from the browser). Use [Data Queries](https://docs.plasmic.app/learn/http-api-integration/) for authenticated queries or CORS.\",\n props: {\n ...(mkFetchProps(\n \"https://api.github.com/users/plasmicapp/repos\",\n \"GET\"\n ) as any),\n body: {\n type: \"object\",\n description: \"JSON object to be sent in the request body\",\n },\n ...(genericFetcherPropsMeta as any),\n },\n defaultStyles: {\n maxWidth: \"100%\",\n width: \"stretch\",\n },\n};\n\nexport function registerDataFetcher(\n loader?: { registerComponent: typeof registerComponent },\n customDataFetcherMeta?: ComponentMeta<DataFetcherProps>\n) {\n if (loader) {\n loader.registerComponent(\n DataFetcher,\n customDataFetcherMeta ?? dataFetcherMeta\n );\n } else {\n registerComponent(DataFetcher, customDataFetcherMeta ?? dataFetcherMeta);\n }\n}\n\nexport interface GraphqlFetcherProps\n extends GenericFetcherProps,\n Omit<FetchProps, \"body\"> {\n query?: { query?: string; variables?: object };\n queryKey?: string;\n varOverrides?: object;\n}\n\nexport function GraphqlFetcher(props: GraphqlFetcherProps) {\n const { query, url, method, headers, queryKey, varOverrides } = props;\n const fetchProps: FetchProps = {\n body: { ...query, variables: { ...query?.variables, ...varOverrides } },\n url,\n method,\n headers,\n };\n const result = usePlasmicQueryData(\n queryKey || JSON.stringify({ type: \"GraphqlFetcher\", ...fetchProps }),\n () => performFetch(fetchProps)\n );\n return <GenericFetcherShell result={result} {...props} />;\n}\n\nexport const graphqlFetcherMeta: ComponentMeta<GraphqlFetcherProps> = {\n name: \"hostless-plasmic-query-graphql-fetcher\",\n displayName: \"GraphQL Fetcher\",\n importName: \"GraphqlFetcher\",\n importPath: \"@plasmicpkgs/plasmic-query\",\n providesData: true,\n props: (() => {\n const gqlMetas: PropMetas<GraphqlFetcherProps> = {\n query: {\n type: \"code\",\n lang: \"graphql\",\n headers: (props) => props.headers,\n endpoint: (props) => props.url ?? \"\",\n defaultValue: {\n query: `query MyQuery($name: String) {\n characters(filter: {name: $name}) {\n results {\n name\n species\n image\n }\n }\n}\n`,\n variables: {\n name: \"Rick Sanchez\",\n },\n },\n },\n varOverrides: {\n type: \"object\",\n displayName: \"Override variables\",\n description:\n \"Pass in dynamic values for your query variables, as an object of key-values\",\n defaultValue: {},\n },\n };\n // Reorder the props\n const { url, query, method, headers, queryKey, ...rest } = {\n ...mkFetchProps(\"https://rickandmortyapi.com/graphql\", \"POST\"),\n ...gqlMetas,\n ...genericFetcherPropsMeta,\n };\n return {\n url,\n query,\n method,\n headers,\n queryKey,\n ...rest,\n } as any;\n })(),\n defaultStyles: {\n maxWidth: \"100%\",\n width: \"stretch\",\n },\n};\n\nexport function registerGraphqlFetcher(\n loader?: { registerComponent: typeof registerComponent },\n customDataFetcherMeta?: ComponentMeta<GraphqlFetcherProps>\n) {\n if (loader) {\n loader.registerComponent(\n GraphqlFetcher,\n customDataFetcherMeta ?? graphqlFetcherMeta\n );\n } else {\n registerComponent(\n GraphqlFetcher,\n customDataFetcherMeta ?? graphqlFetcherMeta\n );\n }\n}\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n}) {\n registerDataFetcher(loader);\n registerGraphqlFetcher(loader);\n}\n"],"names":["genericFetcherPropsMeta","children","loadingDisplay","type","defaultValue","errorDisplay","dataName","displayName","description","previewSpinner","previewErrorDisplay","noLayout","GenericFetcherShell","_ref","result","className","inEditor","usePlasmicCanvasContext","React","content","DataProvider","name","data","performFetch","_x","_performFetch","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref2","url","method","body","headers","response","text","wrap","_callee$","_context","prev","next","Error","fetch","undefined","JSON","stringify","sent","ok","statusText","abrupt","parse","t0","stop","DataFetcher","props","queryKey","fetchProps","usePlasmicQueryData","_extends","mkFetchProps","defaultUrl","defaultMethod","options","Accept","invariantable","dataFetcherMeta","importName","importPath","providesData","defaultStyles","maxWidth","width","registerDataFetcher","loader","customDataFetcherMeta","registerComponent","GraphqlFetcher","query","varOverrides","variables","graphqlFetcherMeta","gqlMetas","lang","endpoint","_props$url","_mkFetchProps$gqlMeta","rest","_objectWithoutPropertiesLoose","_excluded","registerGraphqlFetcher","registerAll"],"mappings":"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"}
1
+ {"version":3,"file":"plasmic-query.cjs.development.js","sources":["../src/Fetcher.tsx"],"sourcesContent":["import { DataProvider, usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport React, { ReactNode } from \"react\";\n\nexport interface GenericFetcherProps {\n children?: ReactNode;\n loadingDisplay?: ReactNode;\n previewSpinner?: boolean;\n errorDisplay?: ReactNode;\n previewErrorDisplay?: boolean;\n dataName?: string;\n errorName?: string;\n noLayout?: boolean;\n className?: string;\n}\n\ntype PropMetas<P> = ComponentMeta<P>[\"props\"];\n\ntype CustomError = Error & {\n info: Record<string, any>;\n status: number;\n};\n\nexport const genericFetcherPropsMeta: PropMetas<GenericFetcherProps> = {\n children: \"slot\",\n loadingDisplay: { type: \"slot\", defaultValue: \"Loading...\" },\n errorDisplay: { type: \"slot\", defaultValue: \"Error fetching data\" },\n dataName: {\n type: \"string\",\n displayName: \"Data name\",\n defaultValue: \"fetchedData\",\n description: \"Variable name to store the fetched data in\",\n },\n errorName: {\n type: \"string\",\n displayName: \"Error name\",\n defaultValue: \"fetchError\",\n description: \"Variable name to store the fetch error in\",\n },\n previewSpinner: {\n type: \"boolean\",\n description: \"Force preview the loading state\",\n displayName: \"Preview loading\",\n },\n previewErrorDisplay: {\n type: \"boolean\",\n description: \"Force preview the error display\",\n displayName: \"Preview error\",\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, CMS Data Loader will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n};\n\nexport function GenericFetcherShell<T>({\n result,\n children,\n loadingDisplay,\n previewSpinner,\n errorDisplay,\n previewErrorDisplay,\n dataName,\n errorName,\n noLayout,\n className,\n}: GenericFetcherProps & {\n result: { data?: T; error?: Error; isLoading?: boolean };\n}) {\n const inEditor = !!usePlasmicCanvasContext();\n if (\n (inEditor && previewSpinner) ||\n (!(\"error\" in result) && !(\"data\" in result))\n ) {\n return <>{loadingDisplay ?? null}</>;\n } else if ((inEditor && previewErrorDisplay) || \"error\" in result) {\n return (\n <DataProvider name={errorName} data={result.error}>\n {errorDisplay ?? null}\n </DataProvider>\n );\n } else {\n const content = (\n <DataProvider name={dataName} data={result.data}>\n {children}\n </DataProvider>\n );\n return noLayout ? content : <div className={className}>{content}</div>;\n }\n}\n\nexport interface FetchProps {\n url?: string;\n method?: string;\n body?: string | object;\n headers?: Record<string, string>;\n}\n\n/**\n * Tries to return the JSON response, or else returns an object with a text key containing the response body text.\n */\nasync function performFetch({ url, method, body, headers }: FetchProps) {\n if (!url) {\n throw new Error(\"Please specify a URL to fetch\");\n }\n const response = await fetch(url, {\n method,\n headers,\n body:\n body === undefined\n ? body\n : typeof body === \"string\"\n ? body\n : JSON.stringify(body),\n });\n\n const text = await response.text();\n let json: Record<string, any> = { text };\n\n try {\n json = JSON.parse(text);\n } catch (e) {\n json = { text };\n }\n\n // @see https://swr.vercel.app/docs/error-handling\n // If the status code is not in the range 200-299,\n // we still try to parse and throw it.\n if (!response.ok) {\n const error = new Error(response.statusText) as CustomError;\n // Attach extra info to the error object.\n error.info = json;\n error.status = response.status;\n throw error;\n }\n\n return json;\n}\n\nexport interface DataFetcherProps extends FetchProps, GenericFetcherProps {\n queryKey?: string;\n}\n\nexport function DataFetcher(props: DataFetcherProps) {\n const { url, method, body, headers, queryKey } = props;\n const fetchProps: FetchProps = { url, method, body, headers };\n const result = usePlasmicQueryData(\n queryKey || JSON.stringify({ type: \"DataFetcher\", ...fetchProps }),\n () => performFetch(fetchProps)\n );\n return <GenericFetcherShell result={result} {...props} />;\n}\n\nfunction mkFetchProps(\n defaultUrl: string,\n defaultMethod: string\n): PropMetas<FetchProps & { queryKey?: string }> {\n return {\n url: {\n type: \"string\",\n defaultValue: defaultUrl,\n description: \"Where to fetch the data from\",\n },\n method: {\n type: \"choice\",\n options: [\n \"GET\",\n \"DELETE\",\n \"CONNECT\",\n \"HEAD\",\n \"OPTIONS\",\n \"POST\",\n \"PUT\",\n \"TRACE\",\n ],\n defaultValue: defaultMethod,\n description: \"Method to use when fetching\",\n },\n headers: {\n type: \"object\",\n description: \"Request headers (as JSON object) to send\",\n defaultValue: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n },\n queryKey: {\n type: \"string\",\n description:\n \"A globally unique ID for this query, used for invalidating queries\",\n invariantable: true,\n },\n };\n}\n\nexport const dataFetcherMeta: ComponentMeta<DataFetcherProps> = {\n name: \"hostless-plasmic-query-data-fetcher\",\n displayName: \"HTTP REST API Fetcher\",\n importName: \"DataFetcher\",\n importPath: \"@plasmicpkgs/plasmic-query\",\n providesData: true,\n description:\n \"These fetches may be run client-side (from the browser). Use [Data Queries](https://docs.plasmic.app/learn/http-api-integration/) for authenticated queries or CORS.\",\n props: {\n ...(mkFetchProps(\n \"https://api.github.com/users/plasmicapp/repos\",\n \"GET\"\n ) as any),\n body: {\n type: \"object\",\n description: \"JSON object to be sent in the request body\",\n },\n ...(genericFetcherPropsMeta as any),\n },\n defaultStyles: {\n maxWidth: \"100%\",\n width: \"stretch\",\n },\n};\n\nexport function registerDataFetcher(\n loader?: { registerComponent: typeof registerComponent },\n customDataFetcherMeta?: ComponentMeta<DataFetcherProps>\n) {\n if (loader) {\n loader.registerComponent(\n DataFetcher,\n customDataFetcherMeta ?? dataFetcherMeta\n );\n } else {\n registerComponent(DataFetcher, customDataFetcherMeta ?? dataFetcherMeta);\n }\n}\n\nexport interface GraphqlFetcherProps\n extends GenericFetcherProps,\n Omit<FetchProps, \"body\"> {\n query?: { query?: string; variables?: object };\n queryKey?: string;\n varOverrides?: object;\n}\n\nexport function GraphqlFetcher(props: GraphqlFetcherProps) {\n const { query, url, method, headers, queryKey, varOverrides } = props;\n const fetchProps: FetchProps = {\n body: { ...query, variables: { ...query?.variables, ...varOverrides } },\n url,\n method,\n headers,\n };\n const result = usePlasmicQueryData(\n queryKey || JSON.stringify({ type: \"GraphqlFetcher\", ...fetchProps }),\n () => performFetch(fetchProps)\n );\n return <GenericFetcherShell result={result} {...props} />;\n}\n\nexport const graphqlFetcherMeta: ComponentMeta<GraphqlFetcherProps> = {\n name: \"hostless-plasmic-query-graphql-fetcher\",\n displayName: \"GraphQL Fetcher\",\n importName: \"GraphqlFetcher\",\n importPath: \"@plasmicpkgs/plasmic-query\",\n providesData: true,\n props: (() => {\n const gqlMetas: PropMetas<GraphqlFetcherProps> = {\n query: {\n type: \"code\",\n lang: \"graphql\",\n headers: (props) => props.headers,\n endpoint: (props) => props.url ?? \"\",\n defaultValue: {\n query: `query MyQuery($name: String) {\n characters(filter: {name: $name}) {\n results {\n name\n species\n image\n }\n }\n}\n`,\n variables: {\n name: \"Rick Sanchez\",\n },\n },\n },\n varOverrides: {\n type: \"object\",\n displayName: \"Override variables\",\n description:\n \"Pass in dynamic values for your query variables, as an object of key-values\",\n defaultValue: {},\n },\n };\n // Reorder the props\n const { url, query, method, headers, queryKey, ...rest } = {\n ...mkFetchProps(\"https://rickandmortyapi.com/graphql\", \"POST\"),\n ...gqlMetas,\n ...genericFetcherPropsMeta,\n };\n return {\n url,\n query,\n method,\n headers,\n queryKey,\n ...rest,\n } as any;\n })(),\n defaultStyles: {\n maxWidth: \"100%\",\n width: \"stretch\",\n },\n};\n\nexport function registerGraphqlFetcher(\n loader?: { registerComponent: typeof registerComponent },\n customDataFetcherMeta?: ComponentMeta<GraphqlFetcherProps>\n) {\n if (loader) {\n loader.registerComponent(\n GraphqlFetcher,\n customDataFetcherMeta ?? graphqlFetcherMeta\n );\n } else {\n registerComponent(\n GraphqlFetcher,\n customDataFetcherMeta ?? graphqlFetcherMeta\n );\n }\n}\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n}) {\n registerDataFetcher(loader);\n registerGraphqlFetcher(loader);\n}\n"],"names":["genericFetcherPropsMeta","children","loadingDisplay","type","defaultValue","errorDisplay","dataName","displayName","description","errorName","previewSpinner","previewErrorDisplay","noLayout","GenericFetcherShell","_ref","result","className","inEditor","usePlasmicCanvasContext","React","DataProvider","name","data","error","content","performFetch","_x","_performFetch","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref2","url","method","body","headers","response","text","json","wrap","_callee$","_context","prev","next","Error","fetch","undefined","JSON","stringify","sent","parse","e","ok","statusText","info","status","abrupt","stop","DataFetcher","props","queryKey","fetchProps","usePlasmicQueryData","_extends","mkFetchProps","defaultUrl","defaultMethod","options","Accept","invariantable","dataFetcherMeta","importName","importPath","providesData","defaultStyles","maxWidth","width","registerDataFetcher","loader","customDataFetcherMeta","registerComponent","GraphqlFetcher","query","varOverrides","variables","graphqlFetcherMeta","gqlMetas","lang","endpoint","_props$url","_mkFetchProps$gqlMeta","rest","_objectWithoutPropertiesLoose","_excluded","registerGraphqlFetcher","registerAll"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@plasmicapp/host"),r=e(require("@plasmicapp/host/registerComponent")),n=require("@plasmicapp/query"),a=e(require("react"));function o(){o=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,a=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},u=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function h(e,t,r,n){var o=Object.create((t&&t.prototype instanceof m?t:m).prototype),i=new F(n||[]);return a(o,"_invoke",{value:N(e,r,i)}),o}function p(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=h;var f="suspendedStart",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};l(w,u,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(D([])));E&&E!==r&&n.call(E,u)&&(w=E);var O=b.prototype=m.prototype=Object.create(w);function q(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function L(e,t){function r(a,o,i,u){var c=p(e[a],e,o);if("throw"!==c.type){var s=c.arg,l=s.value;return l&&"object"==typeof l&&n.call(l,"__await")?t.resolve(l.__await).then((function(e){r("next",e,i,u)}),(function(e){r("throw",e,i,u)})):t.resolve(l).then((function(e){s.value=e,i(s)}),(function(e){return r("throw",e,i,u)}))}u(c.arg)}var o;a(this,"_invoke",{value:function(e,n){function a(){return new t((function(t,a){r(e,n,t,a)}))}return o=o?o.then(a,a):a()}})}function N(t,r,n){var a=f;return function(o,i){if(a===y)throw new Error("Generator is already running");if(a===d){if("throw"===o)throw i;return{value:e,done:!0}}for(n.method=o,n.arg=i;;){var u=n.delegate;if(u){var c=j(u,n);if(c){if(c===v)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(a===f)throw a=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=y;var s=p(t,r,n);if("normal"===s.type){if(a=n.done?d:"suspendedYield",s.arg===v)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(a=d,n.method="throw",n.arg=s.arg)}}}function j(t,r){var n=r.method,a=t.iterator[n];if(a===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,j(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var o=p(a,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function P(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(P,this),this.reset(!0)}function D(t){if(t||""===t){var r=t[u];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function r(){for(;++a<t.length;)if(n.call(t,a))return r.value=t[a],r.done=!1,r;return r.value=e,r.done=!0,r};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return g.prototype=b,a(O,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=l(b,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,l(e,s,"GeneratorFunction")),e.prototype=Object.create(O),e},t.awrap=function(e){return{__await:e}},q(L.prototype),l(L.prototype,c,(function(){return this})),t.AsyncIterator=L,t.async=function(e,r,n,a,o){void 0===o&&(o=Promise);var i=new L(h(e,r,n,a),o);return t.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},q(O),l(O,s,"Generator"),l(O,u,(function(){return this})),l(O,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=D,F.prototype={constructor:F,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(S),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function a(n,a){return u.type="throw",u.arg=t,r.next=n,a&&(r.method="next",r.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],u=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var a=n.arg;S(r)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:D(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function i(e,t,r,n,a,o,i){try{var u=e[o](i),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,a)}function u(e){return function(){var t=this,r=arguments;return new Promise((function(n,a){var o=e.apply(t,r);function u(e){i(o,n,a,u,c,"next",e)}function c(e){i(o,n,a,u,c,"throw",e)}u(void 0)}))}}function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function s(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)t.indexOf(r=o[n])>=0||(a[r]=e[r]);return a}var l=["url","query","method","headers","queryKey"],h={children:"slot",loadingDisplay:{type:"slot",defaultValue:"Loading..."},errorDisplay:{type:"slot",defaultValue:"Error fetching data"},dataName:{type:"string",displayName:"Variable name",defaultValue:"fetchedData",description:"Variable name to store the fetched data in"},previewSpinner:{type:"boolean",description:"Force preview the loading state",displayName:"Preview loading"},previewErrorDisplay:{type:"boolean",description:"Force preview the error display",displayName:"Preview error"},noLayout:{type:"boolean",displayName:"No layout",description:"When set, CMS Data Loader will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.",defaultValue:!1}};function p(e){var r=e.result,n=e.children,o=e.loadingDisplay,i=e.previewSpinner,u=e.errorDisplay,c=e.previewErrorDisplay,s=e.dataName,l=e.noLayout,h=e.className,p=!!t.usePlasmicCanvasContext();if(p&&i||!("error"in r)&&!("data"in r))return a.createElement(a.Fragment,null,null!=o?o:null);if(p&&c||"error"in r)return a.createElement(a.Fragment,null,null!=u?u:null);var f=a.createElement(t.DataProvider,{name:s,data:r.data},n);return l?f:a.createElement("div",{className:h},f)}function f(e){return y.apply(this,arguments)}function y(){return(y=u(o().mark((function e(t){var r,n,a,i,u,c;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.method,a=t.body,i=t.headers,r=t.url){e.next=3;break}throw new Error("Please specify a URL to fetch");case 3:return e.next=5,fetch(r,{method:n,headers:i,body:void 0===a||"string"==typeof a?a:JSON.stringify(a)});case 5:if((u=e.sent).ok){e.next=8;break}throw new Error(u.statusText);case 8:return e.next=10,u.text();case 10:return c=e.sent,e.prev=11,e.abrupt("return",JSON.parse(c));case 15:return e.prev=15,e.t0=e.catch(11),e.abrupt("return",{text:c});case 18:case"end":return e.stop()}}),e,null,[[11,15]])})))).apply(this,arguments)}function d(e){var t={url:e.url,method:e.method,body:e.body,headers:e.headers},r=n.usePlasmicQueryData(e.queryKey||JSON.stringify(c({type:"DataFetcher"},t)),(function(){return f(t)}));return a.createElement(p,Object.assign({result:r},e))}function v(e,t){return{url:{type:"string",defaultValue:e,description:"Where to fetch the data from"},method:{type:"choice",options:["GET","DELETE","CONNECT","HEAD","OPTIONS","POST","PUT","TRACE"],defaultValue:t,description:"Method to use when fetching"},headers:{type:"object",description:"Request headers (as JSON object) to send",defaultValue:{"Content-Type":"application/json",Accept:"application/json"}},queryKey:{type:"string",description:"A globally unique ID for this query, used for invalidating queries",invariantable:!0}}}var m={name:"hostless-plasmic-query-data-fetcher",displayName:"HTTP REST API Fetcher",importName:"DataFetcher",importPath:"@plasmicpkgs/plasmic-query",providesData:!0,description:"These fetches may be run client-side (from the browser). Use [Data Queries](https://docs.plasmic.app/learn/http-api-integration/) for authenticated queries or CORS.",props:c({},v("https://api.github.com/users/plasmicapp/repos","GET"),{body:{type:"object",description:"JSON object to be sent in the request body"}},h),defaultStyles:{maxWidth:"100%",width:"stretch"}};function g(e,t){e?e.registerComponent(d,null!=t?t:m):r(d,null!=t?t:m)}function b(e){var t=e.query,r=e.url,o=e.method,i=e.headers,u=e.queryKey,s={body:c({},t,{variables:c({},null==t?void 0:t.variables,e.varOverrides)}),url:r,method:o,headers:i},l=n.usePlasmicQueryData(u||JSON.stringify(c({type:"GraphqlFetcher"},s)),(function(){return f(s)}));return a.createElement(p,Object.assign({result:l},e))}var w={name:"hostless-plasmic-query-graphql-fetcher",displayName:"GraphQL Fetcher",importName:"GraphqlFetcher",importPath:"@plasmicpkgs/plasmic-query",providesData:!0,props:function(){var e={query:{type:"code",lang:"graphql",headers:function(e){return e.headers},endpoint:function(e){var t;return null!=(t=e.url)?t:""},defaultValue:{query:"query MyQuery($name: String) {\n characters(filter: {name: $name}) {\n results {\n name\n species\n image\n }\n }\n}\n",variables:{name:"Rick Sanchez"}}},varOverrides:{type:"object",displayName:"Override variables",description:"Pass in dynamic values for your query variables, as an object of key-values",defaultValue:{}}},t=c({},v("https://rickandmortyapi.com/graphql","POST"),e,h);return c({url:t.url,query:t.query,method:t.method,headers:t.headers,queryKey:t.queryKey},s(t,l))}(),defaultStyles:{maxWidth:"100%",width:"stretch"}};function x(e,t){e?e.registerComponent(b,null!=t?t:w):r(b,null!=t?t:w)}exports.DataFetcher=d,exports.GenericFetcherShell=p,exports.GraphqlFetcher=b,exports.dataFetcherMeta=m,exports.genericFetcherPropsMeta=h,exports.graphqlFetcherMeta=w,exports.registerAll=function(e){g(e),x(e)},exports.registerDataFetcher=g,exports.registerGraphqlFetcher=x;
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@plasmicapp/host"),r=e(require("@plasmicapp/host/registerComponent")),n=require("@plasmicapp/query"),a=e(require("react"));function o(){o=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,a=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},u=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function h(e,t,r,n){var o=Object.create((t&&t.prototype instanceof m?t:m).prototype),i=new D(n||[]);return a(o,"_invoke",{value:N(e,r,i)}),o}function p(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=h;var f="suspendedStart",y="executing",d="completed",v={};function m(){}function g(){}function w(){}var b={};l(b,u,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(F([])));E&&E!==r&&n.call(E,u)&&(b=E);var O=w.prototype=m.prototype=Object.create(b);function q(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function L(e,t){function r(a,o,i,u){var s=p(e[a],e,o);if("throw"!==s.type){var c=s.arg,l=c.value;return l&&"object"==typeof l&&n.call(l,"__await")?t.resolve(l.__await).then((function(e){r("next",e,i,u)}),(function(e){r("throw",e,i,u)})):t.resolve(l).then((function(e){c.value=e,i(c)}),(function(e){return r("throw",e,i,u)}))}u(s.arg)}var o;a(this,"_invoke",{value:function(e,n){function a(){return new t((function(t,a){r(e,n,t,a)}))}return o=o?o.then(a,a):a()}})}function N(t,r,n){var a=f;return function(o,i){if(a===y)throw new Error("Generator is already running");if(a===d){if("throw"===o)throw i;return{value:e,done:!0}}for(n.method=o,n.arg=i;;){var u=n.delegate;if(u){var s=j(u,n);if(s){if(s===v)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(a===f)throw a=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=y;var c=p(t,r,n);if("normal"===c.type){if(a=n.done?d:"suspendedYield",c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(a=d,n.method="throw",n.arg=c.arg)}}}function j(t,r){var n=r.method,a=t.iterator[n];if(a===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,j(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var o=p(a,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function P(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function D(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(P,this),this.reset(!0)}function F(t){if(t||""===t){var r=t[u];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function r(){for(;++a<t.length;)if(n.call(t,a))return r.value=t[a],r.done=!1,r;return r.value=e,r.done=!0,r};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return g.prototype=w,a(O,"constructor",{value:w,configurable:!0}),a(w,"constructor",{value:g,configurable:!0}),g.displayName=l(w,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,w):(e.__proto__=w,l(e,c,"GeneratorFunction")),e.prototype=Object.create(O),e},t.awrap=function(e){return{__await:e}},q(L.prototype),l(L.prototype,s,(function(){return this})),t.AsyncIterator=L,t.async=function(e,r,n,a,o){void 0===o&&(o=Promise);var i=new L(h(e,r,n,a),o);return t.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},q(O),l(O,c,"Generator"),l(O,u,(function(){return this})),l(O,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=F,D.prototype={constructor:D,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(S),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function a(n,a){return u.type="throw",u.arg=t,r.next=n,a&&(r.method="next",r.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],u=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var s=n.call(i,"catchLoc"),c=n.call(i,"finallyLoc");if(s&&c){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var a=n.arg;S(r)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:F(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function i(e,t,r,n,a,o,i){try{var u=e[o](i),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,a)}function u(e){return function(){var t=this,r=arguments;return new Promise((function(n,a){var o=e.apply(t,r);function u(e){i(o,n,a,u,s,"next",e)}function s(e){i(o,n,a,u,s,"throw",e)}u(void 0)}))}}function s(){return(s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function c(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)t.indexOf(r=o[n])>=0||(a[r]=e[r]);return a}var l=["url","query","method","headers","queryKey"],h={children:"slot",loadingDisplay:{type:"slot",defaultValue:"Loading..."},errorDisplay:{type:"slot",defaultValue:"Error fetching data"},dataName:{type:"string",displayName:"Data name",defaultValue:"fetchedData",description:"Variable name to store the fetched data in"},errorName:{type:"string",displayName:"Error name",defaultValue:"fetchError",description:"Variable name to store the fetch error in"},previewSpinner:{type:"boolean",description:"Force preview the loading state",displayName:"Preview loading"},previewErrorDisplay:{type:"boolean",description:"Force preview the error display",displayName:"Preview error"},noLayout:{type:"boolean",displayName:"No layout",description:"When set, CMS Data Loader will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.",defaultValue:!1}};function p(e){var r=e.result,n=e.children,o=e.loadingDisplay,i=e.previewSpinner,u=e.errorDisplay,s=e.previewErrorDisplay,c=e.dataName,l=e.errorName,h=e.noLayout,p=e.className,f=!!t.usePlasmicCanvasContext();if(f&&i||!("error"in r)&&!("data"in r))return a.createElement(a.Fragment,null,null!=o?o:null);if(f&&s||"error"in r)return a.createElement(t.DataProvider,{name:l,data:r.error},null!=u?u:null);var y=a.createElement(t.DataProvider,{name:c,data:r.data},n);return h?y:a.createElement("div",{className:p},y)}function f(e){return y.apply(this,arguments)}function y(){return(y=u(o().mark((function e(t){var r,n,a,i,u,s,c,l;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.method,a=t.body,i=t.headers,r=t.url){e.next=3;break}throw new Error("Please specify a URL to fetch");case 3:return e.next=5,fetch(r,{method:n,headers:i,body:void 0===a||"string"==typeof a?a:JSON.stringify(a)});case 5:return u=e.sent,e.next=8,u.text();case 8:c={text:s=e.sent};try{c=JSON.parse(s)}catch(e){c={text:s}}if(u.ok){e.next=16;break}throw(l=new Error(u.statusText)).info=c,l.status=u.status,l;case 16:return e.abrupt("return",c);case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function d(e){var t={url:e.url,method:e.method,body:e.body,headers:e.headers},r=n.usePlasmicQueryData(e.queryKey||JSON.stringify(s({type:"DataFetcher"},t)),(function(){return f(t)}));return a.createElement(p,Object.assign({result:r},e))}function v(e,t){return{url:{type:"string",defaultValue:e,description:"Where to fetch the data from"},method:{type:"choice",options:["GET","DELETE","CONNECT","HEAD","OPTIONS","POST","PUT","TRACE"],defaultValue:t,description:"Method to use when fetching"},headers:{type:"object",description:"Request headers (as JSON object) to send",defaultValue:{"Content-Type":"application/json",Accept:"application/json"}},queryKey:{type:"string",description:"A globally unique ID for this query, used for invalidating queries",invariantable:!0}}}var m={name:"hostless-plasmic-query-data-fetcher",displayName:"HTTP REST API Fetcher",importName:"DataFetcher",importPath:"@plasmicpkgs/plasmic-query",providesData:!0,description:"These fetches may be run client-side (from the browser). Use [Data Queries](https://docs.plasmic.app/learn/http-api-integration/) for authenticated queries or CORS.",props:s({},v("https://api.github.com/users/plasmicapp/repos","GET"),{body:{type:"object",description:"JSON object to be sent in the request body"}},h),defaultStyles:{maxWidth:"100%",width:"stretch"}};function g(e,t){e?e.registerComponent(d,null!=t?t:m):r(d,null!=t?t:m)}function w(e){var t=e.query,r=e.url,o=e.method,i=e.headers,u=e.queryKey,c={body:s({},t,{variables:s({},null==t?void 0:t.variables,e.varOverrides)}),url:r,method:o,headers:i},l=n.usePlasmicQueryData(u||JSON.stringify(s({type:"GraphqlFetcher"},c)),(function(){return f(c)}));return a.createElement(p,Object.assign({result:l},e))}var b={name:"hostless-plasmic-query-graphql-fetcher",displayName:"GraphQL Fetcher",importName:"GraphqlFetcher",importPath:"@plasmicpkgs/plasmic-query",providesData:!0,props:function(){var e={query:{type:"code",lang:"graphql",headers:function(e){return e.headers},endpoint:function(e){var t;return null!=(t=e.url)?t:""},defaultValue:{query:"query MyQuery($name: String) {\n characters(filter: {name: $name}) {\n results {\n name\n species\n image\n }\n }\n}\n",variables:{name:"Rick Sanchez"}}},varOverrides:{type:"object",displayName:"Override variables",description:"Pass in dynamic values for your query variables, as an object of key-values",defaultValue:{}}},t=s({},v("https://rickandmortyapi.com/graphql","POST"),e,h);return s({url:t.url,query:t.query,method:t.method,headers:t.headers,queryKey:t.queryKey},c(t,l))}(),defaultStyles:{maxWidth:"100%",width:"stretch"}};function x(e,t){e?e.registerComponent(w,null!=t?t:b):r(w,null!=t?t:b)}exports.DataFetcher=d,exports.GenericFetcherShell=p,exports.GraphqlFetcher=w,exports.dataFetcherMeta=m,exports.genericFetcherPropsMeta=h,exports.graphqlFetcherMeta=b,exports.registerAll=function(e){g(e),x(e)},exports.registerDataFetcher=g,exports.registerGraphqlFetcher=x;
2
2
  //# sourceMappingURL=plasmic-query.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plasmic-query.cjs.production.min.js","sources":["../src/Fetcher.tsx"],"sourcesContent":["import { DataProvider, usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport React, { ReactNode } from \"react\";\n\nexport interface GenericFetcherProps {\n children?: ReactNode;\n loadingDisplay?: ReactNode;\n previewSpinner?: boolean;\n errorDisplay?: ReactNode;\n previewErrorDisplay?: boolean;\n dataName?: string;\n noLayout?: boolean;\n className?: string;\n}\n\ntype PropMetas<P> = ComponentMeta<P>[\"props\"];\n\nexport const genericFetcherPropsMeta: PropMetas<GenericFetcherProps> = {\n children: \"slot\",\n loadingDisplay: { type: \"slot\", defaultValue: \"Loading...\" },\n errorDisplay: { type: \"slot\", defaultValue: \"Error fetching data\" },\n dataName: {\n type: \"string\",\n displayName: \"Variable name\",\n defaultValue: \"fetchedData\",\n description: \"Variable name to store the fetched data in\",\n },\n previewSpinner: {\n type: \"boolean\",\n description: \"Force preview the loading state\",\n displayName: \"Preview loading\",\n },\n previewErrorDisplay: {\n type: \"boolean\",\n description: \"Force preview the error display\",\n displayName: \"Preview error\",\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, CMS Data Loader will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n};\n\nexport function GenericFetcherShell<T>({\n result,\n children,\n loadingDisplay,\n previewSpinner,\n errorDisplay,\n previewErrorDisplay,\n dataName,\n noLayout,\n className,\n}: GenericFetcherProps & {\n result: { data?: T; error?: Error; isLoading?: boolean };\n}) {\n const inEditor = !!usePlasmicCanvasContext();\n if (\n (inEditor && previewSpinner) ||\n (!(\"error\" in result) && !(\"data\" in result))\n ) {\n return <>{loadingDisplay ?? null}</>;\n } else if ((inEditor && previewErrorDisplay) || \"error\" in result) {\n return <>{errorDisplay ?? null}</>;\n } else {\n const content = (\n <DataProvider name={dataName} data={result.data}>\n {children}\n </DataProvider>\n );\n return noLayout ? content : <div className={className}>{content}</div>;\n }\n}\n\nexport interface FetchProps {\n url?: string;\n method?: string;\n body?: string | object;\n headers?: Record<string, string>;\n}\n\n/**\n * Tries to return the JSON response, or else returns an object with a text key containing the response body text.\n */\nasync function performFetch({ url, method, body, headers }: FetchProps) {\n if (!url) {\n throw new Error(\"Please specify a URL to fetch\");\n }\n const response = await fetch(url, {\n method,\n headers,\n body:\n body === undefined\n ? body\n : typeof body === \"string\"\n ? body\n : JSON.stringify(body),\n });\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const text = await response.text();\n try {\n return JSON.parse(text);\n } catch (e) {\n return { text };\n }\n}\n\nexport interface DataFetcherProps extends FetchProps, GenericFetcherProps {\n queryKey?: string;\n}\n\nexport function DataFetcher(props: DataFetcherProps) {\n const { url, method, body, headers, queryKey } = props;\n const fetchProps: FetchProps = { url, method, body, headers };\n const result = usePlasmicQueryData(\n queryKey || JSON.stringify({ type: \"DataFetcher\", ...fetchProps }),\n () => performFetch(fetchProps)\n );\n return <GenericFetcherShell result={result} {...props} />;\n}\n\nfunction mkFetchProps(\n defaultUrl: string,\n defaultMethod: string\n): PropMetas<FetchProps & { queryKey?: string }> {\n return {\n url: {\n type: \"string\",\n defaultValue: defaultUrl,\n description: \"Where to fetch the data from\",\n },\n method: {\n type: \"choice\",\n options: [\n \"GET\",\n \"DELETE\",\n \"CONNECT\",\n \"HEAD\",\n \"OPTIONS\",\n \"POST\",\n \"PUT\",\n \"TRACE\",\n ],\n defaultValue: defaultMethod,\n description: \"Method to use when fetching\",\n },\n headers: {\n type: \"object\",\n description: \"Request headers (as JSON object) to send\",\n defaultValue: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n },\n queryKey: {\n type: \"string\",\n description:\n \"A globally unique ID for this query, used for invalidating queries\",\n invariantable: true,\n },\n };\n}\n\nexport const dataFetcherMeta: ComponentMeta<DataFetcherProps> = {\n name: \"hostless-plasmic-query-data-fetcher\",\n displayName: \"HTTP REST API Fetcher\",\n importName: \"DataFetcher\",\n importPath: \"@plasmicpkgs/plasmic-query\",\n providesData: true,\n description:\n \"These fetches may be run client-side (from the browser). Use [Data Queries](https://docs.plasmic.app/learn/http-api-integration/) for authenticated queries or CORS.\",\n props: {\n ...(mkFetchProps(\n \"https://api.github.com/users/plasmicapp/repos\",\n \"GET\"\n ) as any),\n body: {\n type: \"object\",\n description: \"JSON object to be sent in the request body\",\n },\n ...(genericFetcherPropsMeta as any),\n },\n defaultStyles: {\n maxWidth: \"100%\",\n width: \"stretch\",\n },\n};\n\nexport function registerDataFetcher(\n loader?: { registerComponent: typeof registerComponent },\n customDataFetcherMeta?: ComponentMeta<DataFetcherProps>\n) {\n if (loader) {\n loader.registerComponent(\n DataFetcher,\n customDataFetcherMeta ?? dataFetcherMeta\n );\n } else {\n registerComponent(DataFetcher, customDataFetcherMeta ?? dataFetcherMeta);\n }\n}\n\nexport interface GraphqlFetcherProps\n extends GenericFetcherProps,\n Omit<FetchProps, \"body\"> {\n query?: { query?: string; variables?: object };\n queryKey?: string;\n varOverrides?: object;\n}\n\nexport function GraphqlFetcher(props: GraphqlFetcherProps) {\n const { query, url, method, headers, queryKey, varOverrides } = props;\n const fetchProps: FetchProps = {\n body: { ...query, variables: { ...query?.variables, ...varOverrides } },\n url,\n method,\n headers,\n };\n const result = usePlasmicQueryData(\n queryKey || JSON.stringify({ type: \"GraphqlFetcher\", ...fetchProps }),\n () => performFetch(fetchProps)\n );\n return <GenericFetcherShell result={result} {...props} />;\n}\n\nexport const graphqlFetcherMeta: ComponentMeta<GraphqlFetcherProps> = {\n name: \"hostless-plasmic-query-graphql-fetcher\",\n displayName: \"GraphQL Fetcher\",\n importName: \"GraphqlFetcher\",\n importPath: \"@plasmicpkgs/plasmic-query\",\n providesData: true,\n props: (() => {\n const gqlMetas: PropMetas<GraphqlFetcherProps> = {\n query: {\n type: \"code\",\n lang: \"graphql\",\n headers: (props) => props.headers,\n endpoint: (props) => props.url ?? \"\",\n defaultValue: {\n query: `query MyQuery($name: String) {\n characters(filter: {name: $name}) {\n results {\n name\n species\n image\n }\n }\n}\n`,\n variables: {\n name: \"Rick Sanchez\",\n },\n },\n },\n varOverrides: {\n type: \"object\",\n displayName: \"Override variables\",\n description:\n \"Pass in dynamic values for your query variables, as an object of key-values\",\n defaultValue: {},\n },\n };\n // Reorder the props\n const { url, query, method, headers, queryKey, ...rest } = {\n ...mkFetchProps(\"https://rickandmortyapi.com/graphql\", \"POST\"),\n ...gqlMetas,\n ...genericFetcherPropsMeta,\n };\n return {\n url,\n query,\n method,\n headers,\n queryKey,\n ...rest,\n } as any;\n })(),\n defaultStyles: {\n maxWidth: \"100%\",\n width: \"stretch\",\n },\n};\n\nexport function registerGraphqlFetcher(\n loader?: { registerComponent: typeof registerComponent },\n customDataFetcherMeta?: ComponentMeta<GraphqlFetcherProps>\n) {\n if (loader) {\n loader.registerComponent(\n GraphqlFetcher,\n customDataFetcherMeta ?? graphqlFetcherMeta\n );\n } else {\n registerComponent(\n GraphqlFetcher,\n customDataFetcherMeta ?? graphqlFetcherMeta\n );\n }\n}\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n}) {\n registerDataFetcher(loader);\n registerGraphqlFetcher(loader);\n}\n"],"names":["genericFetcherPropsMeta","children","loadingDisplay","type","defaultValue","errorDisplay","dataName","displayName","description","previewSpinner","previewErrorDisplay","noLayout","GenericFetcherShell","_ref","result","className","inEditor","usePlasmicCanvasContext","React","content","DataProvider","name","data","performFetch","_x","_performFetch","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref2","url","method","body","headers","response","text","wrap","_context","prev","next","Error","fetch","undefined","JSON","stringify","sent","ok","statusText","abrupt","parse","t0","stop","DataFetcher","props","fetchProps","usePlasmicQueryData","queryKey","_extends","mkFetchProps","defaultUrl","defaultMethod","options","Content-Type","Accept","invariantable","dataFetcherMeta","importName","importPath","providesData","defaultStyles","maxWidth","width","registerDataFetcher","loader","customDataFetcherMeta","registerComponent","GraphqlFetcher","query","variables","varOverrides","graphqlFetcherMeta","gqlMetas","lang","endpoint","_props$url","_mkFetchProps$gqlMeta","_objectWithoutPropertiesLoose","_excluded","registerGraphqlFetcher"],"mappings":"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"}
1
+ {"version":3,"file":"plasmic-query.cjs.production.min.js","sources":["../src/Fetcher.tsx"],"sourcesContent":["import { DataProvider, usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport React, { ReactNode } from \"react\";\n\nexport interface GenericFetcherProps {\n children?: ReactNode;\n loadingDisplay?: ReactNode;\n previewSpinner?: boolean;\n errorDisplay?: ReactNode;\n previewErrorDisplay?: boolean;\n dataName?: string;\n errorName?: string;\n noLayout?: boolean;\n className?: string;\n}\n\ntype PropMetas<P> = ComponentMeta<P>[\"props\"];\n\ntype CustomError = Error & {\n info: Record<string, any>;\n status: number;\n};\n\nexport const genericFetcherPropsMeta: PropMetas<GenericFetcherProps> = {\n children: \"slot\",\n loadingDisplay: { type: \"slot\", defaultValue: \"Loading...\" },\n errorDisplay: { type: \"slot\", defaultValue: \"Error fetching data\" },\n dataName: {\n type: \"string\",\n displayName: \"Data name\",\n defaultValue: \"fetchedData\",\n description: \"Variable name to store the fetched data in\",\n },\n errorName: {\n type: \"string\",\n displayName: \"Error name\",\n defaultValue: \"fetchError\",\n description: \"Variable name to store the fetch error in\",\n },\n previewSpinner: {\n type: \"boolean\",\n description: \"Force preview the loading state\",\n displayName: \"Preview loading\",\n },\n previewErrorDisplay: {\n type: \"boolean\",\n description: \"Force preview the error display\",\n displayName: \"Preview error\",\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, CMS Data Loader will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n};\n\nexport function GenericFetcherShell<T>({\n result,\n children,\n loadingDisplay,\n previewSpinner,\n errorDisplay,\n previewErrorDisplay,\n dataName,\n errorName,\n noLayout,\n className,\n}: GenericFetcherProps & {\n result: { data?: T; error?: Error; isLoading?: boolean };\n}) {\n const inEditor = !!usePlasmicCanvasContext();\n if (\n (inEditor && previewSpinner) ||\n (!(\"error\" in result) && !(\"data\" in result))\n ) {\n return <>{loadingDisplay ?? null}</>;\n } else if ((inEditor && previewErrorDisplay) || \"error\" in result) {\n return (\n <DataProvider name={errorName} data={result.error}>\n {errorDisplay ?? null}\n </DataProvider>\n );\n } else {\n const content = (\n <DataProvider name={dataName} data={result.data}>\n {children}\n </DataProvider>\n );\n return noLayout ? content : <div className={className}>{content}</div>;\n }\n}\n\nexport interface FetchProps {\n url?: string;\n method?: string;\n body?: string | object;\n headers?: Record<string, string>;\n}\n\n/**\n * Tries to return the JSON response, or else returns an object with a text key containing the response body text.\n */\nasync function performFetch({ url, method, body, headers }: FetchProps) {\n if (!url) {\n throw new Error(\"Please specify a URL to fetch\");\n }\n const response = await fetch(url, {\n method,\n headers,\n body:\n body === undefined\n ? body\n : typeof body === \"string\"\n ? body\n : JSON.stringify(body),\n });\n\n const text = await response.text();\n let json: Record<string, any> = { text };\n\n try {\n json = JSON.parse(text);\n } catch (e) {\n json = { text };\n }\n\n // @see https://swr.vercel.app/docs/error-handling\n // If the status code is not in the range 200-299,\n // we still try to parse and throw it.\n if (!response.ok) {\n const error = new Error(response.statusText) as CustomError;\n // Attach extra info to the error object.\n error.info = json;\n error.status = response.status;\n throw error;\n }\n\n return json;\n}\n\nexport interface DataFetcherProps extends FetchProps, GenericFetcherProps {\n queryKey?: string;\n}\n\nexport function DataFetcher(props: DataFetcherProps) {\n const { url, method, body, headers, queryKey } = props;\n const fetchProps: FetchProps = { url, method, body, headers };\n const result = usePlasmicQueryData(\n queryKey || JSON.stringify({ type: \"DataFetcher\", ...fetchProps }),\n () => performFetch(fetchProps)\n );\n return <GenericFetcherShell result={result} {...props} />;\n}\n\nfunction mkFetchProps(\n defaultUrl: string,\n defaultMethod: string\n): PropMetas<FetchProps & { queryKey?: string }> {\n return {\n url: {\n type: \"string\",\n defaultValue: defaultUrl,\n description: \"Where to fetch the data from\",\n },\n method: {\n type: \"choice\",\n options: [\n \"GET\",\n \"DELETE\",\n \"CONNECT\",\n \"HEAD\",\n \"OPTIONS\",\n \"POST\",\n \"PUT\",\n \"TRACE\",\n ],\n defaultValue: defaultMethod,\n description: \"Method to use when fetching\",\n },\n headers: {\n type: \"object\",\n description: \"Request headers (as JSON object) to send\",\n defaultValue: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n },\n queryKey: {\n type: \"string\",\n description:\n \"A globally unique ID for this query, used for invalidating queries\",\n invariantable: true,\n },\n };\n}\n\nexport const dataFetcherMeta: ComponentMeta<DataFetcherProps> = {\n name: \"hostless-plasmic-query-data-fetcher\",\n displayName: \"HTTP REST API Fetcher\",\n importName: \"DataFetcher\",\n importPath: \"@plasmicpkgs/plasmic-query\",\n providesData: true,\n description:\n \"These fetches may be run client-side (from the browser). Use [Data Queries](https://docs.plasmic.app/learn/http-api-integration/) for authenticated queries or CORS.\",\n props: {\n ...(mkFetchProps(\n \"https://api.github.com/users/plasmicapp/repos\",\n \"GET\"\n ) as any),\n body: {\n type: \"object\",\n description: \"JSON object to be sent in the request body\",\n },\n ...(genericFetcherPropsMeta as any),\n },\n defaultStyles: {\n maxWidth: \"100%\",\n width: \"stretch\",\n },\n};\n\nexport function registerDataFetcher(\n loader?: { registerComponent: typeof registerComponent },\n customDataFetcherMeta?: ComponentMeta<DataFetcherProps>\n) {\n if (loader) {\n loader.registerComponent(\n DataFetcher,\n customDataFetcherMeta ?? dataFetcherMeta\n );\n } else {\n registerComponent(DataFetcher, customDataFetcherMeta ?? dataFetcherMeta);\n }\n}\n\nexport interface GraphqlFetcherProps\n extends GenericFetcherProps,\n Omit<FetchProps, \"body\"> {\n query?: { query?: string; variables?: object };\n queryKey?: string;\n varOverrides?: object;\n}\n\nexport function GraphqlFetcher(props: GraphqlFetcherProps) {\n const { query, url, method, headers, queryKey, varOverrides } = props;\n const fetchProps: FetchProps = {\n body: { ...query, variables: { ...query?.variables, ...varOverrides } },\n url,\n method,\n headers,\n };\n const result = usePlasmicQueryData(\n queryKey || JSON.stringify({ type: \"GraphqlFetcher\", ...fetchProps }),\n () => performFetch(fetchProps)\n );\n return <GenericFetcherShell result={result} {...props} />;\n}\n\nexport const graphqlFetcherMeta: ComponentMeta<GraphqlFetcherProps> = {\n name: \"hostless-plasmic-query-graphql-fetcher\",\n displayName: \"GraphQL Fetcher\",\n importName: \"GraphqlFetcher\",\n importPath: \"@plasmicpkgs/plasmic-query\",\n providesData: true,\n props: (() => {\n const gqlMetas: PropMetas<GraphqlFetcherProps> = {\n query: {\n type: \"code\",\n lang: \"graphql\",\n headers: (props) => props.headers,\n endpoint: (props) => props.url ?? \"\",\n defaultValue: {\n query: `query MyQuery($name: String) {\n characters(filter: {name: $name}) {\n results {\n name\n species\n image\n }\n }\n}\n`,\n variables: {\n name: \"Rick Sanchez\",\n },\n },\n },\n varOverrides: {\n type: \"object\",\n displayName: \"Override variables\",\n description:\n \"Pass in dynamic values for your query variables, as an object of key-values\",\n defaultValue: {},\n },\n };\n // Reorder the props\n const { url, query, method, headers, queryKey, ...rest } = {\n ...mkFetchProps(\"https://rickandmortyapi.com/graphql\", \"POST\"),\n ...gqlMetas,\n ...genericFetcherPropsMeta,\n };\n return {\n url,\n query,\n method,\n headers,\n queryKey,\n ...rest,\n } as any;\n })(),\n defaultStyles: {\n maxWidth: \"100%\",\n width: \"stretch\",\n },\n};\n\nexport function registerGraphqlFetcher(\n loader?: { registerComponent: typeof registerComponent },\n customDataFetcherMeta?: ComponentMeta<GraphqlFetcherProps>\n) {\n if (loader) {\n loader.registerComponent(\n GraphqlFetcher,\n customDataFetcherMeta ?? graphqlFetcherMeta\n );\n } else {\n registerComponent(\n GraphqlFetcher,\n customDataFetcherMeta ?? graphqlFetcherMeta\n );\n }\n}\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n}) {\n registerDataFetcher(loader);\n registerGraphqlFetcher(loader);\n}\n"],"names":["genericFetcherPropsMeta","children","loadingDisplay","type","defaultValue","errorDisplay","dataName","displayName","description","errorName","previewSpinner","previewErrorDisplay","noLayout","GenericFetcherShell","_ref","result","className","inEditor","usePlasmicCanvasContext","React","DataProvider","name","data","error","content","performFetch","_x","_performFetch","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref2","url","method","body","headers","response","text","json","wrap","_context","prev","next","Error","fetch","undefined","JSON","stringify","sent","parse","e","ok","statusText","info","status","abrupt","stop","DataFetcher","props","fetchProps","usePlasmicQueryData","queryKey","_extends","mkFetchProps","defaultUrl","defaultMethod","options","Content-Type","Accept","invariantable","dataFetcherMeta","importName","importPath","providesData","defaultStyles","maxWidth","width","registerDataFetcher","loader","customDataFetcherMeta","registerComponent","GraphqlFetcher","query","variables","varOverrides","graphqlFetcherMeta","gqlMetas","lang","endpoint","_props$url","_mkFetchProps$gqlMeta","_objectWithoutPropertiesLoose","_excluded","registerGraphqlFetcher"],"mappings":"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"}
@@ -374,10 +374,16 @@ var genericFetcherPropsMeta = {
374
374
  },
375
375
  dataName: {
376
376
  type: "string",
377
- displayName: "Variable name",
377
+ displayName: "Data name",
378
378
  defaultValue: "fetchedData",
379
379
  description: "Variable name to store the fetched data in"
380
380
  },
381
+ errorName: {
382
+ type: "string",
383
+ displayName: "Error name",
384
+ defaultValue: "fetchError",
385
+ description: "Variable name to store the fetch error in"
386
+ },
381
387
  previewSpinner: {
382
388
  type: "boolean",
383
389
  description: "Force preview the loading state",
@@ -403,13 +409,17 @@ function GenericFetcherShell(_ref) {
403
409
  errorDisplay = _ref.errorDisplay,
404
410
  previewErrorDisplay = _ref.previewErrorDisplay,
405
411
  dataName = _ref.dataName,
412
+ errorName = _ref.errorName,
406
413
  noLayout = _ref.noLayout,
407
414
  className = _ref.className;
408
415
  var inEditor = !!usePlasmicCanvasContext();
409
416
  if (inEditor && previewSpinner || !("error" in result) && !("data" in result)) {
410
417
  return React.createElement(React.Fragment, null, loadingDisplay != null ? loadingDisplay : null);
411
418
  } else if (inEditor && previewErrorDisplay || "error" in result) {
412
- return React.createElement(React.Fragment, null, errorDisplay != null ? errorDisplay : null);
419
+ return React.createElement(DataProvider, {
420
+ name: errorName,
421
+ data: result.error
422
+ }, errorDisplay != null ? errorDisplay : null);
413
423
  } else {
414
424
  var content = React.createElement(DataProvider, {
415
425
  name: dataName,
@@ -428,7 +438,7 @@ function performFetch(_x) {
428
438
  }
429
439
  function _performFetch() {
430
440
  _performFetch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
431
- var url, method, body, headers, response, text;
441
+ var url, method, body, headers, response, text, json, error;
432
442
  return _regeneratorRuntime().wrap(function _callee$(_context) {
433
443
  while (1) switch (_context.prev = _context.next) {
434
444
  case 0:
@@ -447,29 +457,38 @@ function _performFetch() {
447
457
  });
448
458
  case 5:
449
459
  response = _context.sent;
450
- if (response.ok) {
451
- _context.next = 8;
452
- break;
453
- }
454
- throw new Error(response.statusText);
455
- case 8:
456
- _context.next = 10;
460
+ _context.next = 8;
457
461
  return response.text();
458
- case 10:
462
+ case 8:
459
463
  text = _context.sent;
460
- _context.prev = 11;
461
- return _context.abrupt("return", JSON.parse(text));
462
- case 15:
463
- _context.prev = 15;
464
- _context.t0 = _context["catch"](11);
465
- return _context.abrupt("return", {
464
+ json = {
466
465
  text: text
467
- });
468
- case 18:
466
+ };
467
+ try {
468
+ json = JSON.parse(text);
469
+ } catch (e) {
470
+ json = {
471
+ text: text
472
+ };
473
+ }
474
+ // @see https://swr.vercel.app/docs/error-handling
475
+ // If the status code is not in the range 200-299,
476
+ // we still try to parse and throw it.
477
+ if (response.ok) {
478
+ _context.next = 16;
479
+ break;
480
+ }
481
+ error = new Error(response.statusText); // Attach extra info to the error object.
482
+ error.info = json;
483
+ error.status = response.status;
484
+ throw error;
485
+ case 16:
486
+ return _context.abrupt("return", json);
487
+ case 17:
469
488
  case "end":
470
489
  return _context.stop();
471
490
  }
472
- }, _callee, null, [[11, 15]]);
491
+ }, _callee);
473
492
  }));
474
493
  return _performFetch.apply(this, arguments);
475
494
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plasmic-query.esm.js","sources":["../src/Fetcher.tsx"],"sourcesContent":["import { DataProvider, usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport React, { ReactNode } from \"react\";\n\nexport interface GenericFetcherProps {\n children?: ReactNode;\n loadingDisplay?: ReactNode;\n previewSpinner?: boolean;\n errorDisplay?: ReactNode;\n previewErrorDisplay?: boolean;\n dataName?: string;\n noLayout?: boolean;\n className?: string;\n}\n\ntype PropMetas<P> = ComponentMeta<P>[\"props\"];\n\nexport const genericFetcherPropsMeta: PropMetas<GenericFetcherProps> = {\n children: \"slot\",\n loadingDisplay: { type: \"slot\", defaultValue: \"Loading...\" },\n errorDisplay: { type: \"slot\", defaultValue: \"Error fetching data\" },\n dataName: {\n type: \"string\",\n displayName: \"Variable name\",\n defaultValue: \"fetchedData\",\n description: \"Variable name to store the fetched data in\",\n },\n previewSpinner: {\n type: \"boolean\",\n description: \"Force preview the loading state\",\n displayName: \"Preview loading\",\n },\n previewErrorDisplay: {\n type: \"boolean\",\n description: \"Force preview the error display\",\n displayName: \"Preview error\",\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, CMS Data Loader will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n};\n\nexport function GenericFetcherShell<T>({\n result,\n children,\n loadingDisplay,\n previewSpinner,\n errorDisplay,\n previewErrorDisplay,\n dataName,\n noLayout,\n className,\n}: GenericFetcherProps & {\n result: { data?: T; error?: Error; isLoading?: boolean };\n}) {\n const inEditor = !!usePlasmicCanvasContext();\n if (\n (inEditor && previewSpinner) ||\n (!(\"error\" in result) && !(\"data\" in result))\n ) {\n return <>{loadingDisplay ?? null}</>;\n } else if ((inEditor && previewErrorDisplay) || \"error\" in result) {\n return <>{errorDisplay ?? null}</>;\n } else {\n const content = (\n <DataProvider name={dataName} data={result.data}>\n {children}\n </DataProvider>\n );\n return noLayout ? content : <div className={className}>{content}</div>;\n }\n}\n\nexport interface FetchProps {\n url?: string;\n method?: string;\n body?: string | object;\n headers?: Record<string, string>;\n}\n\n/**\n * Tries to return the JSON response, or else returns an object with a text key containing the response body text.\n */\nasync function performFetch({ url, method, body, headers }: FetchProps) {\n if (!url) {\n throw new Error(\"Please specify a URL to fetch\");\n }\n const response = await fetch(url, {\n method,\n headers,\n body:\n body === undefined\n ? body\n : typeof body === \"string\"\n ? body\n : JSON.stringify(body),\n });\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const text = await response.text();\n try {\n return JSON.parse(text);\n } catch (e) {\n return { text };\n }\n}\n\nexport interface DataFetcherProps extends FetchProps, GenericFetcherProps {\n queryKey?: string;\n}\n\nexport function DataFetcher(props: DataFetcherProps) {\n const { url, method, body, headers, queryKey } = props;\n const fetchProps: FetchProps = { url, method, body, headers };\n const result = usePlasmicQueryData(\n queryKey || JSON.stringify({ type: \"DataFetcher\", ...fetchProps }),\n () => performFetch(fetchProps)\n );\n return <GenericFetcherShell result={result} {...props} />;\n}\n\nfunction mkFetchProps(\n defaultUrl: string,\n defaultMethod: string\n): PropMetas<FetchProps & { queryKey?: string }> {\n return {\n url: {\n type: \"string\",\n defaultValue: defaultUrl,\n description: \"Where to fetch the data from\",\n },\n method: {\n type: \"choice\",\n options: [\n \"GET\",\n \"DELETE\",\n \"CONNECT\",\n \"HEAD\",\n \"OPTIONS\",\n \"POST\",\n \"PUT\",\n \"TRACE\",\n ],\n defaultValue: defaultMethod,\n description: \"Method to use when fetching\",\n },\n headers: {\n type: \"object\",\n description: \"Request headers (as JSON object) to send\",\n defaultValue: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n },\n queryKey: {\n type: \"string\",\n description:\n \"A globally unique ID for this query, used for invalidating queries\",\n invariantable: true,\n },\n };\n}\n\nexport const dataFetcherMeta: ComponentMeta<DataFetcherProps> = {\n name: \"hostless-plasmic-query-data-fetcher\",\n displayName: \"HTTP REST API Fetcher\",\n importName: \"DataFetcher\",\n importPath: \"@plasmicpkgs/plasmic-query\",\n providesData: true,\n description:\n \"These fetches may be run client-side (from the browser). Use [Data Queries](https://docs.plasmic.app/learn/http-api-integration/) for authenticated queries or CORS.\",\n props: {\n ...(mkFetchProps(\n \"https://api.github.com/users/plasmicapp/repos\",\n \"GET\"\n ) as any),\n body: {\n type: \"object\",\n description: \"JSON object to be sent in the request body\",\n },\n ...(genericFetcherPropsMeta as any),\n },\n defaultStyles: {\n maxWidth: \"100%\",\n width: \"stretch\",\n },\n};\n\nexport function registerDataFetcher(\n loader?: { registerComponent: typeof registerComponent },\n customDataFetcherMeta?: ComponentMeta<DataFetcherProps>\n) {\n if (loader) {\n loader.registerComponent(\n DataFetcher,\n customDataFetcherMeta ?? dataFetcherMeta\n );\n } else {\n registerComponent(DataFetcher, customDataFetcherMeta ?? dataFetcherMeta);\n }\n}\n\nexport interface GraphqlFetcherProps\n extends GenericFetcherProps,\n Omit<FetchProps, \"body\"> {\n query?: { query?: string; variables?: object };\n queryKey?: string;\n varOverrides?: object;\n}\n\nexport function GraphqlFetcher(props: GraphqlFetcherProps) {\n const { query, url, method, headers, queryKey, varOverrides } = props;\n const fetchProps: FetchProps = {\n body: { ...query, variables: { ...query?.variables, ...varOverrides } },\n url,\n method,\n headers,\n };\n const result = usePlasmicQueryData(\n queryKey || JSON.stringify({ type: \"GraphqlFetcher\", ...fetchProps }),\n () => performFetch(fetchProps)\n );\n return <GenericFetcherShell result={result} {...props} />;\n}\n\nexport const graphqlFetcherMeta: ComponentMeta<GraphqlFetcherProps> = {\n name: \"hostless-plasmic-query-graphql-fetcher\",\n displayName: \"GraphQL Fetcher\",\n importName: \"GraphqlFetcher\",\n importPath: \"@plasmicpkgs/plasmic-query\",\n providesData: true,\n props: (() => {\n const gqlMetas: PropMetas<GraphqlFetcherProps> = {\n query: {\n type: \"code\",\n lang: \"graphql\",\n headers: (props) => props.headers,\n endpoint: (props) => props.url ?? \"\",\n defaultValue: {\n query: `query MyQuery($name: String) {\n characters(filter: {name: $name}) {\n results {\n name\n species\n image\n }\n }\n}\n`,\n variables: {\n name: \"Rick Sanchez\",\n },\n },\n },\n varOverrides: {\n type: \"object\",\n displayName: \"Override variables\",\n description:\n \"Pass in dynamic values for your query variables, as an object of key-values\",\n defaultValue: {},\n },\n };\n // Reorder the props\n const { url, query, method, headers, queryKey, ...rest } = {\n ...mkFetchProps(\"https://rickandmortyapi.com/graphql\", \"POST\"),\n ...gqlMetas,\n ...genericFetcherPropsMeta,\n };\n return {\n url,\n query,\n method,\n headers,\n queryKey,\n ...rest,\n } as any;\n })(),\n defaultStyles: {\n maxWidth: \"100%\",\n width: \"stretch\",\n },\n};\n\nexport function registerGraphqlFetcher(\n loader?: { registerComponent: typeof registerComponent },\n customDataFetcherMeta?: ComponentMeta<GraphqlFetcherProps>\n) {\n if (loader) {\n loader.registerComponent(\n GraphqlFetcher,\n customDataFetcherMeta ?? graphqlFetcherMeta\n );\n } else {\n registerComponent(\n GraphqlFetcher,\n customDataFetcherMeta ?? graphqlFetcherMeta\n );\n }\n}\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n}) {\n registerDataFetcher(loader);\n registerGraphqlFetcher(loader);\n}\n"],"names":["genericFetcherPropsMeta","children","loadingDisplay","type","defaultValue","errorDisplay","dataName","displayName","description","previewSpinner","previewErrorDisplay","noLayout","GenericFetcherShell","_ref","result","className","inEditor","usePlasmicCanvasContext","React","content","DataProvider","name","data","performFetch","_x","_performFetch","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref2","url","method","body","headers","response","text","wrap","_callee$","_context","prev","next","Error","fetch","undefined","JSON","stringify","sent","ok","statusText","abrupt","parse","t0","stop","DataFetcher","props","queryKey","fetchProps","usePlasmicQueryData","_extends","mkFetchProps","defaultUrl","defaultMethod","options","Accept","invariantable","dataFetcherMeta","importName","importPath","providesData","defaultStyles","maxWidth","width","registerDataFetcher","loader","customDataFetcherMeta","registerComponent","GraphqlFetcher","query","varOverrides","variables","graphqlFetcherMeta","gqlMetas","lang","endpoint","_props$url","_mkFetchProps$gqlMeta","rest","_objectWithoutPropertiesLoose","_excluded","registerGraphqlFetcher","registerAll"],"mappings":"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"}
1
+ {"version":3,"file":"plasmic-query.esm.js","sources":["../src/Fetcher.tsx"],"sourcesContent":["import { DataProvider, usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport React, { ReactNode } from \"react\";\n\nexport interface GenericFetcherProps {\n children?: ReactNode;\n loadingDisplay?: ReactNode;\n previewSpinner?: boolean;\n errorDisplay?: ReactNode;\n previewErrorDisplay?: boolean;\n dataName?: string;\n errorName?: string;\n noLayout?: boolean;\n className?: string;\n}\n\ntype PropMetas<P> = ComponentMeta<P>[\"props\"];\n\ntype CustomError = Error & {\n info: Record<string, any>;\n status: number;\n};\n\nexport const genericFetcherPropsMeta: PropMetas<GenericFetcherProps> = {\n children: \"slot\",\n loadingDisplay: { type: \"slot\", defaultValue: \"Loading...\" },\n errorDisplay: { type: \"slot\", defaultValue: \"Error fetching data\" },\n dataName: {\n type: \"string\",\n displayName: \"Data name\",\n defaultValue: \"fetchedData\",\n description: \"Variable name to store the fetched data in\",\n },\n errorName: {\n type: \"string\",\n displayName: \"Error name\",\n defaultValue: \"fetchError\",\n description: \"Variable name to store the fetch error in\",\n },\n previewSpinner: {\n type: \"boolean\",\n description: \"Force preview the loading state\",\n displayName: \"Preview loading\",\n },\n previewErrorDisplay: {\n type: \"boolean\",\n description: \"Force preview the error display\",\n displayName: \"Preview error\",\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, CMS Data Loader will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n};\n\nexport function GenericFetcherShell<T>({\n result,\n children,\n loadingDisplay,\n previewSpinner,\n errorDisplay,\n previewErrorDisplay,\n dataName,\n errorName,\n noLayout,\n className,\n}: GenericFetcherProps & {\n result: { data?: T; error?: Error; isLoading?: boolean };\n}) {\n const inEditor = !!usePlasmicCanvasContext();\n if (\n (inEditor && previewSpinner) ||\n (!(\"error\" in result) && !(\"data\" in result))\n ) {\n return <>{loadingDisplay ?? null}</>;\n } else if ((inEditor && previewErrorDisplay) || \"error\" in result) {\n return (\n <DataProvider name={errorName} data={result.error}>\n {errorDisplay ?? null}\n </DataProvider>\n );\n } else {\n const content = (\n <DataProvider name={dataName} data={result.data}>\n {children}\n </DataProvider>\n );\n return noLayout ? content : <div className={className}>{content}</div>;\n }\n}\n\nexport interface FetchProps {\n url?: string;\n method?: string;\n body?: string | object;\n headers?: Record<string, string>;\n}\n\n/**\n * Tries to return the JSON response, or else returns an object with a text key containing the response body text.\n */\nasync function performFetch({ url, method, body, headers }: FetchProps) {\n if (!url) {\n throw new Error(\"Please specify a URL to fetch\");\n }\n const response = await fetch(url, {\n method,\n headers,\n body:\n body === undefined\n ? body\n : typeof body === \"string\"\n ? body\n : JSON.stringify(body),\n });\n\n const text = await response.text();\n let json: Record<string, any> = { text };\n\n try {\n json = JSON.parse(text);\n } catch (e) {\n json = { text };\n }\n\n // @see https://swr.vercel.app/docs/error-handling\n // If the status code is not in the range 200-299,\n // we still try to parse and throw it.\n if (!response.ok) {\n const error = new Error(response.statusText) as CustomError;\n // Attach extra info to the error object.\n error.info = json;\n error.status = response.status;\n throw error;\n }\n\n return json;\n}\n\nexport interface DataFetcherProps extends FetchProps, GenericFetcherProps {\n queryKey?: string;\n}\n\nexport function DataFetcher(props: DataFetcherProps) {\n const { url, method, body, headers, queryKey } = props;\n const fetchProps: FetchProps = { url, method, body, headers };\n const result = usePlasmicQueryData(\n queryKey || JSON.stringify({ type: \"DataFetcher\", ...fetchProps }),\n () => performFetch(fetchProps)\n );\n return <GenericFetcherShell result={result} {...props} />;\n}\n\nfunction mkFetchProps(\n defaultUrl: string,\n defaultMethod: string\n): PropMetas<FetchProps & { queryKey?: string }> {\n return {\n url: {\n type: \"string\",\n defaultValue: defaultUrl,\n description: \"Where to fetch the data from\",\n },\n method: {\n type: \"choice\",\n options: [\n \"GET\",\n \"DELETE\",\n \"CONNECT\",\n \"HEAD\",\n \"OPTIONS\",\n \"POST\",\n \"PUT\",\n \"TRACE\",\n ],\n defaultValue: defaultMethod,\n description: \"Method to use when fetching\",\n },\n headers: {\n type: \"object\",\n description: \"Request headers (as JSON object) to send\",\n defaultValue: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n },\n queryKey: {\n type: \"string\",\n description:\n \"A globally unique ID for this query, used for invalidating queries\",\n invariantable: true,\n },\n };\n}\n\nexport const dataFetcherMeta: ComponentMeta<DataFetcherProps> = {\n name: \"hostless-plasmic-query-data-fetcher\",\n displayName: \"HTTP REST API Fetcher\",\n importName: \"DataFetcher\",\n importPath: \"@plasmicpkgs/plasmic-query\",\n providesData: true,\n description:\n \"These fetches may be run client-side (from the browser). Use [Data Queries](https://docs.plasmic.app/learn/http-api-integration/) for authenticated queries or CORS.\",\n props: {\n ...(mkFetchProps(\n \"https://api.github.com/users/plasmicapp/repos\",\n \"GET\"\n ) as any),\n body: {\n type: \"object\",\n description: \"JSON object to be sent in the request body\",\n },\n ...(genericFetcherPropsMeta as any),\n },\n defaultStyles: {\n maxWidth: \"100%\",\n width: \"stretch\",\n },\n};\n\nexport function registerDataFetcher(\n loader?: { registerComponent: typeof registerComponent },\n customDataFetcherMeta?: ComponentMeta<DataFetcherProps>\n) {\n if (loader) {\n loader.registerComponent(\n DataFetcher,\n customDataFetcherMeta ?? dataFetcherMeta\n );\n } else {\n registerComponent(DataFetcher, customDataFetcherMeta ?? dataFetcherMeta);\n }\n}\n\nexport interface GraphqlFetcherProps\n extends GenericFetcherProps,\n Omit<FetchProps, \"body\"> {\n query?: { query?: string; variables?: object };\n queryKey?: string;\n varOverrides?: object;\n}\n\nexport function GraphqlFetcher(props: GraphqlFetcherProps) {\n const { query, url, method, headers, queryKey, varOverrides } = props;\n const fetchProps: FetchProps = {\n body: { ...query, variables: { ...query?.variables, ...varOverrides } },\n url,\n method,\n headers,\n };\n const result = usePlasmicQueryData(\n queryKey || JSON.stringify({ type: \"GraphqlFetcher\", ...fetchProps }),\n () => performFetch(fetchProps)\n );\n return <GenericFetcherShell result={result} {...props} />;\n}\n\nexport const graphqlFetcherMeta: ComponentMeta<GraphqlFetcherProps> = {\n name: \"hostless-plasmic-query-graphql-fetcher\",\n displayName: \"GraphQL Fetcher\",\n importName: \"GraphqlFetcher\",\n importPath: \"@plasmicpkgs/plasmic-query\",\n providesData: true,\n props: (() => {\n const gqlMetas: PropMetas<GraphqlFetcherProps> = {\n query: {\n type: \"code\",\n lang: \"graphql\",\n headers: (props) => props.headers,\n endpoint: (props) => props.url ?? \"\",\n defaultValue: {\n query: `query MyQuery($name: String) {\n characters(filter: {name: $name}) {\n results {\n name\n species\n image\n }\n }\n}\n`,\n variables: {\n name: \"Rick Sanchez\",\n },\n },\n },\n varOverrides: {\n type: \"object\",\n displayName: \"Override variables\",\n description:\n \"Pass in dynamic values for your query variables, as an object of key-values\",\n defaultValue: {},\n },\n };\n // Reorder the props\n const { url, query, method, headers, queryKey, ...rest } = {\n ...mkFetchProps(\"https://rickandmortyapi.com/graphql\", \"POST\"),\n ...gqlMetas,\n ...genericFetcherPropsMeta,\n };\n return {\n url,\n query,\n method,\n headers,\n queryKey,\n ...rest,\n } as any;\n })(),\n defaultStyles: {\n maxWidth: \"100%\",\n width: \"stretch\",\n },\n};\n\nexport function registerGraphqlFetcher(\n loader?: { registerComponent: typeof registerComponent },\n customDataFetcherMeta?: ComponentMeta<GraphqlFetcherProps>\n) {\n if (loader) {\n loader.registerComponent(\n GraphqlFetcher,\n customDataFetcherMeta ?? graphqlFetcherMeta\n );\n } else {\n registerComponent(\n GraphqlFetcher,\n customDataFetcherMeta ?? graphqlFetcherMeta\n );\n }\n}\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n}) {\n registerDataFetcher(loader);\n registerGraphqlFetcher(loader);\n}\n"],"names":["genericFetcherPropsMeta","children","loadingDisplay","type","defaultValue","errorDisplay","dataName","displayName","description","errorName","previewSpinner","previewErrorDisplay","noLayout","GenericFetcherShell","_ref","result","className","inEditor","usePlasmicCanvasContext","React","DataProvider","name","data","error","content","performFetch","_x","_performFetch","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref2","url","method","body","headers","response","text","json","wrap","_callee$","_context","prev","next","Error","fetch","undefined","JSON","stringify","sent","parse","e","ok","statusText","info","status","abrupt","stop","DataFetcher","props","queryKey","fetchProps","usePlasmicQueryData","_extends","mkFetchProps","defaultUrl","defaultMethod","options","Accept","invariantable","dataFetcherMeta","importName","importPath","providesData","defaultStyles","maxWidth","width","registerDataFetcher","loader","customDataFetcherMeta","registerComponent","GraphqlFetcher","query","varOverrides","variables","graphqlFetcherMeta","gqlMetas","lang","endpoint","_props$url","_mkFetchProps$gqlMeta","rest","_objectWithoutPropertiesLoose","_excluded","registerGraphqlFetcher","registerAll"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0BaA,uBAAuB,GAAmC;EACrEC,QAAQ,EAAE,MAAM;EAChBC,cAAc,EAAE;IAAEC,IAAI,EAAE,MAAM;IAAEC,YAAY,EAAE;GAAc;EAC5DC,YAAY,EAAE;IAAEF,IAAI,EAAE,MAAM;IAAEC,YAAY,EAAE;GAAuB;EACnEE,QAAQ,EAAE;IACRH,IAAI,EAAE,QAAQ;IACdI,WAAW,EAAE,WAAW;IACxBH,YAAY,EAAE,aAAa;IAC3BI,WAAW,EAAE;GACd;EACDC,SAAS,EAAE;IACTN,IAAI,EAAE,QAAQ;IACdI,WAAW,EAAE,YAAY;IACzBH,YAAY,EAAE,YAAY;IAC1BI,WAAW,EAAE;GACd;EACDE,cAAc,EAAE;IACdP,IAAI,EAAE,SAAS;IACfK,WAAW,EAAE,iCAAiC;IAC9CD,WAAW,EAAE;GACd;EACDI,mBAAmB,EAAE;IACnBR,IAAI,EAAE,SAAS;IACfK,WAAW,EAAE,iCAAiC;IAC9CD,WAAW,EAAE;GACd;EACDK,QAAQ,EAAE;IACRT,IAAI,EAAE,SAAS;IACfI,WAAW,EAAE,WAAW;IACxBC,WAAW,EACT,uLAAuL;IACzLJ,YAAY,EAAE;;;SAIFS,mBAAmBA,CAAAC,IAAA;MACjCC,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNd,QAAQ,GAAAa,IAAA,CAARb,QAAQ;IACRC,cAAc,GAAAY,IAAA,CAAdZ,cAAc;IACdQ,cAAc,GAAAI,IAAA,CAAdJ,cAAc;IACdL,YAAY,GAAAS,IAAA,CAAZT,YAAY;IACZM,mBAAmB,GAAAG,IAAA,CAAnBH,mBAAmB;IACnBL,QAAQ,GAAAQ,IAAA,CAARR,QAAQ;IACRG,SAAS,GAAAK,IAAA,CAATL,SAAS;IACTG,QAAQ,GAAAE,IAAA,CAARF,QAAQ;IACRI,SAAS,GAAAF,IAAA,CAATE,SAAS;EAIT,IAAMC,QAAQ,GAAG,CAAC,CAACC,uBAAuB,EAAE;EAC5C,IACGD,QAAQ,IAAIP,cAAc,IAC1B,EAAE,OAAO,IAAIK,MAAM,CAAC,IAAI,EAAE,MAAM,IAAIA,MAAM,CAAE,EAC7C;IACA,OAAOI,0CAAGjB,cAAc,WAAdA,cAAc,GAAI,IAAI,CAAI;GACrC,MAAM,IAAKe,QAAQ,IAAIN,mBAAmB,IAAK,OAAO,IAAII,MAAM,EAAE;IACjE,OACEI,oBAACC,YAAY;MAACC,IAAI,EAAEZ,SAAS;MAAEa,IAAI,EAAEP,MAAM,CAACQ;OACzClB,YAAY,WAAZA,YAAY,GAAI,IAAI,CACR;GAElB,MAAM;IACL,IAAMmB,OAAO,GACXL,oBAACC,YAAY;MAACC,IAAI,EAAEf,QAAQ;MAAEgB,IAAI,EAAEP,MAAM,CAACO;OACxCrB,QAAQ,CAEZ;IACD,OAAOW,QAAQ,GAAGY,OAAO,GAAGL;MAAKH,SAAS,EAAEA;OAAYQ,OAAO,CAAO;;AAE1E;AASA;;;AAAA,SAGeC,YAAYA,CAAAC,EAAA;EAAA,OAAAC,aAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF;EAAAA,aAAA,GAAAG,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAA3B,SAAAC,QAAAC,KAAA;IAAA,IAAAC,GAAA,EAAAC,MAAA,EAAAC,IAAA,EAAAC,OAAA,EAAAC,QAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAlB,KAAA;IAAA,OAAAQ,mBAAA,GAAAW,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAA8BX,GAAG,GAAAD,KAAA,CAAHC,GAAG,EAAEC,MAAM,GAAAF,KAAA,CAANE,MAAM,EAAEC,IAAI,GAAAH,KAAA,CAAJG,IAAI,EAAEC,OAAO,GAAAJ,KAAA,CAAPI,OAAO;UAAA,IACjDH,GAAG;YAAAS,QAAA,CAAAE,IAAA;YAAA;;UAAA,MACA,IAAIC,KAAK,CAAC,+BAA+B,CAAC;QAAA;UAAAH,QAAA,CAAAE,IAAA;UAAA,OAE3BE,KAAK,CAACb,GAAG,EAAE;YAChCC,MAAM,EAANA,MAAM;YACNE,OAAO,EAAPA,OAAO;YACPD,IAAI,EACFA,IAAI,KAAKY,SAAS,GACdZ,IAAI,GACJ,OAAOA,IAAI,KAAK,QAAQ,GACxBA,IAAI,GACJa,IAAI,CAACC,SAAS,CAACd,IAAI;WAC1B,CAAC;QAAA;UATIE,QAAQ,GAAAK,QAAA,CAAAQ,IAAA;UAAAR,QAAA,CAAAE,IAAA;UAAA,OAWKP,QAAQ,CAACC,IAAI,EAAE;QAAA;UAA5BA,IAAI,GAAAI,QAAA,CAAAQ,IAAA;UACNX,IAAI,GAAwB;YAAED,IAAI,EAAJA;WAAM;UAExC,IAAI;YACFC,IAAI,GAAGS,IAAI,CAACG,KAAK,CAACb,IAAI,CAAC;WACxB,CAAC,OAAOc,CAAC,EAAE;YACVb,IAAI,GAAG;cAAED,IAAI,EAAJA;aAAM;;;;;UAKjB,IACKD,QAAQ,CAACgB,EAAE;YAAAX,QAAA,CAAAE,IAAA;YAAA;;UACRvB,KAAK,GAAG,IAAIwB,KAAK,CAACR,QAAQ,CAACiB,UAAU,CAAgB;UAE3DjC,KAAK,CAACkC,IAAI,GAAGhB,IAAI;UACjBlB,KAAK,CAACmC,MAAM,GAAGnB,QAAQ,CAACmB,MAAM;UAAC,MACzBnC,KAAK;QAAA;UAAA,OAAAqB,QAAA,CAAAe,MAAA,WAGNlB,IAAI;QAAA;QAAA;UAAA,OAAAG,QAAA,CAAAgB,IAAA;;OAAA3B,OAAA;GACZ;EAAA,OAAAN,aAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;SAMegC,WAAWA,CAACC,KAAuB;EACjD,IAAQ3B,GAAG,GAAsC2B,KAAK,CAA9C3B,GAAG;IAAEC,MAAM,GAA8B0B,KAAK,CAAzC1B,MAAM;IAAEC,IAAI,GAAwByB,KAAK,CAAjCzB,IAAI;IAAEC,OAAO,GAAewB,KAAK,CAA3BxB,OAAO;IAAEyB,QAAQ,GAAKD,KAAK,CAAlBC,QAAQ;EAC5C,IAAMC,UAAU,GAAe;IAAE7B,GAAG,EAAHA,GAAG;IAAEC,MAAM,EAANA,MAAM;IAAEC,IAAI,EAAJA,IAAI;IAAEC,OAAO,EAAPA;GAAS;EAC7D,IAAMvB,MAAM,GAAGkD,mBAAmB,CAChCF,QAAQ,IAAIb,IAAI,CAACC,SAAS,CAAAe,QAAA;IAAG/D,IAAI,EAAE;KAAkB6D,UAAU,CAAE,CAAC,EAClE;IAAA,OAAMvC,YAAY,CAACuC,UAAU,CAAC;IAC/B;EACD,OAAO7C,oBAACN,mBAAmB;IAACE,MAAM,EAAEA;KAAY+C,KAAK,EAAI;AAC3D;AAEA,SAASK,YAAYA,CACnBC,UAAkB,EAClBC,aAAqB;EAErB,OAAO;IACLlC,GAAG,EAAE;MACHhC,IAAI,EAAE,QAAQ;MACdC,YAAY,EAAEgE,UAAU;MACxB5D,WAAW,EAAE;KACd;IACD4B,MAAM,EAAE;MACNjC,IAAI,EAAE,QAAQ;MACdmE,OAAO,EAAE,CACP,KAAK,EACL,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,MAAM,EACN,KAAK,EACL,OAAO,CACR;MACDlE,YAAY,EAAEiE,aAAa;MAC3B7D,WAAW,EAAE;KACd;IACD8B,OAAO,EAAE;MACPnC,IAAI,EAAE,QAAQ;MACdK,WAAW,EAAE,0CAA0C;MACvDJ,YAAY,EAAE;QACZ,cAAc,EAAE,kBAAkB;QAClCmE,MAAM,EAAE;;KAEX;IACDR,QAAQ,EAAE;MACR5D,IAAI,EAAE,QAAQ;MACdK,WAAW,EACT,oEAAoE;MACtEgE,aAAa,EAAE;;GAElB;AACH;IAEaC,eAAe,GAAoC;EAC9DpD,IAAI,EAAE,qCAAqC;EAC3Cd,WAAW,EAAE,uBAAuB;EACpCmE,UAAU,EAAE,aAAa;EACzBC,UAAU,EAAE,4BAA4B;EACxCC,YAAY,EAAE,IAAI;EAClBpE,WAAW,EACT,sKAAsK;EACxKsD,KAAK,eAAAI,QAAA,kBACCC,YAAY,CACd,+CAA+C,EAC/C,KAAK,CACE;IACT9B,IAAI,EAAE;MACJlC,IAAI,EAAE,QAAQ;MACdK,WAAW,EAAE;;KAEXR,uBAA+B,CACpC;EACD6E,aAAa,EAAE;IACbC,QAAQ,EAAE,MAAM;IAChBC,KAAK,EAAE;;;SAIKC,mBAAmBA,CACjCC,MAAwD,EACxDC,qBAAuD;EAEvD,IAAID,MAAM,EAAE;IACVA,MAAM,CAACE,iBAAiB,CACtBtB,WAAW,EACXqB,qBAAqB,WAArBA,qBAAqB,GAAIT,eAAe,CACzC;GACF,MAAM;IACLU,iBAAiB,CAACtB,WAAW,EAAEqB,qBAAqB,WAArBA,qBAAqB,GAAIT,eAAe,CAAC;;AAE5E;SAUgBW,cAAcA,CAACtB,KAA0B;EACvD,IAAQuB,KAAK,GAAmDvB,KAAK,CAA7DuB,KAAK;IAAElD,GAAG,GAA8C2B,KAAK,CAAtD3B,GAAG;IAAEC,MAAM,GAAsC0B,KAAK,CAAjD1B,MAAM;IAAEE,OAAO,GAA6BwB,KAAK,CAAzCxB,OAAO;IAAEyB,QAAQ,GAAmBD,KAAK,CAAhCC,QAAQ;IAAEuB,YAAY,GAAKxB,KAAK,CAAtBwB,YAAY;EAC3D,IAAMtB,UAAU,GAAe;IAC7B3B,IAAI,EAAA6B,QAAA,KAAOmB,KAAK;MAAEE,SAAS,EAAArB,QAAA,KAAOmB,KAAK,oBAALA,KAAK,CAAEE,SAAS,EAAKD,YAAY;MAAI;IACvEnD,GAAG,EAAHA,GAAG;IACHC,MAAM,EAANA,MAAM;IACNE,OAAO,EAAPA;GACD;EACD,IAAMvB,MAAM,GAAGkD,mBAAmB,CAChCF,QAAQ,IAAIb,IAAI,CAACC,SAAS,CAAAe,QAAA;IAAG/D,IAAI,EAAE;KAAqB6D,UAAU,CAAE,CAAC,EACrE;IAAA,OAAMvC,YAAY,CAACuC,UAAU,CAAC;IAC/B;EACD,OAAO7C,oBAACN,mBAAmB;IAACE,MAAM,EAAEA;KAAY+C,KAAK,EAAI;AAC3D;IAEa0B,kBAAkB,GAAuC;EACpEnE,IAAI,EAAE,wCAAwC;EAC9Cd,WAAW,EAAE,iBAAiB;EAC9BmE,UAAU,EAAE,gBAAgB;EAC5BC,UAAU,EAAE,4BAA4B;EACxCC,YAAY,EAAE,IAAI;EAClBd,KAAK,eAAG;IACN,IAAM2B,QAAQ,GAAmC;MAC/CJ,KAAK,EAAE;QACLlF,IAAI,EAAE,MAAM;QACZuF,IAAI,EAAE,SAAS;QACfpD,OAAO,EAAE,SAAAA,QAACwB,KAAK;UAAA,OAAKA,KAAK,CAACxB,OAAO;;QACjCqD,QAAQ,EAAE,SAAAA,SAAC7B,KAAK;UAAA,IAAA8B,UAAA;UAAA,QAAAA,UAAA,GAAK9B,KAAK,CAAC3B,GAAG,YAAAyD,UAAA,GAAI,EAAE;;QACpCxF,YAAY,EAAE;UACZiF,KAAK,iJASd;UACSE,SAAS,EAAE;YACTlE,IAAI,EAAE;;;OAGX;MACDiE,YAAY,EAAE;QACZnF,IAAI,EAAE,QAAQ;QACdI,WAAW,EAAE,oBAAoB;QACjCC,WAAW,EACT,6EAA6E;QAC/EJ,YAAY,EAAE;;KAEjB;;IAED,IAAAyF,qBAAA,gBAAA3B,QAAA,kBACKC,YAAY,CAAC,qCAAqC,EAAE,MAAM,CAAC,EAC3DsB,QAAQ,EACRzF,uBAAuB;MAHpBmC,GAAG,GAAA0D,qBAAA,CAAH1D,GAAG;MAAEkD,KAAK,GAAAQ,qBAAA,CAALR,KAAK;MAAEjD,MAAM,GAAAyD,qBAAA,CAANzD,MAAM;MAAEE,OAAO,GAAAuD,qBAAA,CAAPvD,OAAO;MAAEyB,QAAQ,GAAA8B,qBAAA,CAAR9B,QAAQ;MAAK+B,IAAI,gBAAAC,6BAAA,CAAAF,qBAAA,EAAAG,SAAA;IAKtD,OAAA9B,QAAA;MACE/B,GAAG,EAAHA,GAAG;MACHkD,KAAK,EAALA,KAAK;MACLjD,MAAM,EAANA,MAAM;MACNE,OAAO,EAAPA,OAAO;MACPyB,QAAQ,EAARA;OACG+B,IAAI;GAEV,EAAG;EACJjB,aAAa,EAAE;IACbC,QAAQ,EAAE,MAAM;IAChBC,KAAK,EAAE;;;SAIKkB,sBAAsBA,CACpChB,MAAwD,EACxDC,qBAA0D;EAE1D,IAAID,MAAM,EAAE;IACVA,MAAM,CAACE,iBAAiB,CACtBC,cAAc,EACdF,qBAAqB,WAArBA,qBAAqB,GAAIM,kBAAkB,CAC5C;GACF,MAAM;IACLL,iBAAiB,CACfC,cAAc,EACdF,qBAAqB,WAArBA,qBAAqB,GAAIM,kBAAkB,CAC5C;;AAEL;SAEgBU,WAAWA,CAACjB,MAE3B;EACCD,mBAAmB,CAACC,MAAM,CAAC;EAC3BgB,sBAAsB,CAAChB,MAAM,CAAC;AAChC;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicpkgs/plasmic-query",
3
- "version": "0.0.203",
3
+ "version": "0.0.205",
4
4
  "description": "Plasmic components and registration calls for data fetching",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -28,7 +28,7 @@
28
28
  "analyze": "size-limit --why"
29
29
  },
30
30
  "devDependencies": {
31
- "@plasmicapp/host": "1.0.186",
31
+ "@plasmicapp/host": "1.0.187",
32
32
  "@plasmicapp/query": "0.1.77",
33
33
  "@size-limit/preset-small-lib": "^4.11.0",
34
34
  "@types/node": "^14.0.26",
@@ -43,5 +43,5 @@
43
43
  "react": ">=16.8.0",
44
44
  "react-dom": ">=16.8.0"
45
45
  },
46
- "gitHead": "c8e66753e8f375487f4dc60f29897496fe889e51"
46
+ "gitHead": "bdd602e3d03202e9064cb1c84af30fd6c4a2b948"
47
47
  }