With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js. Learn more →
Top 23 Esm Open-Source Projects
-
webpack
A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows for loading parts of the application on demand. Through "loaders", modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
graphql-upload
Middleware and an Upload scalar to add support for GraphQL multipart requests (file uploads via queries and mutations) to various Node.js GraphQL servers.
-
SimpleWebAuthn
WebAuthn, Simplified. A collection of TypeScript-first libraries for simpler WebAuthn integration. Supports modern browsers, Node, Deno, and more.
-
cloudflare-worker-jwt
A lightweight JWT implementation with ZERO dependencies for Cloudflare Workers.
-
PenguLoader
✨ Pengu Loader is a small JavaScript plug-in loader, unleashes the power of customization from your League Client.
-
jest-light-runner
A Jest runner that runs tests directly in bare Node.js, without virtualizing the environment.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Homepage: https://webpack.js.org/
During my search for deploying Lambdas via GitHub actions, I came across a tutorial that utilized ncc for converting TypeScript and bundling. While ncc is effective, I discovered esbuild, which proved to be significantly faster and perfectly suited to my requirements.
Project mention: Finally, a guide for Node.js and TypeScript and ESM that works | news.ycombinator.com | 2023-11-21I really enjoy frontend/node/typescript development. I roll my eyes whenever the HN-types complain about CSS or frontend development being a hellhole. Mostly the comments I see seem ignorant or impatient ("Why doesn't this thing work without be bothering to learn it?")
However, the intersection of typescript, nodejs, and ES modules is consistently the most frustrating experience I ever have. Trying to figure out which magic incantation of tsconfig/esbuild/tsc/node options will let me just write code and run it is a fools errand. You might figure something out, and then you try to use Jest and then you descend into madness again.
The biggest tip I can give people is to ditch ts-node and just use (the awkwardly named) tsx https://github.com/privatenumber/tsx, which pretty much just "mostly works" for running Typescript during dev for node.
The problem mostly seems to stem for all the stakeholders being pretty dogmatic to whatever their goals are, rather than the pragmatic option of just meeting people where they are. I really wish the Node, Typescript, Deno/Bun, and maybe some bundler people would come together and figure out how to make this easier for people.
Project mention: Cloudflare is slow and Cloudflare cant do much about it | news.ycombinator.com | 2023-05-11Russia has blocked Cloudflare too too. You can see it in the issues for jsDelivr (which apparently handles a lot of traffic for TASS, since they use the CDN and browsers don't share caches for privacy reasons). https://github.com/jsdelivr/jsdelivr/issues/762
Project mention: I don't get fresh. why can't I use react without commiting to a server side framework? | /r/Deno | 2023-07-01Check aleph if you want to use react with deno. But I'd suggest sticking with Node.js and Vite as you'll get less surprises.
Project mention: I don't get fresh. why can't I use react without commiting to a server side framework? | /r/Deno | 2023-07-01Another option is ultra.
/* eslint-disable @typescript-eslint/ban-ts-comment */ // Follow this setup guide to integrate the Deno language server with your editor: // https://deno.land/manual/getting_started/setup_your_environment // This enables autocomplete, go to definition, etc. import { corsHeaders } from "../_shared/cors.ts"; import { createClient } from "https://esm.sh/@supabase/[email protected]"; import randomSample from "https://esm.sh/@stdlib/[email protected]"; import Replicate from "https://esm.sh/[email protected]"; import { base64 } from "https://cdn.jsdelivr.net/gh/hexagon/base64@1/src/base64.js"; const supabaseClient = createClient( Deno.env.get("SUPABASE_URL") ?? "", Deno.env.get("SUPABASE_SERVICE_ROLE_KEY") ?? "" ); const replicate = new Replicate({ auth: Deno.env.get("REPLICATE_API_TOKEN") ?? "", }); // @ts-expect-error Deno.serve(async (req) => { if (req.method === "OPTIONS") { return new Response("ok", { headers: corsHeaders }); } const { record } = await req.json(); const thought_id = record.id; if (!thought_id) { return new Response("Missing thought_id", { status: 400, headers: { "Content-Type": "application/json", ...corsHeaders }, }); } const allObjectIDsResponse = await fetch( "https://collectionapi.metmuseum.org/public/collection/v1/objects?departmentIds=11", { method: "GET", headers: { "Content-Type": "application/json", Accept: "application/json", }, } ); const { objectIDs } = await allObjectIDsResponse.json(); const listOfArtworks = []; const addedIDs: number[] = []; while (listOfArtworks.length < 80) { const randomObjectID = randomSample(objectIDs, { size: 1 })[0]; if (addedIDs.includes(randomObjectID)) continue; const res = await fetch( `https://collectionapi.metmuseum.org/public/collection/v1/objects/${randomObjectID}`, { method: "GET", headers: { "Content-Type": "application/json", Accept: "application/json", }, } ); const artwork = await res.json(); if (!artwork.primaryImageSmall) continue; addedIDs.push(artwork.objectID); listOfArtworks.push({ image_url: artwork.primaryImageSmall, artist_name: artwork.artistDisplayName, title: artwork.title, is_main: listOfArtworks.length === 0, is_variant: false, thought_id, }); } const mainImage = listOfArtworks[0]; const output = await replicate.run( "yorickvp/llava-13b:b5f6212d032508382d61ff00469ddda3e32fd8a0e75dc39d8a4191bb742157fb", { input: { image: mainImage.image_url, top_p: 1, prompt: "Describe this painting by " + mainImage.artist_name, max_tokens: 1024, temperature: 0.2, }, } ); const file = await fetch(mainImage.image_url).then((res) => res.blob()); const promises = []; for (let i = 0; i < 8; i++) { const body = new FormData(); body.append( "prompt", output.join("") + `, a painting by ${mainImage.artist_name}` ); body.append("output_format", "jpeg"); body.append("mode", "image-to-image"); body.append("image", file); body.append("strength", clamp(Math.random(), 0.4, 0.7)); const request = fetch( `${Deno.env.get( "STABLE_DIFFUSION_HOST" )}/v2beta/stable-image/generate/sd3`, { method: "POST", headers: { Accept: "application/json", Authorization: `Bearer ${Deno.env.get("STABLE_DIFFUSION_API_KEY")}`, }, body, } ); promises.push(request); } const results = await Promise.all(promises); const variants = await Promise.all(results.map((res) => res.json())); await supabaseClient.from("artworks").insert(listOfArtworks); for (let i = 0; i < variants.length; i++) { const variant = variants[i]; const randomId = Math.random(); await supabaseClient.storage .from("variants") .upload( `${thought_id}/${randomId}.jpeg`, base64.toArrayBuffer(variant.image), { contentType: "image/jpeg", } ); await supabaseClient.from("artworks").insert({ image_url: `${Deno.env.get( "SUPABASE_URL" )}/storage/v1/object/public/variants/${thought_id}/${randomId}.jpeg`, artist_name: mainImage.artist_name, is_main: false, is_variant: true, thought_id, }); } await supabaseClient .from("thoughts") .update({ generating: false }) .eq("id", thought_id); return new Response(JSON.stringify({ main: mainImage }), { headers: { "Content-Type": "application/json", ...corsHeaders }, }); }); function clamp(value: number, min: number, max: number) { return Math.min(Math.max(value, min), max); }
Project mention: tinyhttp: 0-legacy, tiny &amp; fast web framework as a replacement of Express | /r/opensource | 2023-06-08
Uploading cloud storage (s3, firebase storage, etc) is probably best. I do not recommend it, but graphql-upload is a thing. https://github.com/jaydenseric/graphql-upload
So this article will use the great library SimpleWebAuthN from Matthew Miller, which provides packages for the server side, client side, and typescript types, that make everything easier.
Project mention: A lightweight JWT implementation with ZERO dependencies for Cloudflare Workers | news.ycombinator.com | 2023-09-12
Something similar can be done by installing Pengu Loader in your league client and using this plugin. I have been using this client modification tool and it worked fine for me so far
Here is the Github repo (with links to Firefox and Edge extensions): https://github.com/BlackGlory/copycat
When deploying a Function, we serialize its module graph into a single file format (an eszip). In the hosted environment, all module references are then loaded from the eszip. This prevents any extra latency in fetching modules and potential conflicts between module dependencies.
Esm related posts
- Building a self-creating website with Supabase and AI
- Show HN: Comma Separated Values (CSV) to Unicode Separated Values (USV)
- JSR: The JavaScript Registry
- Esm.sh/Run
- Esm.sh run – 1KB script allows you to write JSX/TSX in HTML without build
- Supabase - allow user login with pin
- I made a tool that converts CJS to MJS in TypeScript projects
-
A note from our sponsor - SurveyJS
surveyjs.io | 27 Apr 2024
Index
What are some of the best open-source Esm projects? This list will help you:
Project | Stars | |
---|---|---|
1 | webpack | 64,160 |
2 | esbuild | 37,276 |
3 | tsx | 7,633 |
4 | rspack | 7,369 |
5 | jsdelivr | 5,374 |
6 | aleph.js | 5,249 |
7 | ultra | 2,987 |
8 | esm.sh | 2,808 |
9 | tinyhttp | 2,601 |
10 | tap | 2,305 |
11 | color.js | 1,750 |
12 | graphql-upload | 1,410 |
13 | SimpleWebAuthn | 1,259 |
14 | xv | 830 |
15 | pkgroll | 793 |
16 | cloudflare-worker-jwt | 568 |
17 | unimport | 460 |
18 | node-win32-api | 400 |
19 | cjstoesm | 372 |
20 | PenguLoader | 342 |
21 | copycat | 244 |
22 | jest-light-runner | 222 |
23 | eszip | 208 |
Sponsored