GRDigital / overwolf-boilerplate

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Overview

This repo is the boilerplate we've used for multiple successful Overwolf apps, ranging from fairly simple to some of the most complex apps on the platform. It showcases updating the app from the server, deploying, logging and ffi with c-style plugin apis.

Since inception this has been for internal use, so it may not be the best to jump in and use off the bat, however, feature requests and bug/issue reports welcome.

Prerequisites

  1. Windows only
  2. node v10+ and npm v6+ in PATH
  3. C++ compiler that node-gyp understands
  4. python v2.7 in PATH
  5. git and Unix tools (rm, find, gzip, mv, sh, etc) in PATH
  6. cargo and rustup in PATH
  7. Overwolf

CAUTION: sh, bash, cygwin or even PowerShell may cause issues. ConEmu/cmder is fine.

Setup

  1. Copy create-configs.js.example to create-configs.js and edit
  2. npm install
  3. npm run tool compile -- --client - double-dash necessary because --client is an argument to the compile script
  4. npm run script flow-typed
  5. npm run script dev
  6. Open Overwolf, right click on the tray icon -> Support -> Development Options -> Load unpacked extension... -> open the public/extension folder -> Select folder
  7. Click Launch next to the package that just appeared

For dev

  • node.js inspector manager will help debuggin serverside code.
  • Only the MainWindow's console will be populated with messages.
  • Editing the js code will recompile the bundle and restart the server. Use =r while app is in focus to reload or =q to close the app.
  • Consult with npm run script lint eslint for style consistency and npm run script lint flow for type safety (or just npm run script lint for both).

Staging & production

  • Make sure the ip and host are correct in ecosystem.config.js and create-configs-*.js
  • Make sure the names are correct in tools/compile.rs, src/scripts/deploy.js, src/scripts/stage.js and src/scripts/production.js
  • A docker image for AWS CodeBuild is provided, but has to be uploaded to AWS image store.
    • Something like docker build -t main -m 4g docker && docker tag main:latest <image-uri>:latest && docker push <image-uri>:latest
  • Create an AWS CodeBuild job
    • TODO: how to configure the codebuild job
  • Establish git branches staging and production
  • Checkout master, make sure it's clean and ready to be merged into staging
  • npm run script stage and npm run script production <semver-bump>
  • All the logging done via logger (including with plugins) will be redirected to a log file next to Overwolf's app log, all errors will be redirected to Sentry (if set up).

About


Languages

Language:JavaScript 61.2%Language:C# 26.4%Language:Rust 10.1%Language:HTML 1.5%Language:Dockerfile 0.7%Language:Batchfile 0.1%