mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-03-03 03:23:45 +08:00
💌 A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
This commit will correctly keep track of folder and label ids when creating them from N1. Previously, when we sent the request to create a folder or label to our api, we would immediately get back a serverId because it was created optimistically in the back end— given that K2 is strictly non-optimistic, we won’t have a serverId until some undetermined time in the future, and we need to somehow reference the object that /was/ optimistically created in N1 to update the ui when we do get the server id. Since we can deterministically generate ids for folders and labels, we "guess" what its going to be, and include it in the props of the syncback request returned to N1. This is the simplest solution to get thing working correctly right now, but we’ll need to revisit this in the future for other types of objects (drafts, contacts, events), and revisit how we will manage optimistic updates in N1 when we merge the 2 codebases with K2 (given that K2 was designed to be non-optimisitc). |
||
---|---|---|
packages | ||
.arcconfig | ||
.dockerignore | ||
.eslintrc | ||
.gitignore | ||
Dockerfile | ||
lerna.json | ||
package.json | ||
pm2-dev.yml | ||
pm2-prod-api.yml | ||
pm2-prod-workers.yml | ||
README.md | ||
test_accounts.txt |
K2 - Local Sync Engine & Cloud Services for Nylas N1
This is a collection of all sync and cloud components required to run N1.
- 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
- Isomorphic Core: Shared code across local client and cloud servers
- Local Sync: The local mailsync engine integreated in Nylas N1
See /packages
for the separate pieces. Each folder in /packages
is
designed to be its own stand-alone repositoriy. They are all bundled here
for the ease of source control management.
Initial Setup for All Local & Cloud Services:
New Computer (Mac):
- Install Homebrew
- Install NVM
brew install nvm
- Install Node 6 via NVM:
nvm install 6
- Install Redis locally
brew install redis
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.