63 lines
1.1 KiB
Markdown
63 lines
1.1 KiB
Markdown
|
# Adapter Manager
|
||
|
|
||
|
A manager for retrieving custom "adapters" - can be used to abstract away from custom implementations
|
||
|
|
||
|
## Install
|
||
|
|
||
|
`npm install @tryghost/adapter-manager --save`
|
||
|
|
||
|
or
|
||
|
|
||
|
`yarn add @tryghost/adapter-manager`
|
||
|
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
```js
|
||
|
const AdapterManager = require('@tryghost/adapter-manager');
|
||
|
|
||
|
const adapterManager = new AdapterManager({
|
||
|
pathsToAdapters: [
|
||
|
'/path/to/custom/adapters',
|
||
|
'/path/to/default/adapters'
|
||
|
]
|
||
|
});
|
||
|
|
||
|
class MailAdapterBase {
|
||
|
someMethod() {}
|
||
|
}
|
||
|
|
||
|
adapterManager.register('mail', MailAdapterBase);
|
||
|
|
||
|
const mailAdapterInstance = adapterManager.getAdapter('mail', 'direct', mailConfig);
|
||
|
|
||
|
mailAdapterInstance.someMethod();
|
||
|
```
|
||
|
|
||
|
|
||
|
## Develop
|
||
|
|
||
|
This is a mono repository, managed with [lerna](https://lernajs.io/).
|
||
|
|
||
|
Follow the instructions for the top-level repo.
|
||
|
1. `git clone` this repo & `cd` into it as usual
|
||
|
2. Run `yarn` to install top-level dependencies.
|
||
|
|
||
|
|
||
|
## Run
|
||
|
|
||
|
- `yarn dev`
|
||
|
|
||
|
|
||
|
## Test
|
||
|
|
||
|
- `yarn lint` run just eslint
|
||
|
- `yarn test` run lint and tests
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
# Copyright & License
|
||
|
|
||
|
Copyright (c) 2020 Ghost Foundation - Released under the [MIT license](LICENSE).
|