SocketCluster / socketcluster-client

JavaScript client for SocketCluster

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Typescript support

gchokeen opened this issue · comments

Hi,

I am trying to use this library in the ionic 4 app and its based on typescript. Can you tell how to import the socket cluster inside angular 2 component?

What I tried
import {socketCluster} from 'socketcluster-client'

ERROR

Could not find a declaration file for module 'socketcluster-client'. '.../node_modules/socketcluster-client/index.js' implicitly has an 'any' type.
Try npm install @types/socketcluster-client if it exists or add a new declaration (.d.ts) file containing declare module 'socketcluster-client';

I started writing type definitions which include socketcluster-client; see SocketCluster/socketcluster#431

Thanks @DanielRose for https://www.npmjs.com/package/@types/socketcluster
I guess it's time to close the issue.

The types are broken again due to major version change to v15. @DanielRose is having a look DefinitelyTyped/DefinitelyTyped#41893

I have a feeling it's going to be a bit of a job and there was some discussion about it on Gitter. Are the Socketcluster main contributors also going to look at typescript and maybe help out?

I think right now it makes sense for developers to define the TS interfaces themselves in their projects but we can start thinking about updating DefinitelyTyped definitions.

One thing to be aware of is that the type names are currently prefixed with the letters AG. See https://socketcluster.io/docs/api/ - This was the prefix for the temporary SC fork 'Asyngular' where all the async/await improvements were developed.

I'm still unsure whether we should stick to that AG prefix or change it to back to SC; e.g. SCChannel and SCServerSocket?

Alternatively, we could stick to AG as a prefix and define it as standing for Asynchronous Generator because that's the core principle behind the new approach.

Got a PR: DefinitelyTyped/DefinitelyTyped#42068 Due to a lot of internal changes, and obsoleting of several packages, it was a bit more difficult than expected.

Typing an existing package is a big job. Thank you @DanielRose for the quick work!

@jondubois I think it would make sense to keep the AG prefix now that v15 is released and with all the internal changes it's a quick way to distinguish between major versions.

I would recommend considering it for v16. AG typically implies Angular is involved, conventionally speaking. Many angular plugins and libraries will prefix with "ag-".

IMO, if further discussion is warranted, though, it should be in its own issue.

I thought Angular was ng-; it was at some point ;p

Point. I think I'm misremembering.

@DanielRose Wow nice work :)