Mailspring/packages/client-sync/README.md

28 lines
1.3 KiB
Markdown
Raw Normal View History

# Client Sync
This is the mail sync engine that runs within the Nylas Mail client
It is symlinked in as an `internal_package` of Nylas Mail via the `postinstall`
script of the root repo.
## Important Usage Notes:
Since this is symlinked in as an `internal_package` of Nylas Mail, there are a
handulf of considerations when developing in client-sync. Some common gotchas:
- You MAY use `NylasEnv`, `NylasExports` and other injected libraries in the
Nylas Mail client environment.
- You MAY use any 3rd party library declared in `client-app/package.json`.
Since this gets added as a plugin of the Nylas Mail client, you'll have
access to all libraries. This works because the `client-app/node_modules` was
added to the global require paths. That lets us access client-app plugins
without being a file directory decendent of client-app (client-sync is now a
sibling of client-app)
- You may NOT add "dependencies" to the `client-sync/package.json`. If you need
a 3rd party library, add it to the main `client-app/package.json`. All Nylas
Mail plugins (those inside of `internal_packages`), may no longer declare
their own dependencies.
- You should be aggressive at moving generic mail methods to `isomorphic-core`.
We may eventually want to make large chunks of client-sync work in a cloud
environment as well.