# Relevance.io Angular SDK

This software development kit aims to provide a standard interface to connect to the Relevance.io
APIs in Angular applications.

## Getting started

### Requirements

These are the general requirements for using this package:

- Node 12 or higher is recommended
- npm 6.14 or higher is recommended
- Angular 9+

### Installation

To install from the public repositories, run:

    npm install @relevance/angular-core

Make sure the proper `@angular` dependencies are installed as well, as they are defined as
peer dependencies.

## Usage

This library is an Angular wrapper for the `@relevance/core` package and exposes the same
interfaces, with the addition of Angular dependency injection support.

To use this library, first load the module with want to use in an `NgModule`:

    import { QueryModule, QueryServiceConfig } from '@relevance/angular-core';

    @NgModule({
        imports: [
            QueryModule.forRoot({
                url: 'https://url/to/query/api',
            })
        ],
    })
    export class MyModule { }

Then use the DI mechanisms from Angular, e.g.:

    @Component({ ... })
    export class MyComponent {
        constructor(
            private queryService: QueryService,
        ) { }

        public doSomething() {
            this.queryService.search().then(() => { ... });
        }
    }

## Building and testing

To test a distribution, use:

    npm run test            # runs the tests
    npm run lint            # validates code syntax

Then build with:

    npm run build

### Development mode

This package provides an stream-lined way of locally installing dependencies, building and
linking for a development environment. The "development mode" basically installs the
dependencies and builds the package so that it can be used in cross-linked packages.

To use it, first install the dependencies in development mode:

    npm run install:dev

When building, use:

    npm run build:dev

This installs and builds the package as a *global package* that can be linked to other
dependent packages without first having to publish it.

## License

This code and its documentation is provided under the MIT License, bundled as the `LICENSE`
file. All original rights are reserved to Relevance.io 2020-.
