x_ite-node 1.0.13 → 1.0.14
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/package.json +1 -1
- package/src/index.js +54 -14
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -21,6 +21,21 @@ process .on ("exit", () =>
|
|
|
21
21
|
fs .rmSync (tmp, { recursive: true });
|
|
22
22
|
});
|
|
23
23
|
|
|
24
|
+
const $ = {
|
|
25
|
+
try (callback, logError = false)
|
|
26
|
+
{
|
|
27
|
+
try
|
|
28
|
+
{
|
|
29
|
+
return callback ();
|
|
30
|
+
}
|
|
31
|
+
catch (error)
|
|
32
|
+
{
|
|
33
|
+
if (logError)
|
|
34
|
+
console .error (error .message);
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
|
|
24
39
|
// Window
|
|
25
40
|
|
|
26
41
|
Object .defineProperties (window,
|
|
@@ -109,24 +124,49 @@ Object .defineProperties (window,
|
|
|
109
124
|
{
|
|
110
125
|
const parsedURL = new URL (resource);
|
|
111
126
|
|
|
112
|
-
|
|
127
|
+
switch (parsedURL .protocol)
|
|
113
128
|
{
|
|
114
|
-
|
|
129
|
+
case "file:":
|
|
115
130
|
{
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
fs .readFile (filePath, (error, data) =>
|
|
131
|
+
return new Promise ((resolve, reject) =>
|
|
119
132
|
{
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
133
|
+
const filePath = url .fileURLToPath (parsedURL);
|
|
134
|
+
|
|
135
|
+
fs .readFile (filePath, (error, data) =>
|
|
136
|
+
{
|
|
137
|
+
if (error)
|
|
138
|
+
reject (error);
|
|
139
|
+
else
|
|
140
|
+
resolve (new Response (data));
|
|
141
|
+
});
|
|
124
142
|
});
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
143
|
+
}
|
|
144
|
+
case "data:":
|
|
145
|
+
{
|
|
146
|
+
return new Promise ((resolve, reject) =>
|
|
147
|
+
{
|
|
148
|
+
const result = parsedURL .href .match (/^\s*data:(.*?)(?:;charset=(.*?))?(?:;(base64))?,/s);
|
|
149
|
+
|
|
150
|
+
if (result)
|
|
151
|
+
{
|
|
152
|
+
// const mimeType = result [1] || "text/plain"";
|
|
153
|
+
|
|
154
|
+
let data = parsedURL .href .substring (result [0] .length);
|
|
155
|
+
|
|
156
|
+
data = $.try (() => decodeURIComponent (data)) ?? data;
|
|
157
|
+
data = Buffer .from (data, result [3] !== "base64" ? 'base64' : 'utf8'); // Decode data.
|
|
158
|
+
|
|
159
|
+
resolve (new Response (data .buffer));
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
reject (new Error ("Couldn't parse data: URL."));
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
default:
|
|
167
|
+
{
|
|
168
|
+
return nodeFetch (resource, options);
|
|
169
|
+
}
|
|
130
170
|
}
|
|
131
171
|
},
|
|
132
172
|
configurable: true,
|