mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-09-08 05:34:23 +08:00
💌 A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
Summary: Currently, when we auth an account for the first time in Nylas Mail (or we blow away the database), the app is going to request transactions since cursor `null` from the /delta/streaming endpoint and from the local-sync delta observable, instead of requesting transactions since cursor `0` This is due to a subtle bug with the use of default values when destructuring an object. Our coded did the following: ``` const {cursor = 0} = this._state ``` Which at a glance seems correct. However, this will only work as expected if `this._state` has the following shape: ``` {cursor: undefined} ``` And unfortunately, our `this._state` looked like this when authing an account for the first time: ``` {cursor: null} ``` Which would make `cursor === null` instead of `0`. This is because when using default values, null is considered an intentional argument/value, as opposed to not passing any argument/value (which will mean that the argument is undefined). This was a regression introduced in d60a23c and 8bc2ec5 Test Plan: manual, will add regression test in upcoming diff Reviewers: evan, spang, halla Reviewed By: halla Differential Revision: https://phab.nylas.com/D4243 |
||
---|---|---|
.ebextensions | ||
arclib | ||
packages | ||
scripts | ||
.arcconfig | ||
.arclint | ||
.babelrc | ||
.coffeelint.json | ||
.dockerignore | ||
.ebignore | ||
.eslintrc | ||
.gitignore | ||
.travis.yml | ||
appveyor.yml | ||
deploy-it | ||
Dockerfile | ||
lerna.json | ||
package.json | ||
README.md |
Nylas Mail
This is a collection of all components required to run Nylas Mail.
- Isomorphic Core: Shared code across local client and cloud servers
- Client App: The main Electron app for Nylas Mail mirrored to open source repo.
- Client Sync: The local mailsync engine integreated in Nylas Mail
- Client Private Plugins: Private Nylas Mail plugins (like SFDC)
- Cloud API: The cloud-based auth and metadata APIs for N1
- Cloud Core: Shared code used in all remote cloud services
- Cloud Workers: Cloud workers for services like send later
See /packages
for the separate pieces. Each folder in /packages
is
designed to be its own stand-alone repository. They are all bundled here
for the ease of source control management.
Initial Setup for All Local & Cloud Services:
New Computer (Mac):
New Computer (Linux - Debian/Ubuntu):
- Install Node 6+ via NodeSource (trusted):
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
- Install Redis locally
sudo apt-get install -y redis-server redis-tools
benefit of letting us use subdomains.
Running Nylas Mail
npm install
(Only on fresh install and new packages)npm run start-client
: Starts Electron app clientnpm run start-cloud
: Starts cloud API locally