1.0.0 • Published 4 months ago

locker-desktop-service v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
4 months ago

Locker Desktop Service Supporter for Desktop app

Installation

Install from npm:

npm install -S locker-desktop-service

Install from yarn:

yarn add locker-desktop-service

Usages

This supporter service requires Node.js to work -> If you use this service in Electron, it must be running in main process and calling method through ipcMain.handle() and ipcRenderer.invoke()

import { DesktopService, StorageService } from 'locker-desktop-service'
import fs from 'fs'
import path from 'path'
import Store from 'electron-store'

// Storing data secure data using electron-store, you can use others secure storage
// or simply keep data in memory only
class MockStorageService implements StorageService {
  storage: Store
  constructor() {
    this.storage = new Store()
  }
  getSecure(key: string) {
    return Promise.resolve(this.storage.get(key) || null)
  }
  setSecure(key: string, data: any) {
    this.storage.set(key, data)
    return Promise.resolve()
  }
  deleteSecure(key: string) {
    this.storage.delete(key)
    return Promise.resolve()
  }
}
const storageService = new MockStorageService()

// TLS cert is required to comunicate with the background service
const rootCert = fs.readFileSync(path.resolve(process.resourcesPath, 'cert', 'ca-cert.pem'))

// TLS cert to host WSS
const cert = fs.readFileSync(path.resolve(process.resourcesPath, 'cert', 'server-cert.pem'))
const key = fs.readFileSync(path.resolve(process.resourcesPath, 'cert', 'server-key.pem'))

// Init service
export const service = new DesktopService({
  baseApiUrl: process.env.BASE_API_URL,
  storageService,
  ssl: {
    rootCert,
  },
  socketSsl: {
    cert,
    key,
  },
  logLevel: 1,  // 1 is error, 2 is debug
  unsafe: true, // set to false to enable checksum validation
  serviceAlias: '' // optional, used to compare with service alias from background service
})

// Setup listners
service.on('<event-name>', callback)

Development

Install required packages.

npm install

Run tests

Create a .env file with required access keys (refer to .env.example)

To run all tests, use:

npm test

Run some tests only, please update mocharc.js:

ignore: [
  // './tests/index.spec.ts', // Comment the file you want to test
  './tests/crypto.spec.ts',
  '...'
]
1.0.0

4 months ago

0.2.2

4 months ago

0.2.1

4 months ago

0.2.0

4 months ago

0.1.8

5 months ago

0.1.7

5 months ago

0.1.6

5 months ago

0.1.5

5 months ago

0.1.2

5 months ago

0.1.4

5 months ago

0.1.3

5 months ago

0.1.0

5 months ago

0.1.1

5 months ago

0.0.12

5 months ago

0.0.11

5 months ago