@brave/sync-client v0.1.0
Brave Sync
A client/server for Brave sync
Building
Install dependencies:
npm installBuild a bundled JS library for the client:
npm run buildRun the server:
npm run startTesting
The sync client uses Browserify to transform Node js into browser js. To unittest
the library in a browser (default: electron), run npm run browsertest.
To test in a different browser run npm run browsertest -- --browser chrome.
Results appear in both the browser inspector and your terminal.
To run tests in Node, just do npm test.
To do a basic client/server integration test against the production server, run
npm run client and navigate to http://localhost:8000/). The page
should not show any 'ERROR' messages and should end with 'success'.
Development
Server
server/config contains settings; defaults in defaults.json and environment variable mappings in custom-environment-variables.json.
To configure locally you can create a file config-dev.sh and source config-dev.sh when needed:
#!/bin/bash
export AWS_ACCESS_KEY_ID="{stuff}"
export AWS_SECRET_ACCESS_KEY="{secret stuff}"Run the server with file watching and autoreloading:
npm run start-devClient integration
To integrate Brave sync on a platform (iOS, Android, Laptop):
- Make a new branch.
- In the main browser process, implement an IPC message handler as specified
in
client/constants/messages.js. - If webviews on your platform do not support
chrome.ipcRenderer.{send, on}, editclient/polyfill/chrome.jsas needed to polyfill this functionality.
Building for browser-laptop
- Make sure this repo is checked out next to
browser-laptop/ - Checkout the
feature/syncingbranch in browser-laptop npm run dist- If developing, do
npm startin browser-laptop. Console messages from the sync client will be logged inLibrary/Application Support/brave-development/chrome-debug.log.
Tests
To run tests you need to configure these environment variables:
- AWS_REGION
- AWS_S3_BUCKET
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
8 years ago