joplin/packages/lib
..
commands
components
debug
hooks
images
lib
locales
migrations
models
renderers
rnInjectedJs
services
testing
themes
utils
vendor
.gitignore
ArrayUtils.test.js
ArrayUtils.ts
AsyncActionQueue.ts
BaseApplication.ts
BaseModel.ts
BaseSyncTarget.ts
Cache.js
ClipperServer.ts
CssUtils.ts
DropboxApi.js
EventDispatcher.test.ts
EventDispatcher.ts
HtmlToMd.ts
InMemoryCache.test.ts
InMemoryCache.ts
JoplinDatabase.ts
JoplinError.ts
JoplinServerApi.ts
Logger.ts
ObjectUtils.ts
PoorManIntervals.ts
README.md
StringUtils.test.js
SyncTargetAmazonS3.js
SyncTargetDropbox.js
SyncTargetFilesystem.js
SyncTargetJoplinCloud.ts
SyncTargetJoplinServer.ts
SyncTargetMemory.js
SyncTargetNextcloud.js
SyncTargetNone.ts
SyncTargetOneDrive.ts
SyncTargetRegistry.ts
SyncTargetWebDAV.js
Synchronizer.ts
TaskQueue.test.js
TaskQueue.ts
WebDavApi.js
WelcomeUtils.js
array.ts
callbackUrlUtils.test.ts
callbackUrlUtils.ts
database-driver-better-sqlite.ts
database-driver-node.js
database.test.js
database.ts
dom.ts
dummy.test.ts
envFromArgs.js
errorUtils.ts
eventManager.test.js
eventManager.ts
file-api-driver-amazon-s3.js
file-api-driver-dropbox.js
file-api-driver-joplinServer.ts
file-api-driver-local.js
file-api-driver-memory.ts
file-api-driver-onedrive.js
file-api-driver-webdav.js
file-api-driver.test.ts
file-api.ts
folders-screen-utils.js
fs-driver-base.ts
fs-driver-dummy.js
fs-driver-node.ts
fsDriver.test.ts
geolocation-node.ts
htmlUtils.test.ts
htmlUtils.ts
htmlUtils2.test.ts
import-enex-html-gen.js
import-enex-html-gen.test.js
import-enex-md-gen.test.ts
import-enex-md-gen.ts
import-enex.ts
jest.config.js
jest.setup.js
locale.ts
markJsUtils.js
markdownUtils.test.ts
markdownUtils.ts
markdownUtils2.test.ts
markupLanguageUtils.ts
mime-utils-types.js
mime-utils.js
mimeUtils.test.js
net-utils.ts
ntp.ts
onedrive-api-node-utils.js
onedrive-api.ts
package.json
parameters.js
parseUri.js
path-utils.ts
pathUtils.test.js
pluginCategories.json
promise-utils.js
randomClipperPort.js
react-logger.js
reducer.test.js
reducer.ts
registry.test.ts
registry.ts
reserved-ids.js
resourceUtils.js
shim-init-node.js
shim.ts
string-utils-common.js
string-utils.js
theme.ts
time.ts
timeUtils.test.js
tsconfig.json
urlUtils.js
urlUtils.test.js
uuid.ts
versionInfo.ts
welcomeAssets.js

README.md

@joplin/lib

Library shared between all applications.

  • It should not have dependencies to any other @joplin package to avoid dependency cycles.
  • Binary packages should be passed via dependency injection from the parent packages, for example like it is done in shim-init-node. This is because each app might need to compile the binary package in a specific way, so doing it from /lib would cause issues.
  • It should not include the react or react-native packages because React in particular breaks when there's more than one instance of it in node_modules. React is passed via dependency injections so that some hooks can be shared.