Trending Projects is available as a weekly newsletter please sign up at www.iainfreestone.com to ensure you never miss an issue.
1. TypeStat
Converts JavaScript to TypeScript and TypeScript to better TypeScript.
JoshuaKGoldberg / TypeStat
Converts JavaScript to TypeScript and TypeScript to better TypeScript. π§«
TypeStat
Converts JavaScript to TypeScript and TypeScript to better TypeScript. π§«
Usage
TypeStat is a CLI utility that modifies TypeScript types in existing code. The built-in mutators will only ever add or remove types and will never change your runtime behavior. TypeStat can:
- β¨ Convert JavaScript files to TypeScript in a single bound!
- β¨ Add TypeScript types on files freshly converted from JavaScript to TypeScript!
- β¨ Infer types to fix
--noImplicitAny
and--noImplicitThis
violations! - β¨ Annotate missing
null
s andundefined
s to get you started with--strictNullChecks
!
β‘ To start, the typestat
command will launch an interactive guide to setting up a configuration file. β‘
npx typestat
π Welcome to TypeStat! π This will create a new typestat.json for you. ...
After, use typestat --config typestat.json
to convert your files.
Configuration
To get a deeper understanding of TypeStat, read the following docs pages in order:
- Usage.md forβ¦
2. Package Phobia
Find the cost of adding a new dependency to your project. Package Phobia reports the size of an npm package before you install it.
styfle / packagephobia
βοΈ Find the cost of adding a new dependency to your project
Package Phobia
- βοΈ Find the cost of adding a new dependency to your project
- π Save yourself time and disk space with this web app
- π Detect javascript bloat over time with a chart
- π‘οΈ Get a badge/shield for your README
- π‘ Fetch size from json API to integrate into any tool
...as seen on AWS Developer Tools Blog and npm weekly and ponyfoo weekly and habr and rwpod and wolf report and the changelog and all over twitter
What is the purpose?
Package Phobia reports the size of an npm package before you install it.
This is useful for inspecting potential dependencies
or devDependencies
without using up precious disk space or waiting minutes for npm install
. Ain't nobody got time for dat.
Results are saved so the first person might wait a bit to view package size, but everyone else gets to see the results instantly!
Aβ¦
3. DenoDB
MySQL, SQLite, MariaDB, PostgreSQL and MongoDB ORM for Deno. Simple, typed API
eveningkid / denodb
MySQL, SQLite, MariaDB, PostgreSQL and MongoDB ORM for Deno
DenoDB
βοΈ This project is not actively maintained: expect issues, and delays in reviews
- π£ Supports PostgreSQL, MySQL, MariaDB, SQLite and MongoDB
- π₯ Simple, typed API
- π¦ Deno-ready
- Read the documentation
import { DataTypes, Database, Model, PostgresConnector } from 'https://deno.land/x/denodb/mod.ts';
const connection = new PostgresConnector({
host: '...',
username: 'user',
password: 'password',
database: 'airlines',
});
const db = new Database(connection);
class Flight extends Model {
static table = 'flights';
static timestamps = true;
static fields = {
id: { primaryKey: true, autoIncrement: true },
departure: DataTypes.STRING,
destination: DataTypes.STRING,
flightDuration: DataTypes.FLOAT,
};
static defaults = {
flightDuration: 2.5,
};
}
db.link([Flight]);
β¦4. Size Limit
Calculate the real cost to run your JS app or lib to keep good performance. Show error in pull request if the cost exceeds the limit.
ai / size-limit
Calculate the real cost to run your JS app or lib to keep good performance. Show error in pull request if the cost exceeds the limit.
Size Limit is a performance budget tool for JavaScript. It checks every commit on CI, calculatesΒ the real cost ofΒ your JS for end-users and throws an error if the cost exceeds theΒ limit.
- ES modules and tree-shaking support.
- Add Size Limit to GitHub Actions, Circle CI or another CI system to know if a pull request adds aΒ massiveΒ dependency.
- Modular to fit different use cases: big JS applications that use their own bundler orΒ smallΒ npmΒ librariesΒ withΒ many files.
- Can calculate the time it would take a browser to download and execute your JS. TimeΒ isΒ aΒ muchΒ moreΒ accurate andΒ understandable metric compared to the size in bytes.
- Calculations include all dependencies and polyfills used in your JS.
With GitHub action Size Limit will post bundle size changes as a comment in pull request discussion.
With --why
, Size Limit can tell youβ¦
5. Holmes
Fast and easy searching inside a page. Holmes filters a list of elements based on the value of a input in just ~2KB.
Fast and easy searching inside a page.
Holmes filters a list of elements based on the value of a input
in just ~2KB.
Installation
You can install Holmes with either npm
or bower
under the package name holmes.js
. For npm
that looks like this:
$ yarn add holmes.js # or via npm
After which you can add it in your page with i.e. webpack, rollup, browserify or loading the module in a different script tag.
You have to make sure that you have a css
rule for the class .hidden
that hides elements however you want. One option is to have this:
.hidden {
display: none;
}
but this could be any css
you want.
Usage
When should I use it?
You should use Holmes when
- you have a limited amount of items
- you don't need typo-tolerance
- you only want to add a really small library
- β¦
6. react-headroom
Hide your header until you need it.
KyleAMathews / react-headroom
Hide your header until you need it
react-headroom
Hide your header until you need it.
Demo
http://kyleamathews.github.io/react-headroom
Install
npm install react-headroom
Usage
A simple example, see the docs site for more examples and documentation.
<Headroom>
<h1>You can put anything you'd like inside the Headroom Component</h1>
</Headroom>
7. React Interview Questions & Answers
List of top 500 ReactJS Interview Questions & Answers.
sudheerj / reactjs-interview-questions
List of top 500 ReactJS Interview Questions & Answers....Coding exercise questions are coming soon!!
React Interview Questions & Answers
Click βif you like the project. Pull Request are highly appreciated. Follow me @SudheerJonna for technical updates.
π‘ Nail React interviews with questions and solutions from ex-interviewers! Try GreatFrontEnd β π‘
π Ace React interview questions with solutions from FAANG+ companies! Try FrontendLead β π
- I recommend this React course if youβre serious about learning React and want to go beyond the basics
- Want to ace your coding interview and get hired at your dream company? Take this coding interview bootcamp
Note: This repository is specific to ReactJS. Please check Javascript Interview questions for core javascript questions and DataStructures and Algorithms for DSA related questions or problems.
Table of Contents
No.
Questions
Core React
1
What is React?
2
What is the history behind React evolution?
3
What are the major features of React?
4
What is JSX?
5
What is
8. Intro.js
Lightweight, user-friendly onboarding tour library
Intro.js
User Onboarding and Product Walkthrough Library
Where to get
You can obtain your local copy of Intro.js from:
1) This GitHub repository, using git clone https://github.com/usablica/intro.js.git
2) Using yarn yarn add intro.js
3) Using npm npm install intro.js --save
4) Download it from CDN (1, 2)
How to use
Intro.js can be added to your site in three simple steps:
1) Include intro.js
and introjs.css
(or the minified version for production) in your page. Use introjs-rtl.min.css
for Right-to-Left language support.
CDN hosted files are available at jsDelivr (click Show More) & cdnjs.
2) Add data-intro
and data-step
to your HTML elements. To add hints you should use data-hint
attribute.
For example:
<a href='http://google.com/' data-intro='Hello step one!'></a>
See all attributes here.
3) Call this JavaScript function:
introJs().start();
β¦
9. clipboard.js
Modern copy to clipboard. No Flash. Just 3kb gzipped.
zenorocha / clipboard.js
βοΈ Modern copy to clipboard. No Flash. Just 3kb gzipped π
clipboard.js
Modern copy to clipboard. No Flash. Just 3kb gzipped.
Why
Copying text to the clipboard shouldn't be hard. It shouldn't require dozens of steps to configure or hundreds of KBs to load. But most of all, it shouldn't depend on Flash or any bloated framework.
That's why clipboard.js exists.
Install
You can get it on npm.
npm install clipboard --save
Or if you're not into package management, just download a ZIP file.
Setup
First, include the script located on the dist
folder or load it from a third-party CDN provider.
<script src="dist/clipboard.min.js"></script>
Now, you need to instantiate it by passing a DOM selector, HTML element, or list of HTML elements.
new ClipboardJS('.btn');
Internally, we need to fetch all elements that matches with your selector and attach event listeners for each one. But guessβ¦
10. next-sitemap
Sitemap generator for next.js. Generate sitemap(s) and robots.txt for all static/pre-rendered/dynamic/server-side pages.
iamvishnusankar / next-sitemap
Sitemap generator for next.js. Generate sitemap(s) and robots.txt for all static/pre-rendered/dynamic/server-side pages.
Table of contents
- Getting started
- Index sitemaps
- Splitting large sitemap into multiple files
- Configuration Options
- Custom transformation function
- Full configuration example
- Generating dynamic/server-side sitemaps
- Typescript JSDoc
Getting started
Installation
yarn add next-sitemap
Create config file
next-sitemap
requires a basic config file (next-sitemap.config.js
) under your project root
β
next-sitemap
will load environment variables from.env
files by default.
/** @type {import('next-sitemap').IConfig} */
module.exports = {
siteUrl: process.env.SITE_URL || 'https://example.com',
generateRobotsTxt: true, // (optional)
// ...other options
}
Building sitemaps
Add next-sitemap as your postbuild script
{
"build": "next build",
"postbuild": "next-sitemap"
}
Custom config file
You can also use a custom config file instead of next-sitemap.config.js
. Just pass --config <your-config-file>.js
to build command (Example: custom-config-file)
{
"build"
β¦Stargazing π
Top risers over last 7 days
- Slides +1,056 stars
- JavaScript Algorithms +908 stars
- Algorithm Visualizer +884 stars
- Coding Interview University +864 stars
- Tailwindcss +791 stars
Top growth(%) over last 7 days
- Slides +41%
- Nano Stores +34%
- React Virtual Cool +27%
- Million +17%
- Flicking +17%
Top risers over last 30 days
- Coding Interview University +11,825 stars
- Public APIs +7,051 stars
- Free Programming Books +5,253 stars
- Slidev +4,050 stars
- JavaScript Algorithms +3,029 stars
Top growth(%) over last 30 days
- Fig +74%
- Vuestic UI +59%
- Plaiceholder +50%
- Flicking +41%
- Slidev +39%
Trending Projects is available as a weekly newsletter please sign up at www.iainfreestone.com to ensure you never miss an issue.
If you enjoyed this article you can follow me on Twitter where I regularly post bite size tips relating to HTML, CSS and JavaScript.
Top comments (6)
Hi,
Thank you for sharing these trending projects. One of my projects on the Admin dashboard based on Bootstrap 5. Its now not trending, it is just initiated.
Demo & Gihub Also.
github.com/codescandy/Dash-UI
Hey jitu I saw your dashboard and I must admit it's pretty clean great work broπ€.
How come only js related projects are trending on github? Can't remember seeing a .Net repository in these lists.
Hi Tomas,
My list is always focused more towards JavaScript, HTML, CSS and related projects, as these are the technologies that I work in.
I only pick repositories which I have an understanding of as I would not want to add anything to the list that I do not have an understanding of find interesting in someway.
I should probably add this to the introduction of the weekly list.
Thank you
The slidev repo is awesome for slidesπ€©.
Thanks for the info.
Very nice.
Thanks for sharing