cytoscape.js
cytoscape.js copied to clipboard
TypeScript Definition for Cytoscape.js - It is being worked on now!
For any of you that use or are thinking of using TypeScript to strengthen your JS coding there is s TS definition file project in the works.
Fabian-Schmidt (not me) is working on it at: https://github.com/Fabian-Schmidt/DefinitelyTyped/tree/master/cytoscape
I use TypeScript so I'm excited to be able to use cytoscape.js with TypeScript.
Rick
I'm in the process of completing the work of Fabian-Schmidt.
I'll try to get everything upstream by the end of August, but the process of branching and merging is still new to me, so a delay is possible.
In the meantime, feel free to bug me for the latest version.
Regards, KB5000
If it helps:
In the discussion at: https://github.com/borisyankov/DefinitelyTyped/issues/4763 @maxkfranz offers a JSON spec of the API.
Between that and this project: https://github.com/horiuchi/dtsgenerator (TypeScript d.ts file generate from JSON Schema file)
Can you get the JSON spec to generate the d.ts definition file?
Would you mind it I made this a typed-typings? https://github.com/typed-typings The advantages are described here... https://github.com/typings/typings/issues/322
What is your typed-typings? A curated list of typed definitions?
Date: Thu, 23 Jun 2016 11:18:21 -0700 From: [email protected] To: [email protected] CC: [email protected]; [email protected] Subject: Re: [cytoscape/cytoscape.js] TypeScript Definition for Cytoscape.js - It is being worked on now! (#1012)
Would you mind it I made this a typed-typings?
https://github.com/typed-typings
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.
Whatever way Typescript definitions are published, it would be great if it could be automated on the Cytoscape.js side so that they're automatically kept up to date.
The docmaker.js
file generates the HTML version of the docs from docmaker.json
. It would be great if a tsdefmaker.js
file could be made to output a .d.ts
file. That way, everything could be automated with each release.
I'm not an expert an TS or TS defs, so it would be great if someone wanted to make a PR to do this.
Thanks
Typed-Typings is similar to DefinitelyTyped except rather than having all the typing definition files in a single git repository they can be placed in a number of places. This also allows for a registry for different versions of the typings.
okay, great. Sure, do what you got to do regarding cytoscape.js
Date: Fri, 24 Jun 2016 10:51:49 -0700 From: [email protected] To: [email protected] CC: [email protected]; [email protected] Subject: Re: [cytoscape/cytoscape.js] TypeScript Definition for Cytoscape.js - It is being worked on now! (#1012)
Typed-Typings is similar to DefinitelyTyped except rather than having all the typing definition files in a single git repository they can be placed in a number of places.
This also allows for a registry for different versions of the typings.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.
Okay sounds great but I have nothing to do with the cytoscape.js project! I have just expressed a desire to have TS defs for it. Rick
Date: Fri, 24 Jun 2016 08:10:20 -0700 From: [email protected] To: [email protected] CC: [email protected]; [email protected] Subject: Re: [cytoscape/cytoscape.js] TypeScript Definition for Cytoscape.js - It is being worked on now! (#1012)
Whatever way Typescript definitions are published, it would be great if it could be automated on the Cytoscape.js side so that they're automatically kept up to date.
The docmaker.js file generates the HTML version of the docs from docmaker.json. It would be great if docmaker.js could be refashioned into a tsdefmaker.js file to output a .d.ts file. That way, everything could be automated with each release.
I'm not an expert an TS or TS defs, so it would be great if someone wanted to make a PR to do this.
Thanks
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.
@phreed Are you still going to publish the typings?
fyi I'm successfully using them in my project, so far so good. Also I've made some significant improvements to them in the Styles/CSS part.
Pretty soon. I do not need them quite yet for my project.
@phreed Would you mind to share me your typed-typings? I am using cytoscape in an angular2 based projects.
Thanks
Is there some news about cytoscape typing?
I am continuing to work on them.
You can use them in there current state from my github project.
I add the following to my package.json
file
"devDependencies": {
...
"@types/cytoscape": "github:phreed/ts-typings#cytoscape",
...
}
and then
npm install @types/cytoscape
or
npm install --save-dev github:phreed/ts-typings#cytoscape
@phreed very thanks for it!
Why not PR your work-in-progress to the Typescript Definitions repository DefinitelyTyped so others can help you polish it up?
After https://github.com/cytoscape/cytoscape.js/issues/1012#issuecomment-228372289, why not do PR to this repo and publish them with npm? That would be even better than DefinitelyTyped
Unless the process of creating ts defs can be completely automated through the existing docs build, then they won't be maintained in the official repo.
It would be great if someone would create a community npm package. Maybe @phreed would like to publish https://github.com/phreed/ts-typings/tree/cytoscape to npm, or maybe someone could create a new Github repo based on @phreed's work that could centralise community ts defs for Cytoscape.
The .d.ts file would have to get updated on interface changes. The alternative would be to actually use TypeScript in this library, which would provide a variety of benefits (type safety => less bugs). In that case .d.ts files would get generated automatically.
The official distribution channel for community typings is through DefinitelyTyped (which gets published to @types
on npm).
@phreed's defs are for Typed-Typings rather than DefinitelyTyped.
I don't think it's likely that Cytoscape will be rewritten in TS. If the community wants to maintain a separate defs package to support TS users, that's great and we'd be glad to link to it!
Afaik there are no typings yet for version 3.0.0? :(
My plan in May is to update to @types and v3. Alternatively I am considering a Typescript wrapper.
On Thu, Apr 27, 2017, 04:04 Tom Muylle [email protected] wrote:
Afaik there are no typings yet for version 3.0.0? :(
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/cytoscape/cytoscape.js/issues/1012#issuecomment-297657057, or mute the thread https://github.com/notifications/unsubscribe-auth/AAM6vB0CbRCGo0KSF0D6n3camv2qAMhPks5r0FougaJpZM4FZKD3 .
@phreed how's it going? Any update?
This is where things are now https://github.com/phreed/ts-typings/tree/cytoscape I am working through the v3 api and should have something in @types within the next couple of days.
I have a draft version for the v3 api. https://github.com/phreed/ts-typings/tree/cytoscape3
I believe what you mention was a change from v2.x to v3.x I have been working on the typings for v3.x here... https://github.com/phreed/ts-typings/blob/cytoscape3/index.d.ts
I have completed a pass through the latest documentation... http://js.cytoscape.org/ ...but there are probably (certainly) errors. I am working though the tests based on the examples in that document now and would welcome any help. My plan is to release this work as part of DefinitelyTyped... https://github.com/phreed/DefinitelyTyped
Thanks
On Wed, May 17, 2017 at 11:15 AM WaynePlummer [email protected] wrote:
Should this:
interface Stylesheet { selector: string; css: Css.Node | Css.Edge; }
actually read:
interface Stylesheet { selector: string; style: Css.Node | Css.Edge; }
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/cytoscape/cytoscape.js/issues/1012#issuecomment-302141723, or mute the thread https://github.com/notifications/unsubscribe-auth/AAM6vASI5uXqxd9UEy1I8ay2VImpxUanks5r6x0ugaJpZM4FZKD3 .
Should this:
interface Stylesheet { selector: string; css: Css.Node | Css.Edge; }
actually read:
interface Stylesheet { selector: string; style: Css.Node | Css.Edge; }
Either works in 2.x or 3.2, but style
is preferred and css
is now undocumented/deprecated.
Yes, I deleted my original post once I realised that this must be what was going on... but thanks, @phreed and @maxkfranz both for confirming :)
I've been looking into automation a bit more and it seems both TS and Flow have some options that might work to more directly integrate type definitions into Cytoscape:
- Flow
- TS
I would lean towards using Flow, because it supports using JSDoc comments to generate the type definition files. It looks like JSDoc (now v3) is much better than it was when this lib was started, so maybe we could use it to generate the docs page as well.
TypeScript is way more popular than Flow. Just look at questions asked on StackOverflow:
Flow definitions won't help TypeScript users of course, and TypeScript definitions don't help Flow users. At least in this thread, people asked for TypeScript definitions, not for Flow definitions ;)
TS may be more popular than Flow, but JS is more popular than TS by a wide margin. Flow can be used without making semantic changes to the source, whereas it seems TS must make semantic changes to the source. This lib will not use TS or Flow to directly generate definition files unless the source is still just plain JS. It's important that anyone who knows JS can pick up the source in any editor, modify it easily, and run/test it natively on Node without any compilation step. 3.2/unstable uses Babel/ESNext for compatibility with old browsers, for example, but the source can be run directly in Node 6+.
This looks to be possible in Flow, but I don't see any official support notes in the TS docs or the TS issue tracker. If the goal of this ticket is to have productive autocomplete/intellisense in your tooling, it shouldn't matter whether it uses Flow or TS: Your editor can use plugins for both.
I don't have any inherent preference for either tool, but I think if the lib ever supports typings in the source it would have to use JSDoc comments. It's ubiquitous and non-intrusive. Ideally we could support both Flow and TS output via JSDoc comments.
If TS supports JSDoc, then that's great. But I'd like to see docs for it; I didn't find any. If TS doesn't support JSDoc, I think it would be worthwhile for you guys to advocate for it in the TS issue tracker. I think that's the only way there'd be direct support for TS in this lib.