Skip to content

Commit 1f9a7a5

Browse files
committed
Simplify fetch logic
1 parent fae6027 commit 1f9a7a5

1 file changed

Lines changed: 16 additions & 19 deletions

File tree

bin/handler.js

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ function readFromStdin() {
169169
}
170170

171171
async function fetchCssDoodleSource(version) {
172-
let result = '', res, error;
172+
let result = '', error;
173173

174174
if (/^css\-doodle@/.test(version)) {
175175
version = version.split('@')[1];
@@ -184,31 +184,28 @@ async function fetchCssDoodleSource(version) {
184184
}
185185
}
186186

187-
console.log(`Fetching css-doodle@${version} from esm.sh`);
188-
189187
try {
190-
res = await fetch(`https://esm.sh/css-doodle@${version}/css-doodle.min.js?raw`, { redirect: 'follow' });
191-
} catch (error) {
188+
console.log(`Fetching css-doodle@${version} from esm.sh.`);
189+
result = await fetchResource(`https://esm.sh/css-doodle@${version}/css-doodle.min.js?raw`);
190+
} catch (e) {
192191
try {
193-
console.log(`Try jsdelivr.net`);
194-
res = await fetch (`https://cdn.jsdelivr.net/npm/css-doodle@${version}/css-doodle.min.js`, { redirect: 'follow' });
195-
} catch (error) {
196-
return { result, error: new Error(messageFailed) }
192+
console.log(`Try jsdelivr..`);
193+
result = await fetchResource(`https://cdn.jsdelivr.net/npm/css-doodle@${version}/css-doodle.min.js);`);
194+
} catch (e) {
195+
error = new Error(messageFailed);
197196
}
198-
return {
199-
result, error: new Error(messageFailed)
200-
};
201197
}
202198

203-
const source = Buffer.from(await res.arrayBuffer()).toString();
204-
205-
if (/^invalid|ERR_PNPM_NO_MATCHING_VERSION/i.test(source)) {
206-
return {
207-
result, error: new Error(messageInvalid)
208-
}
199+
if (/^invalid|ERR_PNPM_NO_MATCHING_VERSION/i.test(result)) {
200+
error = new Error(messageInvalid)
209201
}
210202

211203
return {
212-
result: source, error: null
204+
result, error
213205
}
214206
}
207+
208+
async function fetchResource(url) {
209+
let res = await fetch(url, { redirect: 'follow' });
210+
return Buffer.from(await res.arrayBuffer()).toString();
211+
}

0 commit comments

Comments
 (0)