Hello, thanks for your answers, we can work together on that for sure !

As Thomas mentioned, the main differences will be types built-in the
library which may be a bit different from what is available in the
DefinitelyTyped library and the build steps.

About the types, this should be an overall improvement for users since
right now the exports are very much "java-like", which doesn't always work
great with Typescript modules.
About the build and web, using the correct compilation options (see
https://www.typescriptlang.org/tsconfig#module) should allow both nodejs
and web users to use the library. If gremlint is already doing this we can
for sure use it, which would save some time.

On Thu, Jan 5, 2023 at 2:52 PM Thomas Kolanko <[email protected]> wrote:

> This is a great idea and I would be interested in testing things
> out/helping as I can.
>
>
> > 1. would existing javascript users of the library experience any sort of
> break in their code as a result of this change?
>
> Some types for gremlin are available from DefinitelyTyped
>
> https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/gremlin
> which can be installed via `npm install -D @types/gremlin. Build time or
> lint errors may occur for existing users depending on how different the
> types are between what is available today vs what would be bundled with the
> package
>
> > 3. on multiple occasions there have been people who have tried to make
> gremlin-javascript work in the browser - they never fully followed through
> but i imagine someone will wish to see that through. would a move to
> typescript preclude that from happening in any way?
>
> The build process would need to compile and publish the Javascript files to
> be consumed by node or the browser. Gremlint (
> https://github.com/apache/tinkerpop/tree/master/gremlint) is built in
> typescript, I'm sure most of the project setup/release scripts could be
> copied over from there
>
>
> On Thu, Jan 5, 2023 at 6:15 AM Stephen Mallette <[email protected]>
> wrote:
>
> > thanks for offering to work on this. the only parts auto-generated now
> are
> > tests which produce this file:
> >
> >
> >
> https://github.com/apache/tinkerpop/blob/master/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js
> >
> > the script that does that is:
> >
> >
> >
> https://github.com/apache/tinkerpop/blob/master/gremlin-javascript/build/generate.groovy
> >
> > I have a few questions as I'm not familiar with typescript that much:
> >
> > 1. would existing javascript users of the library experience any sort of
> > break in their code as a result of this change?
> > 2. our entire project,even non-JVM based ones build by way of Maven. You
> > can see where we do that here[1]. The commands embedded in that XML file
> I
> > assume look familiar to you. can you say what would change in our build
> as
> > a result of going to typescript?
> > 3. on multiple occasions there have been people who have tried to make
> > gremlin-javascript work in the browser - they never fully followed
> through
> > but i imagine someone will wish to see that through. would a move to
> > typescript preclude that from happening in any way?
> >
> >
> >
> >
> >
> >
> > [1]
> >
> >
> https://github.com/apache/tinkerpop/blob/master/gremlin-javascript/pom.xml#L139-L188
> >
> >
> >
> > On Tue, Jan 3, 2023 at 6:34 PM Simon Gaufreteau <
> > [email protected]>
> > wrote:
> >
> > > Hello everyone,
> > >
> > > I've been using gremlin for a few months in Typescript and I would like
> > to
> > > start contributing to the project.
> > > From a user perspective, getting started with gremlin in Ts isn't the
> > best,
> > > there were multiple times when I had to look up the javadoc to
> understand
> > > what was going on.
> > > From a developer perspective, I feel like javascript is prone to type
> > > errors and the devs could save a lot of time in the future if the
> project
> > > keeps growing.
> > > There are of course a few downsides like compilation time or additional
> > > complexity in some cases, but since the initial codebase is in Java I
> > don't
> > > think these are very important.
> > >
> > > Based on this, I suggest a translation of gremlin-javascript to
> > Typescript,
> > > which was suggested in the past in this ticket :
> > > https://issues.apache.org/jira/browse/TINKERPOP-2027. Since I've used
> > > gremlin with Typescript and I have overall Typescript experience, I
> would
> > > like to work on this if you think it's feasible.
> > >
> > > From what I understood, some parts of the library are auto-generated by
> > > groovy scripts and some are manually written but it looks like this
> > changed
> > > quite a bit from version 3.4 (version at the time of the initial
> ticket).
> > > I could use a little guidance on what is and what is not generated from
> > the
> > > Java code, could someone give a bit of details / link to the scripts
> that
> > > handle this ? I will deep dive on this later but help is always
> > > appreciated.
> > >
> > > Any thoughts on this task ? / Anything I should know or consider
> before I
> > > get started ?
> > >
> > > Regards,
> > > Simon
> > >
> >
>

Reply via email to