@openfn/language-msgraph 0.3.2 → 0.3.4

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.cjs CHANGED
@@ -68,6 +68,7 @@ var import_util = require("@openfn/language-common/util");
68
68
 
69
69
  // src/Utils.js
70
70
  var import_undici = require("undici");
71
+ var import_node_stream = require("stream");
71
72
  var import_language_common = require("@openfn/language-common");
72
73
  function assertDrive(state, driveName) {
73
74
  if (!state.drives[driveName]) {
@@ -97,11 +98,30 @@ function isValidHttpUrl(string) {
97
98
  function getAuth(token) {
98
99
  return token ? { headers: { Authorization: `Bearer ${token}` } } : null;
99
100
  }
101
+ var isStream = (value) => {
102
+ if (value && typeof value == "object") {
103
+ if (value instanceof import_node_stream.Readable || value instanceof import_node_stream.Writable) {
104
+ return true;
105
+ }
106
+ if (value.pipeTo || value.pipe) {
107
+ return true;
108
+ }
109
+ }
110
+ return false;
111
+ };
100
112
  function handleResponse(response, state, callback) {
101
- const nextState = {
102
- ...(0, import_language_common.composeNextState)(state, response),
103
- response
104
- };
113
+ let nextState;
114
+ if (isStream(response)) {
115
+ nextState = {
116
+ ...state,
117
+ data: response
118
+ };
119
+ } else {
120
+ nextState = {
121
+ ...(0, import_language_common.composeNextState)(state, response),
122
+ response
123
+ };
124
+ }
105
125
  if (callback)
106
126
  return callback(nextState);
107
127
  return nextState;
@@ -121,8 +141,9 @@ function handleResponseError(response, data, method) {
121
141
  var request = async (urlString, params = {}, method = "GET") => {
122
142
  let url = urlString;
123
143
  const defaultHeaders = { "Content-Type": "application/json" };
124
- const { headers } = params;
144
+ const { headers, parseAs } = params;
125
145
  const setHeaders = { ...headers, ...defaultHeaders };
146
+ delete params.parseAs;
126
147
  delete params.headers;
127
148
  let options = {
128
149
  method,
@@ -135,7 +156,15 @@ var request = async (urlString, params = {}, method = "GET") => {
135
156
  }
136
157
  const response = await (0, import_undici.fetch)(url, options);
137
158
  const contentType = response.headers.get("Content-Type");
138
- const data = (contentType == null ? void 0 : contentType.includes("application/json")) ? await response.json() : await response.text();
159
+ let data;
160
+ if (parseAs) {
161
+ if (parseAs === "json")
162
+ data = await response.json();
163
+ if (parseAs === "text")
164
+ data = await response.text();
165
+ } else {
166
+ data = (contentType == null ? void 0 : contentType.includes("application/json")) ? await response.json() : response.body;
167
+ }
139
168
  handleResponseError(response, data, method);
140
169
  return data;
141
170
  };
@@ -249,11 +278,11 @@ function getFolder(pathOrId, options, callback = (s) => s) {
249
278
  };
250
279
  }
251
280
  function getFile(pathOrId, options, callback = (s) => s) {
281
+ const defaultOptions = {
282
+ driveName: "default",
283
+ metadata: false
284
+ };
252
285
  return async (state) => {
253
- const defaultOptions = {
254
- driveName: "default",
255
- metadata: false
256
- };
257
286
  const { accessToken, apiVersion } = state.configuration;
258
287
  const [resolvedPathOrId, resolvedOptions] = (0, import_util.expandReferences)(
259
288
  state,
@@ -279,9 +308,11 @@ function getFile(pathOrId, options, callback = (s) => s) {
279
308
  }
280
309
  const url = getUrl(resource, apiVersion);
281
310
  const auth = getAuth(accessToken);
282
- return request(url, { ...auth }).then(
283
- (response) => handleResponse(response, state, callback)
284
- );
311
+ const response = await request(url, {
312
+ ...auth,
313
+ parseAs: metadata ? "json" : "text"
314
+ });
315
+ return handleResponse(response, state, callback);
285
316
  };
286
317
  }
287
318
 
package/dist/index.js CHANGED
@@ -31,6 +31,7 @@ import { expandReferences } from "@openfn/language-common/util";
31
31
 
32
32
  // src/Utils.js
33
33
  import { fetch } from "undici";
34
+ import { Readable, Writable } from "stream";
34
35
  import { composeNextState } from "@openfn/language-common";
35
36
  function assertDrive(state, driveName) {
36
37
  if (!state.drives[driveName]) {
@@ -60,11 +61,30 @@ function isValidHttpUrl(string) {
60
61
  function getAuth(token) {
61
62
  return token ? { headers: { Authorization: `Bearer ${token}` } } : null;
62
63
  }
64
+ var isStream = (value) => {
65
+ if (value && typeof value == "object") {
66
+ if (value instanceof Readable || value instanceof Writable) {
67
+ return true;
68
+ }
69
+ if (value.pipeTo || value.pipe) {
70
+ return true;
71
+ }
72
+ }
73
+ return false;
74
+ };
63
75
  function handleResponse(response, state, callback) {
64
- const nextState = {
65
- ...composeNextState(state, response),
66
- response
67
- };
76
+ let nextState;
77
+ if (isStream(response)) {
78
+ nextState = {
79
+ ...state,
80
+ data: response
81
+ };
82
+ } else {
83
+ nextState = {
84
+ ...composeNextState(state, response),
85
+ response
86
+ };
87
+ }
68
88
  if (callback)
69
89
  return callback(nextState);
70
90
  return nextState;
@@ -84,8 +104,9 @@ function handleResponseError(response, data, method) {
84
104
  var request = async (urlString, params = {}, method = "GET") => {
85
105
  let url = urlString;
86
106
  const defaultHeaders = { "Content-Type": "application/json" };
87
- const { headers } = params;
107
+ const { headers, parseAs } = params;
88
108
  const setHeaders = { ...headers, ...defaultHeaders };
109
+ delete params.parseAs;
89
110
  delete params.headers;
90
111
  let options = {
91
112
  method,
@@ -98,7 +119,15 @@ var request = async (urlString, params = {}, method = "GET") => {
98
119
  }
99
120
  const response = await fetch(url, options);
100
121
  const contentType = response.headers.get("Content-Type");
101
- const data = (contentType == null ? void 0 : contentType.includes("application/json")) ? await response.json() : await response.text();
122
+ let data;
123
+ if (parseAs) {
124
+ if (parseAs === "json")
125
+ data = await response.json();
126
+ if (parseAs === "text")
127
+ data = await response.text();
128
+ } else {
129
+ data = (contentType == null ? void 0 : contentType.includes("application/json")) ? await response.json() : response.body;
130
+ }
102
131
  handleResponseError(response, data, method);
103
132
  return data;
104
133
  };
@@ -224,11 +253,11 @@ function getFolder(pathOrId, options, callback = (s) => s) {
224
253
  };
225
254
  }
226
255
  function getFile(pathOrId, options, callback = (s) => s) {
256
+ const defaultOptions = {
257
+ driveName: "default",
258
+ metadata: false
259
+ };
227
260
  return async (state) => {
228
- const defaultOptions = {
229
- driveName: "default",
230
- metadata: false
231
- };
232
261
  const { accessToken, apiVersion } = state.configuration;
233
262
  const [resolvedPathOrId, resolvedOptions] = expandReferences(
234
263
  state,
@@ -254,9 +283,11 @@ function getFile(pathOrId, options, callback = (s) => s) {
254
283
  }
255
284
  const url = getUrl(resource, apiVersion);
256
285
  const auth = getAuth(accessToken);
257
- return request(url, { ...auth }).then(
258
- (response) => handleResponse(response, state, callback)
259
- );
286
+ const response = await request(url, {
287
+ ...auth,
288
+ parseAs: metadata ? "json" : "text"
289
+ });
290
+ return handleResponse(response, state, callback);
260
291
  };
261
292
  }
262
293
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfn/language-msgraph",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "Microsoft Graph Language Pack for OpenFn",
5
5
  "type": "module",
6
6
  "exports": {
@@ -19,8 +19,8 @@
19
19
  "configuration-schema.json"
20
20
  ],
21
21
  "dependencies": {
22
- "@openfn/language-common": "^1.10.1",
23
- "undici": "^5.22.1"
22
+ "undici": "^5.22.1",
23
+ "@openfn/language-common": "1.10.3"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@openfn/buildtools": "^1.0.2",