Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/advanced-rest-client/anypoint
A package for ARC with libraries to work with Anypoint Platform
https://github.com/advanced-rest-client/anypoint
Last synced: about 1 month ago
JSON representation
A package for ARC with libraries to work with Anypoint Platform
- Host: GitHub
- URL: https://github.com/advanced-rest-client/anypoint
- Owner: advanced-rest-client
- License: other
- Created: 2021-10-26T08:29:25.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2021-11-02T15:32:39.000Z (about 3 years ago)
- Last Synced: 2024-04-26T11:21:38.984Z (8 months ago)
- Language: JavaScript
- Size: 164 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Anypoint for ARC
An element that renders an UI to search Anypoint Exchange for available assets.
## Usage
### Installation
```sh
npm install --save @advanced-rest-client/anypoint
```### In an html file
```html
import '@advanced-rest-client/anypoint/define/exchange-search.js';
```
### In a LitElement template
```js
import { LitElement, html } from 'lit-element';
import '@advanced-rest-client/anypoint/define/exchange-search.js';class SampleElement extends LitElement {
render() {
return html`
`;
}_assetHandler(e) {
console.log(e.detail);
}
}
customElements.define('sample-element', SampleElement);
```### Authorization
The element uses `@anypoint-web-components/anypoint-signin` to sing a user in.
Set `anypointAuth`, `exchangeRedirectUri`, and `exchangeClientId` attributes to enable the authorization button.```html
```
Note, that currently the Anypoint authorization server only support "code" oauth flow. This means you have to handle code response and exchange the code for access token. To do so, handle the `anypointcodeexchange` event dispatched by the `anypoint-signin` element.
```javascript
/**
* @param {AnypointCodeExchangeEvent} e
*/
_handleTokenExchange(e) {
const { code } = e;
e.detail.result = this.exchangeCode(code);
}/**
* @param {string} code
* @returns {Promise}
*/
async exchangeCode(code) {
const init = {
method: 'POST',
body: code,
};
const response = await fetch('YOUR SERVER URL', init);
const info = await response.json();
return {
accessToken: info.accessToken,
expiresAt: Date.now() + info.expiresIn,
expiresIn: info.expiresIn,
expiresAssumed: false,
state: '0', // this is required by the types definition but can be anything. State is checked before this function is called
};
}));
}
```## Development
```sh
git clone https://github.com/advanced-rest-client/anypoint
cd anypoint
npm install
```### Running the demo locally
```sh
npm start
```### Running the tests
```sh
npm test
```