socketcluster-client icon indicating copy to clipboard operation
socketcluster-client copied to clipboard

Typescript support

Open gchokeen opened this issue 7 years ago • 11 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';

gchokeen avatar Jun 15 '18 12:06 gchokeen

I started writing type definitions which include socketcluster-client; see https://github.com/SocketCluster/socketcluster/issues/431

DanielRose avatar Aug 08 '18 07:08 DanielRose

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

makarov-roman avatar Apr 04 '19 08:04 makarov-roman

The types are broken again due to major version change to v15. @DanielRose is having a look https://github.com/DefinitelyTyped/DefinitelyTyped/issues/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?

Reobos avatar Feb 03 '20 01:02 Reobos

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.

jondubois avatar Feb 03 '20 17:02 jondubois

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

DanielRose avatar Feb 03 '20 17:02 DanielRose

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

Reobos avatar Feb 03 '20 22:02 Reobos

@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.

Reobos avatar Feb 03 '20 22:02 Reobos

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.

katanacrimson avatar Feb 04 '20 18:02 katanacrimson

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

jondubois avatar Feb 04 '20 18:02 jondubois

Point. I think I'm misremembering.

katanacrimson avatar Feb 04 '20 21:02 katanacrimson

@DanielRose Wow nice work :)

jondubois avatar Feb 07 '20 18:02 jondubois