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

@kdh/widgets

v3.0.5

Published

OS.js v3 Widgets

Downloads

9

Readme

OS.js is an open-source desktop implementation for your browser with a fully-fledged window manager, Application APIs, GUI toolkits and filesystem abstraction.

Build Status Support Back Sponsor Donate Donate Community

OS.js v3 Widgets module

This is the Widgets module for OS.js v3

  • https://manual.os-js.org/v3/install/
  • https://manual.os-js.org/v3/guide/provider/
  • https://manual.os-js.org/v3/tutorial/widget/

Installation

First, install the module:

npm install --save --production @osjs/widgets

In your client bootstrap (src/client/index.js):

import {WidgetServiceProvider} from '@osjs/widgets';

osjs.register(WidgetServiceProvider);

And in your stylesheet (src/client/index.scss):

@import "~@osjs/widgets/dist/main.css";

To set up a default set of widgets in the user settings, modify your client configuration file (src/client/config.js):

{
  desktop: {
    settings: {
      widgets: [{
        name: 'digitalclock'
      }]
    }
  }
}

A contextmenu entry on the desktop is automatically added so users can add these themselves.

Contribution

Documentation

See the Official Manuals for articles, tutorials and guides.

Links

const { JSDOM } = require('jsdom');
const DEFAULT_HTML = '<html><body></body></html>';
const jsdom = new JSDOM(DEFAULT_HTML, {
    url: "https://www.bbc.co.uk",
    referrer: "https://www.bbc.co.uk",
    contentType: "text/html",
    userAgent: "node.js",
    includeNodeLocations: true
});
const { window } = jsdom;
const { document, navigator } = window;

Why dts-gen works by running the code of the module you're targeting and this causes problems for modules that rely on the browser to run (since it runs from a node environment).

The following errors are common in these cases.

ReferenceError: window is not defined SecurityError: localStorage is not available for opaque origins The following instructions will help to fix these.

Instructions Install dts-gen as a dependency of the module you're using. Also install jsdom. Later we'll use the local versions of these modules to run the command and prevent polluting the global namespace.

yarn add dts-gen jsdom Make sure the target module you want is also installed and navigate to this the nodemodules package json.

For my usecase I'm working with storejs.

yarn add storejs

If you use vscode and have it set up on your command line run the following.

code node_modules/storejs/package.json Look for the main key in the package.json.

{ "main": "dist/store.common.js", } This is the file that needs to be edited. Open the file and add the following snippet to the top of that file.

const { JSDOM } = require('jsdom'); const DEFAULT_HTML = ''; const jsdom = new JSDOM(DEFAULT_HTML, { url: "https://www.bbc.co.uk", referrer: "https://www.bbc.co.uk", contentType: "text/html", userAgent: "node.js", includeNodeLocations: true }); const { window } = jsdom; const { document, navigator } = window; Finally run the following to generate the types.

yarn dts-gen -m storejs This will create a storejs.d.ts file in the package root.

You can now safely remove dts-gen and (optional) jsdom from your dependencies.

yarn remove dts-gen jsdom