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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@morgan-stanley/desktopjs

v4.0.0

Published

Library for abstracting common container hosting

Downloads

64

Readme

desktopJS

Lifecycle Active npm version Build Status codecov

desktopJS is a common API across multiple HTML5 containers. By programming to a common API, applications can target multiple HTML5 containers without change. Detecting what container in which you are hosted, desktopJS provides shims and polyfills to bridge the common API to the underlying container. The goal is to help applications be container agnostic and provide portability when multiple container deployments are desired.

Usage

The first step is to simply resolve the current container. This enumerates all registered containers (including your own custom container or derived custom implementations) and returns the container implementation that matches.

var container = desktopJS.resolveContainer();
console.log("Container: " + container.hostType);

Interact with the container via a single api instead of having conditional code or applications based on deployment.

container.addTrayIcon({ icon: 'assets/img/application.png', text: 'Example' }, () => {
	console.log("Icon clicked");
});

Building

The library uses gulp and rollup for building. All build dependencies are included as devDependencies and are installed during npm install.

$ npm install

Build the project. This runs static analysis, unit tests and bundles the output with rollup.

$ npm run build && npm test

For those using Visual Studio Code, tasks.json has a build task.

Development

Local Hosting

To run the examples or to manually test scenarios in each container, there is a gulp task providing a local server with live reload. This can be run directly via gulp or through npm.

$ npm start

This is configured to listen at http://localhost:8000 and will reload upon any change to the project build output under /dist or the web example under /examples/web. All of the included examples make use of this example application to showcase the portability of one codebase.

Unit tests

The tests can be run independent of the build.

$ npm test

A task is provided for Visual Studio Code users that can be launched from the command palette via

>Tasks: Run Test Task

or it is recommended to define a custom keyboard binding.

{
    "key": "ctrl+shift+t",
    "command": "workbench.action.tasks.test"
}

Examples

Examples showcasing usage of desktopJS for various containers and scenarios can be found under the examples directory.