@plasmicpkgs/fetch 0.0.36 → 0.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -108,6 +108,7 @@ var registerFetchParams = {
108
108
  importPath: "@plasmicpkgs/fetch",
109
109
  displayName: "HTTP Fetch",
110
110
  isQuery: true,
111
+ isMutation: true,
111
112
  params: [
112
113
  {
113
114
  name: "opts",
@@ -119,7 +120,8 @@ var registerFetchParams = {
119
120
  },
120
121
  method: {
121
122
  type: "choice",
122
- options: [...HTTP_METHODS]
123
+ options: [...HTTP_METHODS],
124
+ defaultValue: (_args, _data, extras) => extras.mode === "mutation" ? "POST" : void 0
123
125
  },
124
126
  headers: {
125
127
  type: "object"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "sourcesContent": ["import registerFunction, {\n CustomFunctionMeta,\n} from \"@plasmicapp/host/registerFunction\";\n\ntype Registerable = {\n registerFunction: typeof registerFunction;\n};\n\nclass HttpError extends Error {\n constructor(\n statusText: string,\n readonly info: unknown,\n readonly status: number\n ) {\n super(statusText);\n this.name = \"HttpError\";\n }\n}\n\n// Some functions were extracted from platform/wab/src/wab/server/data-sources/http-fetcher.ts\nconst HTTP_METHODS = [\n \"GET\",\n \"POST\",\n \"PUT\",\n \"PATCH\",\n \"DELETE\",\n \"HEAD\",\n \"OPTIONS\",\n] as const;\ntype HTTPMethod = (typeof HTTP_METHODS)[number];\n\nconst METHODS_WITHOUT_BODY: ReadonlySet<HTTPMethod> = new Set([\"GET\", \"HEAD\"]);\n\nfunction base64StringToBuffer(bstr: string) {\n try {\n bstr = atob(bstr);\n } catch (e) {\n throw new Error(\"Invalid base64 for binary type\");\n }\n const uint8Array = new Uint8Array(bstr.length);\n for (let i = 0; i < bstr.length; i++) {\n uint8Array[i] = bstr.charCodeAt(i);\n }\n return uint8Array.buffer;\n}\n\nfunction bodyToFetchBody(body?: string | object) {\n if (body == null) {\n return undefined;\n } else if (typeof body === \"object\") {\n return JSON.stringify(body);\n } else if (body.startsWith(\"@binary\")) {\n return base64StringToBuffer(body.slice(\"@binary\".length));\n } else {\n return body;\n }\n}\n\nfunction maybeParseJSON(json: string) {\n try {\n return JSON.parse(json);\n } catch (e) {\n return json;\n }\n}\n\nexport interface FetchOpts {\n url?: string;\n method?: HTTPMethod;\n headers?: Record<string, string>;\n body?: string | object;\n}\n\n// Don't override the global fetch\nasync function wrappedFetch({ url, method, headers = {}, body }: FetchOpts) {\n if (!url) {\n throw new Error(\"Please specify a URL to fetch\");\n }\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: bodyToFetchBody(body),\n });\n\n const text = await response.text();\n const maybeJson = maybeParseJSON(text);\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 throw new HttpError(response.statusText, maybeJson, response.status);\n }\n\n return {\n statusCode: response.status,\n headers: Object.fromEntries(response.headers.entries()),\n body: maybeJson,\n };\n}\n\nexport { wrappedFetch as fetch };\n\nconst registerFetchParams: CustomFunctionMeta<typeof wrappedFetch> = {\n name: \"fetch\",\n importPath: \"@plasmicpkgs/fetch\",\n displayName: \"HTTP Fetch\",\n isQuery: true,\n params: [\n {\n name: \"opts\",\n type: \"object\",\n display: \"flatten\",\n fields: {\n url: {\n type: \"string\",\n },\n method: {\n type: \"choice\",\n options: [...HTTP_METHODS],\n },\n headers: {\n type: \"object\",\n },\n body: {\n type: \"object\",\n hidden: ([opts]) =>\n !!opts?.method && METHODS_WITHOUT_BODY.has(opts.method),\n },\n },\n },\n ],\n};\n\nexport function registerFetch(loader?: Registerable) {\n if (loader) {\n loader.registerFunction(wrappedFetch, registerFetchParams);\n } else {\n registerFunction(wrappedFetch, registerFetchParams);\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import registerFunction, {\n CustomFunctionMeta,\n FunctionControlExtras,\n} from \"@plasmicapp/host/registerFunction\";\n\ntype Registerable = {\n registerFunction: typeof registerFunction;\n};\n\nclass HttpError extends Error {\n constructor(\n statusText: string,\n readonly info: unknown,\n readonly status: number\n ) {\n super(statusText);\n this.name = \"HttpError\";\n }\n}\n\n// Some functions were extracted from platform/wab/src/wab/server/data-sources/http-fetcher.ts\nconst HTTP_METHODS = [\n \"GET\",\n \"POST\",\n \"PUT\",\n \"PATCH\",\n \"DELETE\",\n \"HEAD\",\n \"OPTIONS\",\n] as const;\ntype HTTPMethod = (typeof HTTP_METHODS)[number];\n\nconst METHODS_WITHOUT_BODY: ReadonlySet<HTTPMethod> = new Set([\"GET\", \"HEAD\"]);\n\nfunction base64StringToBuffer(bstr: string) {\n try {\n bstr = atob(bstr);\n } catch (e) {\n throw new Error(\"Invalid base64 for binary type\");\n }\n const uint8Array = new Uint8Array(bstr.length);\n for (let i = 0; i < bstr.length; i++) {\n uint8Array[i] = bstr.charCodeAt(i);\n }\n return uint8Array.buffer;\n}\n\nfunction bodyToFetchBody(body?: string | object) {\n if (body == null) {\n return undefined;\n } else if (typeof body === \"object\") {\n return JSON.stringify(body);\n } else if (body.startsWith(\"@binary\")) {\n return base64StringToBuffer(body.slice(\"@binary\".length));\n } else {\n return body;\n }\n}\n\nfunction maybeParseJSON(json: string) {\n try {\n return JSON.parse(json);\n } catch (e) {\n return json;\n }\n}\n\nexport interface FetchOpts {\n url?: string;\n method?: HTTPMethod;\n headers?: Record<string, string>;\n body?: string | object;\n}\n\n// Don't override the global fetch\nasync function wrappedFetch({ url, method, headers = {}, body }: FetchOpts) {\n if (!url) {\n throw new Error(\"Please specify a URL to fetch\");\n }\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: bodyToFetchBody(body),\n });\n\n const text = await response.text();\n const maybeJson = maybeParseJSON(text);\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 throw new HttpError(response.statusText, maybeJson, response.status);\n }\n\n return {\n statusCode: response.status,\n headers: Object.fromEntries(response.headers.entries()),\n body: maybeJson,\n };\n}\n\nexport { wrappedFetch as fetch };\n\nconst registerFetchParams: CustomFunctionMeta<typeof wrappedFetch> = {\n name: \"fetch\",\n importPath: \"@plasmicpkgs/fetch\",\n displayName: \"HTTP Fetch\",\n isQuery: true,\n isMutation: true,\n params: [\n {\n name: \"opts\",\n type: \"object\",\n display: \"flatten\",\n fields: {\n url: {\n type: \"string\",\n },\n method: {\n type: \"choice\",\n options: [...HTTP_METHODS],\n defaultValue: (\n _args: unknown,\n _data: unknown,\n extras: FunctionControlExtras\n ) => (extras.mode === \"mutation\" ? \"POST\" : undefined),\n },\n headers: {\n type: \"object\",\n },\n body: {\n type: \"object\",\n hidden: ([opts]) =>\n !!opts?.method && METHODS_WITHOUT_BODY.has(opts.method),\n },\n },\n },\n ],\n};\n\nexport function registerFetch(loader?: Registerable) {\n if (loader) {\n loader.registerFunction(wrappedFetch, registerFetchParams);\n } else {\n registerFunction(wrappedFetch, registerFetchParams);\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/dist/index.js CHANGED
@@ -141,6 +141,7 @@ var registerFetchParams = {
141
141
  importPath: "@plasmicpkgs/fetch",
142
142
  displayName: "HTTP Fetch",
143
143
  isQuery: true,
144
+ isMutation: true,
144
145
  params: [
145
146
  {
146
147
  name: "opts",
@@ -152,7 +153,8 @@ var registerFetchParams = {
152
153
  },
153
154
  method: {
154
155
  type: "choice",
155
- options: [...HTTP_METHODS]
156
+ options: [...HTTP_METHODS],
157
+ defaultValue: (_args, _data, extras) => extras.mode === "mutation" ? "POST" : void 0
156
158
  },
157
159
  headers: {
158
160
  type: "object"
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "sourcesContent": ["import registerFunction, {\n CustomFunctionMeta,\n} from \"@plasmicapp/host/registerFunction\";\n\ntype Registerable = {\n registerFunction: typeof registerFunction;\n};\n\nclass HttpError extends Error {\n constructor(\n statusText: string,\n readonly info: unknown,\n readonly status: number\n ) {\n super(statusText);\n this.name = \"HttpError\";\n }\n}\n\n// Some functions were extracted from platform/wab/src/wab/server/data-sources/http-fetcher.ts\nconst HTTP_METHODS = [\n \"GET\",\n \"POST\",\n \"PUT\",\n \"PATCH\",\n \"DELETE\",\n \"HEAD\",\n \"OPTIONS\",\n] as const;\ntype HTTPMethod = (typeof HTTP_METHODS)[number];\n\nconst METHODS_WITHOUT_BODY: ReadonlySet<HTTPMethod> = new Set([\"GET\", \"HEAD\"]);\n\nfunction base64StringToBuffer(bstr: string) {\n try {\n bstr = atob(bstr);\n } catch (e) {\n throw new Error(\"Invalid base64 for binary type\");\n }\n const uint8Array = new Uint8Array(bstr.length);\n for (let i = 0; i < bstr.length; i++) {\n uint8Array[i] = bstr.charCodeAt(i);\n }\n return uint8Array.buffer;\n}\n\nfunction bodyToFetchBody(body?: string | object) {\n if (body == null) {\n return undefined;\n } else if (typeof body === \"object\") {\n return JSON.stringify(body);\n } else if (body.startsWith(\"@binary\")) {\n return base64StringToBuffer(body.slice(\"@binary\".length));\n } else {\n return body;\n }\n}\n\nfunction maybeParseJSON(json: string) {\n try {\n return JSON.parse(json);\n } catch (e) {\n return json;\n }\n}\n\nexport interface FetchOpts {\n url?: string;\n method?: HTTPMethod;\n headers?: Record<string, string>;\n body?: string | object;\n}\n\n// Don't override the global fetch\nasync function wrappedFetch({ url, method, headers = {}, body }: FetchOpts) {\n if (!url) {\n throw new Error(\"Please specify a URL to fetch\");\n }\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: bodyToFetchBody(body),\n });\n\n const text = await response.text();\n const maybeJson = maybeParseJSON(text);\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 throw new HttpError(response.statusText, maybeJson, response.status);\n }\n\n return {\n statusCode: response.status,\n headers: Object.fromEntries(response.headers.entries()),\n body: maybeJson,\n };\n}\n\nexport { wrappedFetch as fetch };\n\nconst registerFetchParams: CustomFunctionMeta<typeof wrappedFetch> = {\n name: \"fetch\",\n importPath: \"@plasmicpkgs/fetch\",\n displayName: \"HTTP Fetch\",\n isQuery: true,\n params: [\n {\n name: \"opts\",\n type: \"object\",\n display: \"flatten\",\n fields: {\n url: {\n type: \"string\",\n },\n method: {\n type: \"choice\",\n options: [...HTTP_METHODS],\n },\n headers: {\n type: \"object\",\n },\n body: {\n type: \"object\",\n hidden: ([opts]) =>\n !!opts?.method && METHODS_WITHOUT_BODY.has(opts.method),\n },\n },\n },\n ],\n};\n\nexport function registerFetch(loader?: Registerable) {\n if (loader) {\n loader.registerFunction(wrappedFetch, registerFetchParams);\n } else {\n registerFunction(wrappedFetch, registerFetchParams);\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import registerFunction, {\n CustomFunctionMeta,\n FunctionControlExtras,\n} from \"@plasmicapp/host/registerFunction\";\n\ntype Registerable = {\n registerFunction: typeof registerFunction;\n};\n\nclass HttpError extends Error {\n constructor(\n statusText: string,\n readonly info: unknown,\n readonly status: number\n ) {\n super(statusText);\n this.name = \"HttpError\";\n }\n}\n\n// Some functions were extracted from platform/wab/src/wab/server/data-sources/http-fetcher.ts\nconst HTTP_METHODS = [\n \"GET\",\n \"POST\",\n \"PUT\",\n \"PATCH\",\n \"DELETE\",\n \"HEAD\",\n \"OPTIONS\",\n] as const;\ntype HTTPMethod = (typeof HTTP_METHODS)[number];\n\nconst METHODS_WITHOUT_BODY: ReadonlySet<HTTPMethod> = new Set([\"GET\", \"HEAD\"]);\n\nfunction base64StringToBuffer(bstr: string) {\n try {\n bstr = atob(bstr);\n } catch (e) {\n throw new Error(\"Invalid base64 for binary type\");\n }\n const uint8Array = new Uint8Array(bstr.length);\n for (let i = 0; i < bstr.length; i++) {\n uint8Array[i] = bstr.charCodeAt(i);\n }\n return uint8Array.buffer;\n}\n\nfunction bodyToFetchBody(body?: string | object) {\n if (body == null) {\n return undefined;\n } else if (typeof body === \"object\") {\n return JSON.stringify(body);\n } else if (body.startsWith(\"@binary\")) {\n return base64StringToBuffer(body.slice(\"@binary\".length));\n } else {\n return body;\n }\n}\n\nfunction maybeParseJSON(json: string) {\n try {\n return JSON.parse(json);\n } catch (e) {\n return json;\n }\n}\n\nexport interface FetchOpts {\n url?: string;\n method?: HTTPMethod;\n headers?: Record<string, string>;\n body?: string | object;\n}\n\n// Don't override the global fetch\nasync function wrappedFetch({ url, method, headers = {}, body }: FetchOpts) {\n if (!url) {\n throw new Error(\"Please specify a URL to fetch\");\n }\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: bodyToFetchBody(body),\n });\n\n const text = await response.text();\n const maybeJson = maybeParseJSON(text);\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 throw new HttpError(response.statusText, maybeJson, response.status);\n }\n\n return {\n statusCode: response.status,\n headers: Object.fromEntries(response.headers.entries()),\n body: maybeJson,\n };\n}\n\nexport { wrappedFetch as fetch };\n\nconst registerFetchParams: CustomFunctionMeta<typeof wrappedFetch> = {\n name: \"fetch\",\n importPath: \"@plasmicpkgs/fetch\",\n displayName: \"HTTP Fetch\",\n isQuery: true,\n isMutation: true,\n params: [\n {\n name: \"opts\",\n type: \"object\",\n display: \"flatten\",\n fields: {\n url: {\n type: \"string\",\n },\n method: {\n type: \"choice\",\n options: [...HTTP_METHODS],\n defaultValue: (\n _args: unknown,\n _data: unknown,\n extras: FunctionControlExtras\n ) => (extras.mode === \"mutation\" ? \"POST\" : undefined),\n },\n headers: {\n type: \"object\",\n },\n body: {\n type: \"object\",\n hidden: ([opts]) =>\n !!opts?.method && METHODS_WITHOUT_BODY.has(opts.method),\n },\n },\n },\n ],\n};\n\nexport function registerFetch(loader?: Registerable) {\n if (loader) {\n loader.registerFunction(wrappedFetch, registerFetchParams);\n } else {\n registerFunction(wrappedFetch, registerFetchParams);\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["registerFunction"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicpkgs/fetch",
3
- "version": "0.0.36",
3
+ "version": "0.0.37",
4
4
  "description": "Plasmic registration call for fetch function",
5
5
  "repository": {
6
6
  "type": "git",
@@ -31,11 +31,11 @@
31
31
  "postpublish": "bash ../../scripts/publish-api-doc-model.sh"
32
32
  },
33
33
  "devDependencies": {
34
- "@plasmicapp/host": "2.0.2",
34
+ "@plasmicapp/host": "2.0.3",
35
35
  "typescript": "^5.7.3"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "@plasmicapp/host": ">=1.0.211"
39
39
  },
40
- "gitHead": "a9a1f69ead8f2aebcc4e9b5a63c040c271a92252"
40
+ "gitHead": "c6d493ab33d8d50e512a6b0995aa882c8500d897"
41
41
  }