Hi Jonathan,

just FYI, I've created an issue for updating Rhino and adding a possibility
to configure it.

https://issues.apache.org/jira/browse/TAP5-2691

Cheers,
Ben

On Thu, Sep 2, 2021 at 10:26 AM Jonathan Luke Shearman
<jonathan.shear...@albourne.com.invalid> wrote:

> Hi Ben,
>
> Thanks for your reply and ideas!
> I did try updating Rhino to the latest version - but it didn't fix the
> issue
> directly, I think to take advantage of the newer features an ES6 version
> flag has to be set, and I haven't had time to try and override that in the
> tapestry implementation yet.
> I'll try out the ResourceTransformer option, maybe that will be easier to
> maintain.
>
> Cheers,
> Jonathan
>
> -----Original Message-----
> From: Ben Weidig <b...@netzgut.net>
> Sent: Wednesday, 1 September 2021 10:52 AM
> To: Tapestry users <users@tapestry.apache.org>
> Subject: Re: Tapestry and Typescript
>
> Hi Jonathan,
>
> I haven't worked with TS in 5.7.2 so far, but I tried to look into it.
>
> The two issues on Rhino's Github are not very helpful...
>
> https://github.com/mozilla/rhino/issues/658 (solved itself somehow)
> https://github.com/mozilla/rhino/issues/430 (solved with newer Rhino
> version)
>
> Tapestry uses an older Rhino version, have you tried to using the latest
> one?
> Not sure if it's compatible though without changes in Tapestry itself,
> though.
>
> Another option would be writing your own ResourceTransformer to compile
> Typescript yourself using a local TSC instead of typescript.js with Rhino.
>
> Maybe someone else has an idea how to integrate Webpack, our JS-setup is
> rather simple.
>
> Cheers,
> Ben
>
>
> On Wed, Sep 1, 2021 at 9:01 AM Jonathan Luke Shearman
> <jonathan.shear...@albourne.com.invalid> wrote:
>
> > Hello,
> >
> >
> >
> > First post here and I have a feeling it may not be Tapestry related
> > but wanted to reach out here just in case!
> >
> >
> >
> > I recently joined a project that has been maintained for a few years
> > and is currently using Tapestry 5.7.2
> >
> > Tasked with upgrading some frontend components, I wanted to use
> > typescript and got it running using the setup in tapestry-webresources
> > using the Rhino library.
> >
> > This worked great on my machine and on the web server, but in the last
> > week some colleagues needed to work on the same code and discovered
> > that typescript wasn’t getting transpiled on their local setup.
> >
> >
> >
> > Rhino complains about a “missing name after the . operator” but
> > references the typescript.js file at line 1467 (exception at the end
> > of this message) – ie the file used to transpile the other .ts files
> > as far as I’ve understood.
> > ( Please correct me if I’m mistaken)
> >
> > I’ve tested this on 8 different colleague machines with only a 50%
> > success rate unfortunately. We are all running what should be
> > identical setups, so it’s quite confusing why some don’t work.
> >
> > It doesn’t seem to depend on node or tsc command line tools, and
> >
> >
> >
> > Looking into it, I’m thinking it’s some sort of file reading issue –
> > there are similar issues on Rhino’s github but unresolved there too.
> >
> > A suggested fix was to change every someObject.delete to
> > someObject[‘delete’] but I don’t think editing typescript.js is the
> > right solution here.
> >
> > The error comes from ‘delete’ being a reserved word in javascript, and
> > so this is most probably an issue with Rhino’s javascript parser.
> >
> > I wondered if anyone has ever come across this issue before or might
> > have some better ideas on what else to check?
> >
> >
> >
> > And just as more general question – can anyone recommend a better
> > setup for handling typescript in Tapestry? My next goal is to bring in
> > npm packages and potentially work on replacing requireJS with
> > something like webpack, but I’ve seen on previous threads here that
> > there’s been limited success?
> >
> > I’ve been considering running npm scripts at Tapestry build time to
> > ‘pre-compile’ all the frontend code in a separate directory and then
> > hand it back to requireJS by dumping the javascript files into
> > /modules.. but that feels like overkill.
> >
> >
> >
> > I’d appreciate any ideas people might have, happy to test anything out
> > at this point.
> >
> > Cheers,
> >
> > Jonathan
> >
> >
> >
> >
> >
> > Original Exception:
> >
> > Exception: org.apache.tapestry5.ioc.internal.OperationException
> >
> >            Message: missing name after . operator
> > (classpath:org/apache/tapestry5/webresources/internal/typescript.js#14
> > 67)
> >
> >              trace: Streaming compressed module custom-file
> >
> >                     Streaming
> > classpath:META-INF/modules/custom-file.ts
> > (compressed)
> >
> >                     Compiling
> > classpath:META-INF/modules/custom-file.ts
> > from
> > TS to JavaScript
> >
> >                     Creating Rhino executor for source(s)
> > classpath:org/apache/tapestry5/webresources/internal/typescript.js,
> >
> classpath:org/apache/tapestry5/webresources/internal/invoke-typescript.js.
> >
> >                     Loading script
> > classpath:org/apache/tapestry5/webresources/internal/typescript.js.
> >
> > Exception: org.mozilla.javascript.EvaluatorException
> >
> >            Message: missing name after . operator
> > (classpath:org/apache/tapestry5/webresources/internal/typescript.js#14
> > 67)
> >
> >       columnNumber: 37
> >
> >         lineNumber: 1467
> >
> >         lineSource:             class_1.prototype.delete = function
> (key)
> > {
> >
> >   scriptStackTrace:
> >
> >         sourceName:
> > classpath:org/apache/tapestry5/webresources/internal/typescript.js
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>

Reply via email to