this post was submitted on 12 Jan 2025
8 points (83.3% liked)

JavaScript

1700 readers
2 users here now

founded 2 years ago
MODERATORS
 

hello. I recently asked here for help with Lemmy HTTP API and someone said "why don't you use lemmy-js-client?". i tried to add it and...

first i searched the internet about this library and it turns out that it is an npm library... (I have github pages) i searched different variations of the library and found a cdn version of it. i tried to add it. it was a hell of a torture.... i added it the way I add cdn libraries, nothing. i searched all over the internet, but found null. i even asked chatgpt! to no avail. the library (and everything I tried to get out of it) turned into undefined!

what am I supposed to do? this is cdn version what i tried to add
if u want here is source code

top 9 comments
sorted by: hot top controversial new old
[–] [email protected] 2 points 4 days ago (1 children)

Maybe include your "add it" and "the library turned into undefined" code as a minimum example?

So people can actually check your assumptions and actions and match it against the lib.

[–] okelote360 0 points 4 days ago (1 children)
[–] [email protected] 1 points 4 days ago* (last edited 4 days ago) (2 children)

That js file certainly doesn't look like a normal module to me that I would expect when importing a module.

But I'm not too familiar with the JS ecosystem to the point where I know what that dynamic Object.defineProperty(exports, "__esModule" magic does or how it's supposed to be used.

But I can see why the import would result in undefined.


With my first search of LemmyHttp I land on https://join-lemmy.org/api/classes/LemmyHttp.html, which says Defined in src/http.ts:153. Have you considered importing http.js? Looking at the http.js on the CDN I can at least see the LemmyHttp class type you seem to try to import.

[–] okelote360 0 points 3 days ago (1 children)
[–] [email protected] 1 points 3 days ago* (last edited 3 days ago)

given how dynamic creation it looks maybe it has to be executed/included rather than imported and then the class is available?

With all that magic, and looking at https://join-lemmy.org/api/index.html if you're not using pnpm I would give up on that lib.

[–] okelote360 0 points 3 days ago

hmmm... okay!

[–] [email protected] 2 points 4 days ago (2 children)

try opening that cdn link you sent in a browser. it'll open a directory listing for the package. you can see some examples of what urls to use on the main jsdelivr page.

I imagine the url you want is probably something like https://cdn.jsdelivr.net/npm/[email protected]/dist/index.js (note the extra path on the end and also a specific pinned version instead of latest so new versions don't break things)

[–] okelote360 0 points 4 days ago

i already use what urls!