mixi2-js 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,12 +6,15 @@
6
6
  [![Node.js](https://img.shields.io/node/v/mixi2-js?color=339933&logo=nodedotjs&logoColor=white)](package.json)
7
7
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
8
8
  [![Build](https://img.shields.io/github/actions/workflow/status/otoneko1102/mixi2-js/publish.yml?label=build&logo=github)](https://github.com/otoneko1102/mixi2-js/actions)
9
+ [![ESLint](https://img.shields.io/badge/ESLint-enabled-4B32C3?logo=eslint&logoColor=white)](eslint.config.js)
10
+ [![Prettier](https://img.shields.io/badge/Prettier-enabled-F7B93E?logo=prettier&logoColor=white)](https://prettier.io/)
9
11
 
10
12
  mixi2 の [Application API](https://developer.mixi.social/docs) を利用するための **非公式** TypeScript/JavaScript SDK です。
11
13
 
12
14
  [公式 Go SDK](https://github.com/mixigroup/mixi2-application-sdk-go) および [公式 API 仕様](https://github.com/mixigroup/mixi2-api) に基づいて作成されています。
13
15
 
14
- > **Note:** これは MIXI 社公式のプロダクトではありません。コミュニティメンバーによるオープンソースプロジェクトです。
16
+ > [!Note]
17
+ > **これは MIXI 社公式のプロダクトではありません。コミュニティメンバーによるオープンソースプロジェクトです。**
15
18
 
16
19
  ---
17
20
 
@@ -75,7 +78,10 @@ ESM・CommonJS の両方に対応しています。TypeScript の型定義 (`.d.
75
78
  ### 認証
76
79
 
77
80
  ```typescript
81
+ // ESM
78
82
  import { OAuth2Authenticator } from 'mixi2-js';
83
+ // CJS
84
+ const { OAuth2Authenticator } = require('mixi2-js');
79
85
 
80
86
  const authenticator = new OAuth2Authenticator({
81
87
  clientId: process.env.CLIENT_ID!,
@@ -90,7 +96,10 @@ const token = await authenticator.getAccessToken();
90
96
  ### API クライアント
91
97
 
92
98
  ```typescript
99
+ // ESM
93
100
  import { OAuth2Authenticator, Client, MediaUploadType, LanguageCode } from 'mixi2-js';
101
+ // CJS
102
+ const { OAuth2Authenticator, Client, MediaUploadType, LanguageCode } = require('mixi2-js');
94
103
 
95
104
  const authenticator = new OAuth2Authenticator({
96
105
  clientId: process.env.CLIENT_ID!,
@@ -142,8 +151,11 @@ client.close();
142
151
  ### Webhook サーバー
143
152
 
144
153
  ```typescript
154
+ // ESM
145
155
  import { WebhookServer, EventType } from 'mixi2-js';
146
156
  import type { EventHandler, Event } from 'mixi2-js';
157
+ // CJS
158
+ const { WebhookServer, EventType } = require('mixi2-js');
147
159
 
148
160
  const handler: EventHandler = {
149
161
  handle: async (event: Event) => {
@@ -193,8 +205,11 @@ export default server.httpServer;
193
205
  ローカル開発やプロトタイピングに推奨される方式です。外部公開 URL が不要です。
194
206
 
195
207
  ```typescript
208
+ // ESM
196
209
  import { OAuth2Authenticator, StreamWatcher, EventType } from 'mixi2-js';
197
210
  import type { EventHandler, Event } from 'mixi2-js';
211
+ // CJS
212
+ const { OAuth2Authenticator, StreamWatcher, EventType } = require('mixi2-js');
198
213
 
199
214
  const authenticator = new OAuth2Authenticator({
200
215
  clientId: process.env.CLIENT_ID!,
package/dist/index.cjs CHANGED
@@ -471,28 +471,23 @@ var Client = class {
471
471
  return metadata;
472
472
  }
473
473
  call(method, request) {
474
- return new Promise(async (resolve, reject) => {
475
- let metadata;
476
- try {
477
- metadata = await this.getMetadata();
478
- } catch (err) {
479
- reject(err);
480
- return;
481
- }
482
- const fn = this.grpcClient[method];
483
- if (!fn) {
484
- reject(new Error(`Method "${method}" not found on gRPC client`));
485
- return;
486
- }
487
- fn.call(
488
- this.grpcClient,
489
- request,
490
- metadata,
491
- (err, response) => {
492
- if (err) reject(err);
493
- else resolve(response);
474
+ return this.getMetadata().then((metadata) => {
475
+ return new Promise((resolve, reject) => {
476
+ const fn = this.grpcClient[method];
477
+ if (!fn) {
478
+ reject(new Error(`Method "${method}" not found on gRPC client`));
479
+ return;
494
480
  }
495
- );
481
+ fn.call(
482
+ this.grpcClient,
483
+ request,
484
+ metadata,
485
+ (err, response) => {
486
+ if (err) reject(err);
487
+ else resolve(response);
488
+ }
489
+ );
490
+ });
496
491
  });
497
492
  }
498
493
  async getUsers(userIdList) {
@@ -759,7 +754,7 @@ var StreamWatcher = class {
759
754
  this.handleEvent(handler, event);
760
755
  }
761
756
  });
762
- s.on("error", async (err) => {
757
+ s.on("error", async () => {
763
758
  if (this.aborted) {
764
759
  resolve();
765
760
  return;
package/dist/index.js CHANGED
@@ -414,28 +414,23 @@ var Client = class {
414
414
  return metadata;
415
415
  }
416
416
  call(method, request) {
417
- return new Promise(async (resolve, reject) => {
418
- let metadata;
419
- try {
420
- metadata = await this.getMetadata();
421
- } catch (err) {
422
- reject(err);
423
- return;
424
- }
425
- const fn = this.grpcClient[method];
426
- if (!fn) {
427
- reject(new Error(`Method "${method}" not found on gRPC client`));
428
- return;
429
- }
430
- fn.call(
431
- this.grpcClient,
432
- request,
433
- metadata,
434
- (err, response) => {
435
- if (err) reject(err);
436
- else resolve(response);
417
+ return this.getMetadata().then((metadata) => {
418
+ return new Promise((resolve, reject) => {
419
+ const fn = this.grpcClient[method];
420
+ if (!fn) {
421
+ reject(new Error(`Method "${method}" not found on gRPC client`));
422
+ return;
437
423
  }
438
- );
424
+ fn.call(
425
+ this.grpcClient,
426
+ request,
427
+ metadata,
428
+ (err, response) => {
429
+ if (err) reject(err);
430
+ else resolve(response);
431
+ }
432
+ );
433
+ });
439
434
  });
440
435
  }
441
436
  async getUsers(userIdList) {
@@ -702,7 +697,7 @@ var StreamWatcher = class {
702
697
  this.handleEvent(handler, event);
703
698
  }
704
699
  });
705
- s.on("error", async (err) => {
700
+ s.on("error", async () => {
706
701
  if (this.aborted) {
707
702
  resolve();
708
703
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mixi2-js",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "TypeScript/JavaScript SDK for mixi2 Application API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -26,6 +26,8 @@
26
26
  "setup": "npm install && node scripts/setup.js",
27
27
  "test": "jest",
28
28
  "check": "tsc --noEmit",
29
+ "lint": "eslint ./src/",
30
+ "lint:fix": "eslint ./src/ --fix",
29
31
  "build": "tsup",
30
32
  "format": "prettier --write ./src/",
31
33
  "format:check": "prettier --check ./src/"
@@ -37,6 +39,7 @@
37
39
  "keywords": [
38
40
  "mixi2",
39
41
  "mixi",
42
+ "mixi.social",
40
43
  "sdk",
41
44
  "api",
42
45
  "grpc",
@@ -49,18 +52,22 @@
49
52
  "url": "https://github.com/otoneko1102/mixi2-js/issues"
50
53
  },
51
54
  "homepage": "https://github.com/otoneko1102/mixi2-js#readme",
55
+ "dependencies": {
56
+ "@grpc/grpc-js": "^1.14.3",
57
+ "@grpc/proto-loader": "^0.8.0"
58
+ },
52
59
  "devDependencies": {
60
+ "@eslint/js": "^10.0.1",
53
61
  "@types/jest": "^30.0.0",
54
62
  "@types/node": "^25.3.5",
63
+ "eslint": "^10.0.2",
64
+ "eslint-config-prettier": "^10.1.8",
55
65
  "jest": "^30.2.0",
56
66
  "prettier": "^3.8.1",
57
67
  "ts-jest": "^29.4.6",
58
68
  "tsup": "^8.5.1",
59
- "typescript": "^5.9.3"
60
- },
61
- "dependencies": {
62
- "@grpc/grpc-js": "^1.14.3",
63
- "@grpc/proto-loader": "^0.8.0"
69
+ "typescript": "^5.9.3",
70
+ "typescript-eslint": "^8.56.1"
64
71
  },
65
72
  "engines": {
66
73
  "node": ">=18.0.0"