Maybe you can create a static function that returns an instance of marked. From: Carlos Rovira<mailto:carlosrov...@apache.org> Sent: Wednesday, April 15, 2020 5:39 PM To: Apache Royale Development<mailto:dev@royale.apache.org> Subject: Re: Problems to create AS3 externs when JS library returns some kind of object
Hi Yishay, this finally worked (declaring as a function): package { /** * @externs */ COMPILE::JS public function marked(s:String):String { return null; }; } I see two problems with this approach 1. inject_html is not valid, So I need other wrapper class to add the inject_html and use marked within, to make usable as a piece of code (don't like let the user to add the .js script to the html template 2. Since is a function I can add other API functions like setOptions. ie: /** * configure marked with options */ COMPILE::JS public function setOptions(o:Object):void {}; Would like to be know how to declare this as a class to add other function APIs available in the js library El mié., 15 abr. 2020 a las 11:14, Yishay Weiss (<yishayj...@hotmail.com>) escribió: > You can just return null. > > I think the best thing for you to do is to go to one of the typedefs, > build, and look at the generated sources. > > For example > > cd …\royale-typedefs > cd google_maps > ant; > cd target\generated-sources > > Explore the .as classes there. > > Hope this helps. > > From: Carlos Rovira<mailto:carlosrov...@apache.org> > Sent: Wednesday, April 15, 2020 12:05 PM > To: Apache Royale Development<mailto:dev@royale.apache.org> > Subject: Re: Problems to create AS3 externs when JS library returns some > kind of object > > Hi, > > additional to this, is how we can create an extern function that return > something: > > public function someFoo(s:String):String {}; > > AS3 expect here some return value inside the brackets. So how we can write > this in AS3 without errors? > > thanks > > El mié., 15 abr. 2020 a las 10:48, Carlos Rovira (<carlosrov...@apache.org > >) > escribió: > > > Hi, > > > > I'm playing with a js markdown library [1] to see if is an option to make > > a Royale website that load markdown and render it (I'm experimenting to > see > > if we can't remove wordpress from our website and make a web based on > > markdown similar to royale-docs) > > > > I'm having problems trying to create the extern as3 file. I'm trying > > something similar to what we did with hljs. Here's my try: > > > > > > package > > { > > /** > > * marked js library > > */ > > COMPILE::JS > > public class marked > > { > > /** > > * > > * <inject_html> > > * <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js > > "></script> > > * </inject_html> > > * > > * @royaleignorecoercion String > > */ > > public function marked(s:String):String {}; > > > > /** > > * configure marked with options > > */ > > public function setOptions(o:Object):void {}; > > } > > } > > > > The problem is > > > > public function marked(s:String):String {}; > > > > since the library gets a String and returns a String, but AS3 > constructors > > must be void > > > > I remember Josh posted alternative ways to create this kind of AS3 stubs, > > but he posted in a paste apache that is now gone. > > Anyway would be good to know if this is a limitation of AS3 language and > > we can't create this kind of AS3 classes that model a JS library with > > constructors that return something like a string. > > > > Thanks > > > > [1] https://marked.js.org/#/README.md#usage > > > > -- > > Carlos Rovira > > http://about.me/carlosrovira > > > > > > -- > Carlos Rovira > http://about.me/carlosrovira > > -- Carlos Rovira http://about.me/carlosrovira