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

electron-memento

v0.0.3

Published

Simple module to track position and dimension of an electron window accross an application lifecycle

Downloads

8

Readme

For Electron applications you can specify the size and positioning of BrowserWindow instances. No API could be used to store and retrieve those configuration values across an application restart. electron-memento will change this. electron-memento provides a simple set of APIs that allows you to store and load the dimension and the position of your application's main window.

electron-memento is licensed under MIT.

Build Status

Release build on master

Build Status

CI build on develop

Build Status

Support me

Become a Patron!

Install

npm install electron-memento --save

Usage

electron-memento is meant to be used from within the main process of an Electron app.

const { app, BrowserWindow } = require('electron');
const Memento = require('electron-memento');

let mainWindow;

function createWindow() {
  const bounds = Memento.read();
  const mainWindowConfig = {
    width: bounds.width,
    height: bounds.height,
    x: bounds.x,
    y: bounds.y,
    title: 'Memento Sample'
  };
  const mainWindowUrl = 'some-url.html';

  mainWindow = new BrowserWindow(mainWindowConfig);
  Memento.infect(mainWindow);
  mainWindow.loadURL(mainWindowUrl);
  mainWindow.webContents.openDevTools();

  mainWindow.on('closed', () => {
    mainWindow = null;
  });
}
 // ...

API

read

The read method will read the dimension and position from the configuration file. If no configuration exists, either internal defaults or default values provided by the caller will be returned.

read(defaultDimension?: { width: number, height: number }, defaultPosition?: { x: number, y: number }): Rectangle Type: Rectangle

Internal Defaults

If you don't specify default values, the window will be centered and the dimension will be set to 1000x700 pixels

writePosition

You can instruct electron-memento explicitly to store the position of the current window by calling the writePosition method. It will store the position of mainApplicationWindow (Electron.BrowserWindow).

writePosition(mainApplicationWindow: BrowserWindow): void

writeDimension

You can instruct electron-memento explicitly to store the dimension of the current window by calling the writeDimension method. It will store the dimension of mainApplicationWindow (Electron.BrowserWindow).

writeDimension(mainApplicationWindow: BrowserWindow): void

infect

The infect method will register writePosition and writeDimension to the corresponding events of 'mainApplicationWindow' (move and resize). Once infected, electron-memento will always be invoked to store both, dimension and position of mainApplicationWindow. Both listeners are unregistered using explicit de-registration in mainApplicationWindow.on('close').

infect(mainApplicationWindow: BrowserWindow): void

Credits

The project has been built using electron-store from Sindre Sorhus.

Other libraries

Copyright

© Thorsten Hans