open-index/open-npm huggingface dataset:
npm package: @sourceinteractive/gatsby-source-welcomekit
Description: Pull your data from Welcome to the jungle [Welcome Kit](https://www.welcomekit.co/) to access it with GraphQL within your Gatsby project.
Author: Stephen Richard
Latest version: 1.0.2

# gatsby-source-welcomekit

Pull data from Welcome to the jungle [Welcome Kit](https://www.welcomekit.co/) to access it with GraphQL within your Gatsby project.

*For now it only retrieves data from the un-authenticated [embed endpoint](http://developers.welcomekit.co/#embed).*

- [Install](#install)
- [How to use](#how-to-use)
- [Options](#options)
- [Example](#example)

## Install

```
npm i --save @sourceinteractive/gatsby-source-welcomekit
or
yarn add --dev @sourceinteractive/gatsby-source-welcomekit
```

## How to use

Note that `key` and `organization_reference` are required

*To avoid pushing keys to your repository, consider using env vars*

```javascript
// In your gatsby-config.js
module.exports = {
  plugins: [
    {
      resolve: 'gatsby-source-welcomekit',
      options: {
        access_token: `your_welcomekit_api_token`, // required
        organization_reference: `your_organization_reference`, // required
      },
    },
    ...
```

**To pull the data from Welcome Kit into GraphQL you need to restart your local Gatsby.**


## Options

```javascript
// In your gatsby-config.js
plugins: [
  {
    resolve: 'gatsby-source-welcomekit',
    options: {
      access_token: `your_welcomekit_api_token`,
      organization_reference: `your_organization_reference`,
    }
  }
]
```

## Example

- List all your organization jobs
```graphql
query {
  allJobOffer {
    totalCount
    edges {
      node {
        id
        name
        slug
        description
        reference
        office {
          id
          name
          city
          country {
            fr
            en
          }
        }
        contract_type {
          en
          fr
          es
        }
        profile
        recruitment_process
        salary {
          min
          max
          currency
          period
        }
      }
    }
  }
}
```

## Credits

Developed for [Source Paris](https://source.paris)
npm package: @sourceloop/cache
Description: A caching extension to cache methods.
Author: Sourcefuse
Latest version: 6.0.6

# caching-guard

A Caching component that provides helpers for caching in Loopback4 based microservices.

[![LoopBack](<https://github.com/loopbackio/loopback-next/raw/master/docs/site/imgs/branding/Powered-by-LoopBack-Badge-(blue)-@2x.png>)](http://loopback.io/)

## Installation

Install CachingComponent using `npm`;

```sh
$ [npm install | yarn add] @sourceloop/cache
```

## Basic Usage

Configure and load CachingComponent in the application constructor
as shown below.

```ts
import {CachingComponent} from '@sourceloop/cache';
// ...
export class MyApplication extends BootMixin(
  ServiceMixin(RepositoryMixin(RestApplication)),
) {
  constructor(options: ApplicationConfig = {}) {
    this.bind(CacheComponentBindings.CacheConfig).to({
      ttl: 1000,
      strategy: RedisStoreStrategy,
      datasourceName: 'redisCacheStore',
    });
    this.component(CachingComponent);
    // ...
  }
  // ...
}
```

### In a repository

To add caching to a repository, just add it as a mixin to the base class -

```ts
export class TestWithMixinRepository extends CacheMixin(
  DefaultCrudRepository<Test, number, {}>,
) {
  cacheIdentifier = 'testRepo';
  constructor(@inject('datasources.memorydb') dataSource: juggler.DataSource) {
    super(Test, dataSource);
  }
}
```

### In a controller or service

To add caching to a service or controller, just implement the `ICachedService` interface, adding a binding for the `ICacheService` and the applying the relevant decorators to the methods you want cached -

```ts
export class TestController implements ICachedService {
  constructor(
    @repository(TestWithoutCachingRepository)
    public testModelRepository: TestWithoutCachingRepository,
    @inject(CacheComponentBindings.CacheService)
    public cache: ICacheService,
  ) {}
  cacheIdentifier = 'testRepo';

  @cacheInvalidator()
  @post('/tests')
  @response(200, {
    description: 'Test model instance',
    content: {'application/json': {schema: getModelSchemaRef(Test)}},
  })
  async create(
    @requestBody({
      content: {
        'application/json': {
          schema: getModelSchemaRef(Test, {
            title: 'NewTest',
            exclude: ['id'],
          }),
        },
      },
    })
    testModel: Omit<Test, 'id'>,
  ): Promise<Test> {
    return this.testModelRepository.create(testModel);
  }
  // ...
  @cachedItem()
  @get('/tests/count')
  @response(200, {
    description: 'Test model count',
    content: {'application/json': {schema: CountSchema}},
  })
  async count(@param.where(Test) where?: Where<Test>): Promise<Count> {
    return this.testModelRepository.count(where);
  }
  /// ...
```