Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nailyjs/nest-apple-app-store

🍎 Apple App Store Node.js Server SDK for Nest.js Nest.jsη‰ˆθ‹Ήζžœ App Store Node.js服劑端SDK
https://github.com/nailyjs/nest-apple-app-store

app-store app-store-server-api apple nest nest-module nestjs nestjs-backend nestjs-module

Last synced: about 1 month ago
JSON representation

🍎 Apple App Store Node.js Server SDK for Nest.js Nest.jsη‰ˆθ‹Ήζžœ App Store Node.js服劑端SDK

Awesome Lists containing this project

README

        

# Apple App Store Server SDK for Nest.js 🍎

[δΈ­ζ–‡](./README_CN.md) | English

## Introduction πŸ“–

This is a Nest.js SDK for Apple App Store Server API. It is based on [apple-app-store-api](https://github.com/apple/app-store-server-library-node).

It is a Nest.js module that can be easily integrated into Nest.js projects.

## Install πŸ“¦

`npm`、`yarn`、`pnpm` are all supported. Recommend `pnpm`.

```bash
pnpm add @nailyjs.nest.modules/app-store @apple/app-store-server-library
```

## Usage πŸ“š

### Basic Usage πŸ’Ό

```typescript
import { Module } from "@nestjs/common";
import { AppleAppStoreModule } from "@nailyjs.nest.modules/app-store";

@Module({
imports: [
AppleAppStoreModule.register({
// If true, the module can be used across all modules.
global: true,
clients: {
provide: APP_STORE_SERVER_API_CLIENT,
signingKey: "",
issuerId: "",
bundleId: "",
keyId: "",
environment: Environment.SANDBOX,
},
}),
],
})
export class AppModule {}
```

In your service, you can directly inject the `AppStoreServerAPIClient` instance.

```typescript
import { Injectable } from "@nestjs/common";
import { AppStoreServerAPIClient } from "@apple/app-store-server-library";

@Injectable()
export class AppStoreService {
constructor(private readonly appStoreServerAPIClient: AppStoreServerAPIClient) {}

// ...
}
```

> `AppStoreServerAPIClient` is imported from official package `@apple/app-store-server-library`.

### Async Usage πŸš€

```typescript
import { Module } from "@nestjs/common";
import { AppleAppStoreModule } from "@nailyjs.nest.modules/app-store";
import { Environment } from "@apple/app-store-server-library";

@Module({
imports: [
AppleAppStoreModule.registerAsync({
// If true, the module can be used across all modules.
global: true,
clients: {
inject: [],
useFactory: () => {
return {
signingKey: "",
issuerId: "",
bundleId: "",
keyId: "",
environment: Environment.SANDBOX,
};
},
},
}),
],
})
export class AppModule {}
```

### Multiple Clients πŸ”—

Also can use multiple async clients. The following example shows how to use multiple general clients.

```typescript
import { Module } from "@nestjs/common";
import { AppleAppStoreModule } from "@nailyjs.nest.modules/app-store";
import { Environment } from "@apple/app-store-server-library";

export const APP_STORE_SERVER_API_CLIENT_ONE = Symbol("APP_STORE_SERVER_API_CLIENT_ONE");
export const APP_STORE_SERVER_API_CLIENT_TWO = Symbol("APP_STORE_SERVER_API_CLIENT_TWO");

@Module({
imports: [
AppleAppStoreModule.register({
// If true, the module can be used across all modules.
global: true,
clients: [
{
provide: APP_STORE_SERVER_API_CLIENT_ONE,
signingKey: "",
issuerId: "",
bundleId: "",
keyId: "",
environment: Environment.SANDBOX,
},
{
provide: APP_STORE_SERVER_API_CLIENT_TWO,
signingKey: "",
issuerId: "",
bundleId: "",
keyId: "",
environment: Environment.PRODUCTION,
},
],
}),
],
})
export class AppModule {}
```

In your service, you can inject the exported `APP_STORE_SERVER_API_CLIENT_ONE` or `APP_STORE_SERVER_API_CLIENT_TWO` symbol.

```typescript
import { Injectable } from "@nestjs/common";
import { AppStoreServerAPIClient } from "@apple/app-store-server-library";
import { APP_STORE_SERVER_API_CLIENT_ONE } from "./app.module";

@Injectable()
export class AppStoreService {
constructor(
@Inject(APP_STORE_SERVER_API_CLIENT_ONE)
private readonly appStoreServerAPIClientOne: AppStoreServerAPIClient,
@Inject(APP_STORE_SERVER_API_CLIENT_TWO)
private readonly appStoreServerAPIClientTwo: AppStoreServerAPIClient,
) {}

// ...
}
```

## Author πŸ‘¨β€πŸ’»

### Zero

- [GitHub](https://github.com/groupguanfang)
- [QQ](1203970284)

## Donate β˜•οΈ

If you find this project useful, you can buy author a glass of coffee πŸ₯°

![wechat](./screenshots/wechat.jpg)
![alipay](./screenshots/alipay.jpg)