Skip to content
Snippets Groups Projects
Select Git revision
  • 008bb466b1b89a5799389f0fb3c7cc2ab9c1426c
  • master default protected
2 results

index.ts

Blame
  • index.ts 3.19 KiB
    import {Duniter} from 'duniter';
    import {gvaHttpListen} from "./src/network";
    import * as Http from "http";
    import {UpnpProvider} from "duniter/app/modules/upnp-provider";
    
    const DEFAULT_GVA_PORT = 15000
    
    Duniter.run([{
      name: 'gva',
      required: {
        duniter: {
    
          cliOptions: [
            { value: '--gva-port <port>',     desc: 'Force usage of a specific port for GVA.', parser: (val: string) => parseInt(val) },
            { value: '--gva-host <porthost>', desc: 'Force usage of a specific host for GVA.' },
            { value: '--gva-upnp',            desc: 'Use UPnP for port opening.' },
            { value: '--gva-noupnp',          desc: 'Do not use UPnP for port opening.' },
          ],
    
          config: {
            onLoading: (conf: any, program: any) => {
              if (program.gvaPort || program.gvaHost || program.noupnp || program.upnp) {
                if (!conf.gva) {
                  conf.gva = {}
                }
                if (program.gvaPort) {
                  conf.gva.port = program.gvaPort
                }
                if (program.gvaHost) {
                  conf.gva.host = program.gvaHost
                }
                if (program.noupnp) {
                  conf.gva.upnp = false
                }
                if (program.upnp) {
                  conf.gva.upnp = true
                }
              }
            },
            beforeSave: (conf, program, logger, confDAL) => {
            }
          },
    
          cli: [{
            name: 'gva',
            desc: 'Starts the UI',
            onDatabaseExecute: async (server, conf, program, params, start, stop) => {
              // Never ending
              await new Promise(async (res, rej) => {
                try {
                  const { available, host, port } = { available: true, host: 'localhost', port: 15000 }
                  // const { available, host, port } = await api.startRegular()
                  if (available) {
                    gvaHttpListen(server, port, host)
                  }
                } catch (e) {
                  rej(e)
                }
              })
            }
          }],
          service: {
            neutral: (server, conf: any) => {
    
              let app: Http.Server|undefined
              let api = new UpnpProvider(
                (conf.gva && conf.gva.port) || DEFAULT_GVA_PORT,
                (conf.gva && conf.gva.port) || DEFAULT_GVA_PORT + 1000,
                ':gva:' + conf.pair.pub.substr(0, 6))
              return {