설치
bash
npm install @moai/cloud-sdk
# 또는
pnpm add @moai/cloud-sdk
yarn add @moai/cloud-sdk7개 모듈
단일 클라이언트에서 6개 모듈에 접근합니다. 사용하지 않는 모듈은 트리쉐이킹으로 번들에서 제거됩니다.
typescript
import { MoaiCloud } from '@moai/cloud-sdk';
const client = new MoaiCloud({ apiKey: process.env.MOAI_API_KEY! });
client.lingua; // 30개 언어 단어/퀴즈
client.notify; // 푸시 알림
client.admesh; // 광고 서빙
client.anon; // 익명 보드
client.oracle; // SBTI/만세력
client.chat; // WebSocket 채팅빠른 시작 예제
example.ts
import { MoaiCloud } from '@moai/cloud-sdk';
const moai = new MoaiCloud({
apiKey: process.env.MOAI_API_KEY!,
// baseUrl: 'https://api.moai.page/v1', // 기본값
// timeoutMs: 10000,
});
// 1) 단어 조회
const word = await moai.lingua.getWord('apple');
// 2) 채팅방 생성
const { room } = await moai.chat.createRoom({
type: 'group',
name: 'Study Group',
creatorExternalUserId: 'u_12345',
memberExternalUserIds: ['u_12345'],
});
// 3) 푸시 발송
await moai.notify.send({
userId: 'u_12345',
title: '학습 시간',
body: '오늘의 단어를 풀어보세요.',
});TypeScript
모든 응답은 strict 타입으로 제공됩니다. Word, QuizItem, Leaderboard 등의 타입을 직접 import할 수 있습니다.
typescript
import type { Word, QuizItem } from '@moai/cloud-sdk';
function render(word: Word) {
return word.langData.ko?.word ?? word.conceptKey;
}지원 런타임
- Node.js 18+ (fetch 내장)
- Deno 1.30+ / Bun 1.0+
- Vercel Edge / Cloudflare Workers
- React Native 0.72+ (Hermes)
- 브라우저 — 권장하지 않음 (API Key 노출 위험, 자체 백엔드 프록시 필수)