D
Deno

help

not sure why this code is erroring

Llvin7/16/2023
for (const number of genNumbers()) {
const result = await fetchPages(number);
if (result instanceof Error) break;
const urls = parse(result);
await Promise.all(
urls.map((url) =>
fetchPage(`https://test.nl${url}`).then(({ name, videos }) =>
Deno.writeTextFile(name, JSON.stringify(videos))
)
)
);
}
for (const number of genNumbers()) {
const result = await fetchPages(number);
if (result instanceof Error) break;
const urls = parse(result);
await Promise.all(
urls.map((url) =>
fetchPage(`https://test.nl${url}`).then(({ name, videos }) =>
Deno.writeTextFile(name, JSON.stringify(videos))
)
)
);
}
Task generate deno run -A ./scripts/generate.ts
error: Uncaught TypeError: Expected string at position 1
Deno.writeTextFile(name, JSON.stringify(videos))
^
at writeFile (ext:deno_fs/30_fs.js:807:18)
at Object.writeTextFile (ext:deno_fs/30_fs.js:850:12)
at file:///home/al/Code/crookedy/scripts/generate.ts:76:14
at eventLoopTick (ext:core/01_core.js:183:11)
at async Promise.all (index 10)
at async file:///home/al/Code/crookedy/scripts/generate.ts:73:3
Task generate deno run -A ./scripts/generate.ts
error: Uncaught TypeError: Expected string at position 1
Deno.writeTextFile(name, JSON.stringify(videos))
^
at writeFile (ext:deno_fs/30_fs.js:807:18)
at Object.writeTextFile (ext:deno_fs/30_fs.js:850:12)
at file:///home/al/Code/crookedy/scripts/generate.ts:76:14
at eventLoopTick (ext:core/01_core.js:183:11)
at async Promise.all (index 10)
at async file:///home/al/Code/crookedy/scripts/generate.ts:73:3
ABAltair 680b7/16/2023
may have to await the parse(result)?
Llvin7/16/2023
no that function is synchrous, and using writeTextFileSync doesn't help either
EEsente7/16/2023
Can you check if you actually get a string for name? The error says that the first argument for writeTextFile is not a string.
Llvin7/16/2023
horrible error message
UUUnknown User7/16/2023
Message Not Public
Sign In & Join Server To View
Llvin7/16/2023
nah, functions only need to be tagged w/ async if im using await inside them. the map converts all the urls Array<string> to Array<Promise<{name:string,videos:Array<Video>}>> hence why i can use promise.all with it the name parameter for Deno.writefile was undefined instead of a string so thats why shit borked
KKyiro7/17/2023
console log videos
NNeTT7/17/2023
That was a poor error message indeed. Might need to open an issue for enhancement.
Yybabts7/18/2023
It would be helpful to share the functions you're using inside your snippet. Whatever object you're destructuring in the then statement, the name property isn't always a string, hence the error. You should log the output of the object you're destructuring to confirm this. The solution would be to type check name and videos to ensure that they are the proper types before attempting to write them to a file. Also I am interested in what this is here
const result = await fetchPages(number);
if (result instanceof Error) break;
const result = await fetchPages(number);
if (result instanceof Error) break;

Looking for more? Join the community!

Recommended Posts
Why doesn't POST response from serveTls support streaming chunks from a ReadableStream?We can POST a ReadableStream to a serveTls server, however when we respond with a ReadableStream theWhen I use npm: node: specifiers how can I specify the version?We know in Deno we can do `import { Client, Pool } from "https://deno.land/x/pg@v0.6.1/mod.ts";` I wFakeTime seems to break async testsI am attempting to use FakeTime similarly to in the Faking time example of https://deno.land/manual@How to serve HTTPS with the Deno.serve() APII used to start a dev server with TLS like so ```const server = Deno.listenTls({ port: 7000, trCustom console.log formatting for a class/objectIs there a way to change the way an object/class is printed in the console? For example, instead ofIs there a way to write to a file by replacing bytes?Like "I am a looong file" > write('Test') > 'Test a looong file'std/http/server: URI too long —how to avoid loading those?Using https://deno.land/std@0.194.0/http/server.ts, is there a way to reject long URIs before they aWorker: TS2304 [ERROR]: Cannot find name 'postMessage'When type-checking a worker script that uses the global `postMessage()` method, `deno check` gives aHow to recover from worker death? It terminates my main program…In the error message handler, I replace the dead worker with a new one, but it kills my program eithIs there anyone using kv with pentagon ORM and Zod ?I've tried using pentagon for Deno kv in a Fresh project, and it seems like it's not working.Prefix Kv keys with a base partCurrently I add `base()` to all keys: ``` kv.set([base(), "foo"], value) ``` Instead of manually adCaching old versionsWhy is deno caching old versions even tho the version is specifieddeno check: Module '"internal:///missing_dependency.d.ts"' has no exported member...The sequence of events: - Upgraded to Deno 1.35.0 - ran `deno check` on my code - got an error like cargo compile size 160MWhen using `cargo install deno` the result is 160M, if there's info on shrinking this somewhere pleaDeno type enforcementHey, I have a question about the type checking. ```ts function logging(message : number) { consoDNS Records and Denoso I am confused I'm building an application that uses Steam's web API and am looking at why the resFresh pattern helpCould anyone possibly help guide me to understand the 'freshest' pattern for the following, please? Deno seems to assume wrong return type (Puppeteer)With the following code, I get an type error which I do not expect: ```ts const element: ElementHanCreating my first Deno moduleHave never published to NPM or Denoland before, so I'm having some problems figuring shit out. I'm gSanitize multiple test stepsIs it possible to sanitize multiple steps inside of one test. I want to test my DB with somthing lik