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.
- Windows only
node
v10+ andnpm
v6+ in PATH- C++ compiler that
node-gyp
understands- make sure to tick C++ and C# if installing Visual Studio
- also see windows-build-tools
- also see vs_buildtools.exe
python
v2.7 in PATH- also see windows-build-tools
git
and Unix tools (rm
,find
,gzip
,mv
,sh
, etc) in PATH- e.g. as part of Git for Windows)
- e.g. as part of cmder
cargo
andrustup
in PATH- e.g. via rustup.rs
- Overwolf
CAUTION: sh
, bash
, cygwin
or even PowerShell
may cause issues. ConEmu
/cmder
is fine.
- Copy
create-configs.js.example
tocreate-configs.js
and edit npm install
npm run tool compile -- --client
- double-dash necessary because--client
is an argument to the compile scriptnpm run script flow-typed
npm run script dev
- Open Overwolf, right click on the tray icon ->
Support
->Development Options
->Load unpacked extension...
-> open thepublic/extension
folder ->Select folder
- Click
Launch
next to the package that just appeared
- 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 andnpm run script lint flow
for type safety (or justnpm run script lint
for both).
- Make sure the ip and host are correct in
ecosystem.config.js
andcreate-configs-*.js
- Make sure the names are correct in
tools/compile.rs
,src/scripts/deploy.js
,src/scripts/stage.js
andsrc/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
- Something like
- Create an AWS CodeBuild job
- TODO: how to configure the codebuild job
- Establish
git
branchesstaging
andproduction
- Checkout master, make sure it's clean and ready to be merged into
staging
npm run script stage
andnpm 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).