Yes, it sounds like you have understood me correctly.

--
Josh Tynjala
Bowler Hat LLC <https://bowlerhat.dev>


On Wed, Apr 15, 2020 at 11:00 AM Carlos Rovira <carlosrov...@apache.org>
wrote:

> Hi Josh,
>
> so if I understand correctly your words, for cases where the function is
> called the same as the typedef and we have params and return values we need
> to create a function as I did and then add the rest of functions in
> separate files in the packaged named the same as the typedef?
>
> Regarding "marked" example, I got the initial example working, but I'm
> trying to configure options that require create internal types in marked,
> and I'm not got it already.
>
> thanks
>
>
>
> El mié., 15 abr. 2020 a las 18:00, Josh Tynjala (<
> joshtynj...@bowlerhat.dev>)
> escribió:
>
> > It's not ideal, but one way that I've found to define a typedef function
> > that exposes "static" functions similar to a class is to put those
> "static"
> > functions into a package with the same name as the root function.
> >
> > package
> > {
> > /**
> > * @externs
> > */
> > COMPILE::JS
> > public function marked(s:String):String {
> > return null;
> > };
> > }
> >
> > package marked
> > {
> > /**
> > * @externs
> > * configure marked with options
> > */
> > COMPILE::JS
> > public function setOptions(o:Object):void {};
> > }
> >
> > Another option is to use dynamic access, but that won't be checked by the
> > compiler.
> >
> > marked["setOptions"]()
> >
> > --
> > Josh Tynjala
> > Bowler Hat LLC <https://bowlerhat.dev>
> >
> >
> > On Wed, Apr 15, 2020 at 7:39 AM Carlos Rovira <carlosrov...@apache.org>
> > wrote:
> >
> > > 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
> > >
> >
>
>
> --
> Carlos Rovira
> http://about.me/carlosrovira
>

Reply via email to