open-chat-js
TypeScript icon, indicating that this package has built-in type declarations

8.22.0 • Public • Published

runme: id: 01HSJ477SPSG4K6KD38XF1VATZ version: v3

NPM

npm install open-chat-js

Yarn

yarn add open-chat-js

JS deliver

<script src="https://cdn.jsdelivr.net/npm/open-chat-js"></script>

✨ Getting started

The StreamChat client is setup to allow extension of the base types through use of generics when instantiated. The default instantiation has all generics set to Record<string, unknown>.

import { StreamChat } from 'open-chat-js';
// Or if you are on commonjs
const StreamChat = require('open-chat-js').StreamChat;

const client = StreamChat.getInstance('YOUR_API_KEY', 'API_KEY_SECRET');

const channel = client.channel('messaging', 'TestChannel');
await channel.create();

Or you can customize the generics:

type ChatChannel = { image: string; category?: string };
type ChatUser1 = { nickname: string; age: number; admin?: boolean };
type ChatUser2 = { nickname: string; avatar?: string };
type UserMessage = { country?: string };
type AdminMessage = { priorityLevel: number };
type ChatAttachment = { originalURL?: string };
type CustomReaction = { size?: number };
type ChatEvent = { quitChannel?: boolean };
type CustomCommands = 'giphy';

type StreamType = {
  attachmentType: ChatAttachment;
  channelType: ChatChannel;
  commandType: CustomCommands;
  eventType: ChatEvent;
  messageType: UserMessage | AdminMessage;
  reactionType: CustomReaction;
  userType: ChatUser1 | ChatUser2;
};

const client = StreamChat.getInstance<StreamType>('YOUR_API_KEY', 'API_KEY_SECRET');

// Create channel
const channel = client.channel('messaging', 'TestChannel');
await channel.create();

// Create user
await client.upsertUser({
  id: 'vishal-1',
  name: 'Vishal',
});

// Send message
const { message } = await channel.sendMessage({ text: `Test message` });

// Send reaction
await channel.sendReaction(message.id, { type: 'love', user: { id: 'vishal-1' } });

Custom types provided when initializing the client will carry through to all client returns and provide intellisense to queries.

🔗 (Optional) Development Setup in Combination with our SDKs

Run in the root of this repo

yarn link

Run in the root of one of the example apps (SampleApp/TypeScriptMessaging) in the open-chat-js-react-native repo

yarn link open-chat-js
yarn start

Open metro.config.js file and set value for watchFolders as

module.exports = {
  ...
  watchFolders: [projectRoot].concat(alternateRoots).concat(['{{CHANGE_TO_THE_PATH_TO_YOUR_PROJECT}}/open-chat-js-js'])
};

Make sure to replace {{CHANGE_TO_THE_PATH_TO_YOUR_PROJECT}} with the correct path for open-chat-js-js folder as per your directory structure Run in the root of this repo

yarn start

Package Sidebar

Install

npm i open-chat-js

Homepage

openchat.vn

Weekly Downloads

4

Version

8.22.0

License

SEE LICENSE IN LICENSE

Unpacked Size

5.55 MB

Total Files

70

Last publish

Collaborators

  • hoangbim