@plasmicpkgs/plasmic-query 0.0.224 → 0.0.226

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.
@@ -444,7 +444,7 @@ function performFetch(_x) {
444
444
  }
445
445
  function _performFetch() {
446
446
  _performFetch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
447
- var url, method, body, headers, response, text, json, error;
447
+ var url, method, body, headers, headerNamesLowercase, response, text, json, error;
448
448
  return _regeneratorRuntime().wrap(function _callee$(_context) {
449
449
  while (1) switch (_context.prev = _context.next) {
450
450
  case 0:
@@ -455,17 +455,30 @@ function _performFetch() {
455
455
  }
456
456
  throw new Error("Please specify a URL to fetch");
457
457
  case 3:
458
- _context.next = 5;
458
+ // Add default headers unless specified
459
+ if (!headers) {
460
+ headers = {};
461
+ }
462
+ headerNamesLowercase = new Set(Object.keys(headers).map(function (headerName) {
463
+ return headerName.toLowerCase();
464
+ }));
465
+ if (!headerNamesLowercase.has("accept")) {
466
+ headers["Accept"] = "application/json";
467
+ }
468
+ if (body && !headerNamesLowercase.has("content-type")) {
469
+ headers["Content-Type"] = "application/json";
470
+ }
471
+ _context.next = 9;
459
472
  return fetch(url, {
460
473
  method: method,
461
474
  headers: headers,
462
475
  body: body === undefined ? body : typeof body === "string" ? body : JSON.stringify(body)
463
476
  });
464
- case 5:
477
+ case 9:
465
478
  response = _context.sent;
466
- _context.next = 8;
479
+ _context.next = 12;
467
480
  return response.text();
468
- case 8:
481
+ case 12:
469
482
  text = _context.sent;
470
483
  json = {
471
484
  text: text
@@ -481,16 +494,16 @@ function _performFetch() {
481
494
  // If the status code is not in the range 200-299,
482
495
  // we still try to parse and throw it.
483
496
  if (response.ok) {
484
- _context.next = 16;
497
+ _context.next = 20;
485
498
  break;
486
499
  }
487
500
  error = new Error(response.statusText); // Attach extra info to the error object.
488
501
  error.info = json;
489
502
  error.status = response.status;
490
503
  throw error;
491
- case 16:
504
+ case 20:
492
505
  return _context.abrupt("return", json);
493
- case 17:
506
+ case 21:
494
507
  case "end":
495
508
  return _context.stop();
496
509
  }
@@ -534,11 +547,7 @@ function mkFetchProps(defaultUrl, defaultMethod) {
534
547
  },
535
548
  headers: {
536
549
  type: "object",
537
- description: "Request headers (as JSON object) to send",
538
- defaultValue: {
539
- "Content-Type": "application/json",
540
- Accept: "application/json"
541
- }
550
+ description: "Request headers (as JSON object) to send"
542
551
  },
543
552
  queryKey: {
544
553
  type: "string",
@@ -579,14 +588,28 @@ function GraphqlFetcher(props) {
579
588
  headers = props.headers,
580
589
  queryKey = props.queryKey,
581
590
  varOverrides = props.varOverrides;
582
- var fetchProps = {
583
- body: _extends({}, query$1, {
584
- variables: _extends({}, query$1 == null ? void 0 : query$1.variables, varOverrides)
585
- }),
586
- url: url,
587
- method: method,
588
- headers: headers
589
- };
591
+ var fetchProps;
592
+ if (method === "GET") {
593
+ var _query$query;
594
+ // https://graphql.org/learn/serving-over-http/#get-request-and-parameters
595
+ var urlWithQueryParams = new URL(url != null ? url : "");
596
+ urlWithQueryParams.searchParams.set("query", (_query$query = query$1 == null ? void 0 : query$1.query) != null ? _query$query : "{}");
597
+ urlWithQueryParams.searchParams.set("variables", JSON.stringify(_extends({}, query$1 == null ? void 0 : query$1.variables, varOverrides)));
598
+ fetchProps = {
599
+ url: urlWithQueryParams.toString(),
600
+ method: method,
601
+ headers: headers
602
+ };
603
+ } else {
604
+ fetchProps = {
605
+ body: _extends({}, query$1, {
606
+ variables: _extends({}, query$1 == null ? void 0 : query$1.variables, varOverrides)
607
+ }),
608
+ url: url,
609
+ method: method,
610
+ headers: headers
611
+ };
612
+ }
590
613
  var result = query.usePlasmicQueryData(queryKey || JSON.stringify(_extends({
591
614
  type: "GraphqlFetcher"
592
615
  }, fetchProps)), function () {
@@ -615,21 +638,20 @@ var graphqlFetcherMeta = {
615
638
  return (_props$url = props.url) != null ? _props$url : "";
616
639
  },
617
640
  defaultValue: {
618
- query: "query MyQuery($name: String) {\n characters(filter: {name: $name}) {\n results {\n name\n species\n image\n }\n }\n}\n",
641
+ query: "query ExampleQuery($personId: ID) {\n person(id: $personId) {\n id\n name\n skinColor\n filmConnection {\n films {\n id\n title\n }\n }\n }\n}\n",
619
642
  variables: {
620
- name: "Rick Sanchez"
643
+ personId: "cGVvcGxlOjIw"
621
644
  }
622
645
  }
623
646
  },
624
647
  varOverrides: {
625
648
  type: "object",
626
649
  displayName: "Override variables",
627
- description: "Pass in dynamic values for your query variables, as an object of key-values",
628
- defaultValue: {}
650
+ description: "Pass in dynamic values for your query variables, as an object of key-values"
629
651
  }
630
652
  };
631
653
  // Reorder the props
632
- var _mkFetchProps$gqlMeta = /*#__PURE__*/_extends({}, /*#__PURE__*/mkFetchProps("https://rickandmortyapi.com/graphql", "POST"), gqlMetas, genericFetcherPropsMeta),
654
+ var _mkFetchProps$gqlMeta = /*#__PURE__*/_extends({}, /*#__PURE__*/mkFetchProps("https://swapi-graphql.netlify.app/.netlify/functions/index", "POST"), gqlMetas, genericFetcherPropsMeta),
633
655
  url = _mkFetchProps$gqlMeta.url,
634
656
  query = _mkFetchProps$gqlMeta.query,
635
657
  method = _mkFetchProps$gqlMeta.method,
@@ -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 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
+ {"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\n // Add default headers unless specified\n if (!headers) {\n headers = {};\n }\n const headerNamesLowercase = new Set(\n Object.keys(headers).map((headerName) => headerName.toLowerCase())\n );\n if (!headerNamesLowercase.has(\"accept\")) {\n headers[\"Accept\"] = \"application/json\";\n }\n if (body && !headerNamesLowercase.has(\"content-type\")) {\n headers[\"Content-Type\"] = \"application/json\";\n }\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 },\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\n let fetchProps: FetchProps;\n if (method === \"GET\") {\n // https://graphql.org/learn/serving-over-http/#get-request-and-parameters\n const urlWithQueryParams = new URL(url ?? \"\");\n urlWithQueryParams.searchParams.set(\"query\", query?.query ?? \"{}\");\n urlWithQueryParams.searchParams.set(\n \"variables\",\n JSON.stringify({ ...query?.variables, ...varOverrides })\n );\n fetchProps = {\n url: urlWithQueryParams.toString(),\n method,\n headers,\n };\n } else {\n fetchProps = {\n body: { ...query, variables: { ...query?.variables, ...varOverrides } },\n url,\n method,\n headers,\n };\n }\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 ExampleQuery($personId: ID) {\n person(id: $personId) {\n id\n name\n skinColor\n filmConnection {\n films {\n id\n title\n }\n }\n }\n}\n`,\n variables: {\n personId: \"cGVvcGxlOjIw\", // Yoda\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 },\n };\n // Reorder the props\n const { url, query, method, headers, queryKey, ...rest } = {\n ...mkFetchProps(\n \"https://swapi-graphql.netlify.app/.netlify/functions/index\",\n \"POST\"\n ),\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","headerNamesLowercase","response","text","json","wrap","_callee$","_context","prev","next","Error","Set","Object","keys","map","headerName","toLowerCase","has","fetch","undefined","JSON","stringify","sent","parse","e","ok","statusText","info","status","abrupt","stop","DataFetcher","props","queryKey","fetchProps","usePlasmicQueryData","_extends","mkFetchProps","defaultUrl","defaultMethod","options","invariantable","dataFetcherMeta","importName","importPath","providesData","defaultStyles","maxWidth","width","registerDataFetcher","loader","customDataFetcherMeta","registerComponent","GraphqlFetcher","query","varOverrides","_query$query","urlWithQueryParams","URL","searchParams","set","variables","toString","graphqlFetcherMeta","gqlMetas","lang","endpoint","_props$url","personId","_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",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;
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:{},s=i.iterator||"@@iterator",u=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",d="executing",y="completed",v={};function m(){}function g(){}function w(){}var b={};l(b,s,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(F([])));E&&E!==r&&n.call(E,s)&&(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,s){var u=p(e[a],e,o);if("throw"!==u.type){var c=u.arg,l=c.value;return l&&"object"==typeof l&&n.call(l,"__await")?t.resolve(l.__await).then((function(e){r("next",e,i,s)}),(function(e){r("throw",e,i,s)})):t.resolve(l).then((function(e){c.value=e,i(c)}),(function(e){return r("throw",e,i,s)}))}s(u.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===d)throw new Error("Generator is already running");if(a===y){if("throw"===o)throw i;return{value:e,done:!0}}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var u=j(s,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(a===f)throw a=y,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=d;var c=p(t,r,n);if("normal"===c.type){if(a=n.done?y:"suspendedYield",c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(a=y,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[s];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,u,(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,s,(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 s.type="throw",s.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],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var u=n.call(i,"catchLoc"),c=n.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(u){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 s=e[o](i),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,a)}function s(e){return function(){var t=this,r=arguments;return new Promise((function(n,a){var o=e.apply(t,r);function s(e){i(o,n,a,s,u,"next",e)}function u(e){i(o,n,a,s,u,"throw",e)}s(void 0)}))}}function u(){return(u=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,s=e.errorDisplay,u=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&&u||"error"in r)return a.createElement(t.DataProvider,{name:l,data:r.error},null!=s?s:null);var d=a.createElement(t.DataProvider,{name:c,data:r.data},n);return h?d:a.createElement("div",{className:p},d)}function f(e){return d.apply(this,arguments)}function d(){return(d=s(o().mark((function e(t){var r,n,a,i,s,u,c,l,h;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 i||(i={}),(s=new Set(Object.keys(i).map((function(e){return e.toLowerCase()})))).has("accept")||(i.Accept="application/json"),a&&!s.has("content-type")&&(i["Content-Type"]="application/json"),e.next=9,fetch(r,{method:n,headers:i,body:void 0===a||"string"==typeof a?a:JSON.stringify(a)});case 9:return u=e.sent,e.next=12,u.text();case 12:l={text:c=e.sent};try{l=JSON.parse(c)}catch(e){l={text:c}}if(u.ok){e.next=20;break}throw(h=new Error(u.statusText)).info=l,h.status=u.status,h;case 20:return e.abrupt("return",l);case 21:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function y(e){var t={url:e.url,method:e.method,body:e.body,headers:e.headers},r=n.usePlasmicQueryData(e.queryKey||JSON.stringify(u({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"},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:u({},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(y,null!=t?t:m):r(y,null!=t?t:m)}function w(e){var t,r=e.query,o=e.url,i=e.method,s=e.headers,c=e.queryKey,l=e.varOverrides;if("GET"===i){var h,d=new URL(null!=o?o:"");d.searchParams.set("query",null!=(h=null==r?void 0:r.query)?h:"{}"),d.searchParams.set("variables",JSON.stringify(u({},null==r?void 0:r.variables,l))),t={url:d.toString(),method:i,headers:s}}else t={body:u({},r,{variables:u({},null==r?void 0:r.variables,l)}),url:o,method:i,headers:s};var y=n.usePlasmicQueryData(c||JSON.stringify(u({type:"GraphqlFetcher"},t)),(function(){return f(t)}));return a.createElement(p,Object.assign({result:y},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 ExampleQuery($personId: ID) {\n person(id: $personId) {\n id\n name\n skinColor\n filmConnection {\n films {\n id\n title\n }\n }\n }\n}\n",variables:{personId:"cGVvcGxlOjIw"}}},varOverrides:{type:"object",displayName:"Override variables",description:"Pass in dynamic values for your query variables, as an object of key-values"}},t=u({},v("https://swapi-graphql.netlify.app/.netlify/functions/index","POST"),e,h);return u({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=y,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 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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"}
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\n // Add default headers unless specified\n if (!headers) {\n headers = {};\n }\n const headerNamesLowercase = new Set(\n Object.keys(headers).map((headerName) => headerName.toLowerCase())\n );\n if (!headerNamesLowercase.has(\"accept\")) {\n headers[\"Accept\"] = \"application/json\";\n }\n if (body && !headerNamesLowercase.has(\"content-type\")) {\n headers[\"Content-Type\"] = \"application/json\";\n }\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 },\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\n let fetchProps: FetchProps;\n if (method === \"GET\") {\n // https://graphql.org/learn/serving-over-http/#get-request-and-parameters\n const urlWithQueryParams = new URL(url ?? \"\");\n urlWithQueryParams.searchParams.set(\"query\", query?.query ?? \"{}\");\n urlWithQueryParams.searchParams.set(\n \"variables\",\n JSON.stringify({ ...query?.variables, ...varOverrides })\n );\n fetchProps = {\n url: urlWithQueryParams.toString(),\n method,\n headers,\n };\n } else {\n fetchProps = {\n body: { ...query, variables: { ...query?.variables, ...varOverrides } },\n url,\n method,\n headers,\n };\n }\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 ExampleQuery($personId: ID) {\n person(id: $personId) {\n id\n name\n skinColor\n filmConnection {\n films {\n id\n title\n }\n }\n }\n}\n`,\n variables: {\n personId: \"cGVvcGxlOjIw\", // Yoda\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 },\n };\n // Reorder the props\n const { url, query, method, headers, queryKey, ...rest } = {\n ...mkFetchProps(\n \"https://swapi-graphql.netlify.app/.netlify/functions/index\",\n \"POST\"\n ),\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","headerNamesLowercase","response","text","json","wrap","_context","prev","next","Error","Set","Object","keys","map","headerName","toLowerCase","has","fetch","undefined","JSON","stringify","sent","parse","e","ok","statusText","info","status","abrupt","stop","DataFetcher","props","fetchProps","usePlasmicQueryData","queryKey","_extends","mkFetchProps","defaultUrl","defaultMethod","options","invariantable","dataFetcherMeta","importName","importPath","providesData","defaultStyles","maxWidth","width","registerDataFetcher","loader","customDataFetcherMeta","registerComponent","GraphqlFetcher","query","varOverrides","_query$query","urlWithQueryParams","URL","searchParams","set","variables","toString","graphqlFetcherMeta","gqlMetas","lang","endpoint","_props$url","personId","_mkFetchProps$gqlMeta","_objectWithoutPropertiesLoose","_excluded","registerGraphqlFetcher"],"mappings":"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"}
@@ -438,7 +438,7 @@ function performFetch(_x) {
438
438
  }
439
439
  function _performFetch() {
440
440
  _performFetch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
441
- var url, method, body, headers, response, text, json, error;
441
+ var url, method, body, headers, headerNamesLowercase, response, text, json, error;
442
442
  return _regeneratorRuntime().wrap(function _callee$(_context) {
443
443
  while (1) switch (_context.prev = _context.next) {
444
444
  case 0:
@@ -449,17 +449,30 @@ function _performFetch() {
449
449
  }
450
450
  throw new Error("Please specify a URL to fetch");
451
451
  case 3:
452
- _context.next = 5;
452
+ // Add default headers unless specified
453
+ if (!headers) {
454
+ headers = {};
455
+ }
456
+ headerNamesLowercase = new Set(Object.keys(headers).map(function (headerName) {
457
+ return headerName.toLowerCase();
458
+ }));
459
+ if (!headerNamesLowercase.has("accept")) {
460
+ headers["Accept"] = "application/json";
461
+ }
462
+ if (body && !headerNamesLowercase.has("content-type")) {
463
+ headers["Content-Type"] = "application/json";
464
+ }
465
+ _context.next = 9;
453
466
  return fetch(url, {
454
467
  method: method,
455
468
  headers: headers,
456
469
  body: body === undefined ? body : typeof body === "string" ? body : JSON.stringify(body)
457
470
  });
458
- case 5:
471
+ case 9:
459
472
  response = _context.sent;
460
- _context.next = 8;
473
+ _context.next = 12;
461
474
  return response.text();
462
- case 8:
475
+ case 12:
463
476
  text = _context.sent;
464
477
  json = {
465
478
  text: text
@@ -475,16 +488,16 @@ function _performFetch() {
475
488
  // If the status code is not in the range 200-299,
476
489
  // we still try to parse and throw it.
477
490
  if (response.ok) {
478
- _context.next = 16;
491
+ _context.next = 20;
479
492
  break;
480
493
  }
481
494
  error = new Error(response.statusText); // Attach extra info to the error object.
482
495
  error.info = json;
483
496
  error.status = response.status;
484
497
  throw error;
485
- case 16:
498
+ case 20:
486
499
  return _context.abrupt("return", json);
487
- case 17:
500
+ case 21:
488
501
  case "end":
489
502
  return _context.stop();
490
503
  }
@@ -528,11 +541,7 @@ function mkFetchProps(defaultUrl, defaultMethod) {
528
541
  },
529
542
  headers: {
530
543
  type: "object",
531
- description: "Request headers (as JSON object) to send",
532
- defaultValue: {
533
- "Content-Type": "application/json",
534
- Accept: "application/json"
535
- }
544
+ description: "Request headers (as JSON object) to send"
536
545
  },
537
546
  queryKey: {
538
547
  type: "string",
@@ -573,14 +582,28 @@ function GraphqlFetcher(props) {
573
582
  headers = props.headers,
574
583
  queryKey = props.queryKey,
575
584
  varOverrides = props.varOverrides;
576
- var fetchProps = {
577
- body: _extends({}, query, {
578
- variables: _extends({}, query == null ? void 0 : query.variables, varOverrides)
579
- }),
580
- url: url,
581
- method: method,
582
- headers: headers
583
- };
585
+ var fetchProps;
586
+ if (method === "GET") {
587
+ var _query$query;
588
+ // https://graphql.org/learn/serving-over-http/#get-request-and-parameters
589
+ var urlWithQueryParams = new URL(url != null ? url : "");
590
+ urlWithQueryParams.searchParams.set("query", (_query$query = query == null ? void 0 : query.query) != null ? _query$query : "{}");
591
+ urlWithQueryParams.searchParams.set("variables", JSON.stringify(_extends({}, query == null ? void 0 : query.variables, varOverrides)));
592
+ fetchProps = {
593
+ url: urlWithQueryParams.toString(),
594
+ method: method,
595
+ headers: headers
596
+ };
597
+ } else {
598
+ fetchProps = {
599
+ body: _extends({}, query, {
600
+ variables: _extends({}, query == null ? void 0 : query.variables, varOverrides)
601
+ }),
602
+ url: url,
603
+ method: method,
604
+ headers: headers
605
+ };
606
+ }
584
607
  var result = usePlasmicQueryData(queryKey || JSON.stringify(_extends({
585
608
  type: "GraphqlFetcher"
586
609
  }, fetchProps)), function () {
@@ -609,21 +632,20 @@ var graphqlFetcherMeta = {
609
632
  return (_props$url = props.url) != null ? _props$url : "";
610
633
  },
611
634
  defaultValue: {
612
- query: "query MyQuery($name: String) {\n characters(filter: {name: $name}) {\n results {\n name\n species\n image\n }\n }\n}\n",
635
+ query: "query ExampleQuery($personId: ID) {\n person(id: $personId) {\n id\n name\n skinColor\n filmConnection {\n films {\n id\n title\n }\n }\n }\n}\n",
613
636
  variables: {
614
- name: "Rick Sanchez"
637
+ personId: "cGVvcGxlOjIw"
615
638
  }
616
639
  }
617
640
  },
618
641
  varOverrides: {
619
642
  type: "object",
620
643
  displayName: "Override variables",
621
- description: "Pass in dynamic values for your query variables, as an object of key-values",
622
- defaultValue: {}
644
+ description: "Pass in dynamic values for your query variables, as an object of key-values"
623
645
  }
624
646
  };
625
647
  // Reorder the props
626
- var _mkFetchProps$gqlMeta = /*#__PURE__*/_extends({}, /*#__PURE__*/mkFetchProps("https://rickandmortyapi.com/graphql", "POST"), gqlMetas, genericFetcherPropsMeta),
648
+ var _mkFetchProps$gqlMeta = /*#__PURE__*/_extends({}, /*#__PURE__*/mkFetchProps("https://swapi-graphql.netlify.app/.netlify/functions/index", "POST"), gqlMetas, genericFetcherPropsMeta),
627
649
  url = _mkFetchProps$gqlMeta.url,
628
650
  query = _mkFetchProps$gqlMeta.query,
629
651
  method = _mkFetchProps$gqlMeta.method,
@@ -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 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
+ {"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\n // Add default headers unless specified\n if (!headers) {\n headers = {};\n }\n const headerNamesLowercase = new Set(\n Object.keys(headers).map((headerName) => headerName.toLowerCase())\n );\n if (!headerNamesLowercase.has(\"accept\")) {\n headers[\"Accept\"] = \"application/json\";\n }\n if (body && !headerNamesLowercase.has(\"content-type\")) {\n headers[\"Content-Type\"] = \"application/json\";\n }\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 },\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\n let fetchProps: FetchProps;\n if (method === \"GET\") {\n // https://graphql.org/learn/serving-over-http/#get-request-and-parameters\n const urlWithQueryParams = new URL(url ?? \"\");\n urlWithQueryParams.searchParams.set(\"query\", query?.query ?? \"{}\");\n urlWithQueryParams.searchParams.set(\n \"variables\",\n JSON.stringify({ ...query?.variables, ...varOverrides })\n );\n fetchProps = {\n url: urlWithQueryParams.toString(),\n method,\n headers,\n };\n } else {\n fetchProps = {\n body: { ...query, variables: { ...query?.variables, ...varOverrides } },\n url,\n method,\n headers,\n };\n }\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 ExampleQuery($personId: ID) {\n person(id: $personId) {\n id\n name\n skinColor\n filmConnection {\n films {\n id\n title\n }\n }\n }\n}\n`,\n variables: {\n personId: \"cGVvcGxlOjIw\", // Yoda\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 },\n };\n // Reorder the props\n const { url, query, method, headers, queryKey, ...rest } = {\n ...mkFetchProps(\n \"https://swapi-graphql.netlify.app/.netlify/functions/index\",\n \"POST\"\n ),\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","headerNamesLowercase","response","text","json","wrap","_callee$","_context","prev","next","Error","Set","Object","keys","map","headerName","toLowerCase","has","fetch","undefined","JSON","stringify","sent","parse","e","ok","statusText","info","status","abrupt","stop","DataFetcher","props","queryKey","fetchProps","usePlasmicQueryData","_extends","mkFetchProps","defaultUrl","defaultMethod","options","invariantable","dataFetcherMeta","importName","importPath","providesData","defaultStyles","maxWidth","width","registerDataFetcher","loader","customDataFetcherMeta","registerComponent","GraphqlFetcher","query","varOverrides","_query$query","urlWithQueryParams","URL","searchParams","set","variables","toString","graphqlFetcherMeta","gqlMetas","lang","endpoint","_props$url","personId","_mkFetchProps$gqlMeta","rest","_objectWithoutPropertiesLoose","_excluded","registerGraphqlFetcher","registerAll"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicpkgs/plasmic-query",
3
- "version": "0.0.224",
3
+ "version": "0.0.226",
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.206",
31
+ "@plasmicapp/host": "1.0.207",
32
32
  "@plasmicapp/query": "0.1.79",
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": "94d5603125aac87b0d1952dad0241fba1a6be371"
46
+ "gitHead": "47cce23e276fc2f59d236fdf39cd02d22959515c"
47
47
  }