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

Reply via email to