concat-stream
lrnwebcomponents
concat-stream | lrnwebcomponents | |
---|---|---|
1 | 30 | |
572 | 235 | |
0.2% | 0.0% | |
0.0 | 9.7 | |
almost 3 years ago | 4 days ago | |
JavaScript | JavaScript | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
concat-stream
-
htmlToDocx? No! docxToHtml! How about both?
This will cover a slightly more complex aspect of a micro frontend (at least on one side of that transaction) which is taking a FormData object to allow for uploading files, then using a npm package called busboy which is used for "parsing incoming HTML form data" as well as concat-stream for file upload via that form data POST.
lrnwebcomponents
-
How we automated storybook documentation for our web components
utils.makeElementFromClass(GitCorner, { source: 'https://github.com/elmsln/lrnwebcomponents', alt: "Our monorepo of all the things you see here", corner: true, size: "large" })
-
enhanced-text? Vide!
web component source
-
simple-img microfrontend
microservice source
-
htmlToDocx? No! docxToHtml! How about both?
Source for microservice
-
mdToHtml? htmlToMd? How 'bout both!
MD to HTML micro code
-
export class MicroFrontendRegistry
source for MFR
-
Duck duck go example
backend code for vercel
-
Building micro frontends with Vercel + Lit
Code Monorepo - https://github.com/elmsln/lrnwebcomponents/tree/master/ . /api has the endpoints for the microservices and /elements contains source for our web components
-
Visualizing Promise Arrays
Full source
-
Leveraging APIs for Microservices
Our url holds the link to google's mapping api and right after the /maps?q= in the link, we place in the latitude and longitude we have already found. Then, all we have left is to place that url into the src of our and the map will display, embedded in our page.
For more info on using the Google Maps Platform check out their developer page.
Externally
To create a link in our page that takes up to Google Maps with our desired location already in the view window is not too different from before. We can create a simple
tag and place the link for an external path with our long and lat we've received before.
See on Google
Enter fullscreen mode Exit fullscreen modeHere we've created a link that leads to google map's site with our long and lat coordinates and a zoom of 14 (
,14z
).Wiring with an Existing Component
Let's say you want to use the data we received to utilize a different web component.
For this example, we'll look at a tag named
that will perform a wikipedia search and embed the page found into our site.
Wikipedia-query info: Github npmjsSet Up
We'll start by wiring the component into our program so we can implement the project. First, adding the package location to our
dependencies
inpackage.json
.
Then we'll run annpm install
on our project to get all the needed assets to runwikipedia-query
.Once the install is finished, we want to add a "bare import" to our program file to be able to access the tag we just installed. A "bare import" is a convention where we let LitElement find what exact file we are looking for rather than specifically declaring one. This is important for improving the maintainability of our code since file locations and structures can change over time.
In this example, our "bare import" will look like this:
import '@lrnwebcomponents/wikipedia-query';
Enter fullscreen mode Exit fullscreen modeNotice we only specify the general area of what we are importing and not a specific file name.
Utilization
Now that we're all set up, we can do objectively the easiest part. Remember we want to use the
tag to display a wiki page of the location we received from our API earlier.
To implement our
tag we pass our location into it's
search
property and let the tag do the rest of the work for us.
//finding wiki based on city and state //finding wiki based on city //finding wiki based on state
Enter fullscreen mode Exit fullscreen modeWrap It Up
The main point in this post is the effectiveness of the
fetch
function. We are able to set a call to any API, receive the JSON data, and use that data in any way we want.Everything I talked about in this post is held in a small project that does more than is explained but is mostly centered around these topics.
Feel free to clone and play with the program on your own to see how it all plays together: Github
FYI: Everything discussed in this post is location in the LocationFromIP.js file in the src folder.
What are some alternatives?
through2 - Tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise
vaadin - An evolving set of open source web components for building mobile and desktop web applications in modern browsers.
graphicsmagick-stream
web-components - Nativ web components for typographic projects: <foot-note>, <inline-note>, <note-list>
pumpify - Combine an array of streams into a single duplex stream using pump and duplexify
lit-state - Simple shared component state management for LitElement.
Highland - High-level streams library for Node.js and the browser
WCFactory - A factory that churns out web components, library agnostic with a unified development, testing, and build to production pipeline.
readable-stream - Node-core streams for userland
web-components - A set of high-quality standards based web components for enterprise web applications. Part of Vaadin 20+
pad-stream - Pad each line in a stream
duplexify - Turn a writable and readable stream into a streams2 duplex stream with support for async initialization and streams1/streams2 input