TypeScript 예제를 사용한 전자 저장소

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

electron-store



TypeScript에서 electron-store을 사용하고 유효성 검사를 위해 스키마를 사용하는 방법에 대한 몇 가지 예가 아래에 나와 있습니다.

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
}

좋은 웹페이지 즐겨찾기