9

electron-store with TypeScript Example

 2 years ago
source link: https://dev.to/anasrin/electron-store-with-typescript-example-108j
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
Cover image for electron-store with TypeScript Example
anasrin

Posted on Apr 1

electron-store with TypeScript Example

Simple data persistence for your Electron app or module - Save and load user preferences, app state, cache, etc.

electron-store

Below some example how to use electron-store in TypeScript and using Schema for validation.

import Store, { Schema } from 'electron-store';

interface Dummy {
  someObject: {
    someString: string;
  };
  someNumber: number;
  someEnumString: 'one' | 'two' | 'three';
}

const schema: Schema<Dummy> = {
  someObject: {
    type: 'object',
    properties: {
      someString: {
        type: 'string',
        default: 'string inside object',
      },
    },
    default: {}, // electron-store need this for object type
    required: ['someString'],
  },
  someNumber: {
    type: 'number',
    minimum: 1,
    maximum: 100,
    default: 50,
  },
  someEnumString: {
    type: 'string',
    enum: ['one', 'two', 'three'],
    default: 'two',
  },
};

const store = new Store<Dummy>({ schema });

console.table(store.get('someObject'));
// ┌────────────┬────────────────────────┐
// │  (index)   │         Values         │
// ├────────────┼────────────────────────┤
// │ someString │ 'string inside object' │
// └────────────┴────────────────────────┘
console.log(store.get('someNumber'));
// 50
console.log(store.get('someEnumString'));
// two
try {
  store.set('someNumber', 200);
} catch (err) {
  console.error(err);
  // Error: Config schema violation: `someNumber` must be <= 100
}

try {
  store.set('someEnumString', 'four');
} catch (err) {
  console.error(err);
  // Error: Config schema violation: `someEnumString` must be equal to one of the allowed values
}

Enter fullscreen mode

Exit fullscreen mode


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK