npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

ians-fw

v1.4.4

Published

ians-fw, my best attempt at creating a custom web framework

Downloads

151

Readme

ians-fw

by: Ian Senne

Install

$ npm i ians-fw

Features

  • Basic support for ie11, edge, chrome, and firefox
  • Comes with a developement server, and an fw-script command

fw-scripts

for developement, $ fw-scripts dev will watch for file changes in the project and rebuild build file is exposed on the development server under /~/index.js, there is currently no live reloading.

in progress is $ fw-scripts build which will when done output a file or set of files for use in production.

framework

ians-fw export an object with the following properties, dom, StatefulData, stateJoin, css, Component, and verbose further mentions of fw will assume that fw is the result of importing ians-fw

####dom fw.dom(element_name/component,props|null,...children); returns a VElement or component instance

###StatefulData fw.StatefulData(value); returns an OStatefulData instance (note: this object may behave differently depending on context) ###stateJoin fw.stateJoin(...values); returns an StatefulData like object which has a getter for value that will return a string concatination of all inputs, updates relient objects when any inputs of type OStatefulData or resulting from fw.stateJoin update

###css fw.css(rawstring,...parts); appends css given by template literal call to the frameworks generated style tag. ex. fw.css`.test{color:red;}`

###Component fw.Component is a class meant to be extended to create a class based component, used much like reacts React.Component object ###verbose fw.verbose returns an object which has a getter and setter for enabled and 3 functions, fw.verbose.log(...contents) fw.verbose.warn(...contents) and fw.verbose.error(...contents)

#Stateful Data

Stateful data will behave differently if used in a functional component vs a class based component, in a functional component state is not bound to the component but any element

import fw from 'ians-fw';
export function ExampleComponent(props){
	const count = fw.StatefulData(0);
	setInterval(()=>{count.value++;},1000);
	return <div>{count}</div>
}

count updating in this case will only update the content of the div instead of causing a rerender.

within class based components it is expected that any stateful data is defined within the constructor

import fw from 'ians-fw';
export class ExampleComponent extends fw.Component{
  constructor(props){
  		super(props);
		this.count = fw.StatefulData(0);
		setInterval(()=>{this.count.value++},1000);
   }
   render(){
   		return <div>{this.count.value}</div>
  }
}

in this case the stateful data is bound to the component and will queue a rerender whenever it updates.