You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@royale.apache.org by Maria José Esteve <mj...@iest.com> on 2025/09/02 10:30:38 UTC
Progress on ExternsJS + TypeDefs
Hi,
I took advantage of a few days off to resume the ExternsJS project and make progress on creating new typedefs to facilitate its use.
The original idea of the project was to provide a set of libraries that would allow us to integrate JS controls into our JSRoyale developments: ECharts, Virtual-Select, Inspire-Tree, FullCalendar, Mobiscroll, etc.
The starting point was the integration of a simple component, Inspire-Tree JS [1], and I decided to continue from there.
As a first step, I transformed the d.ts files into Google Closure externs (CommonJS-compatible) using tsickle, and integrated the result into royale-typedefs [2]. I would appreciate if someone with more experience could review it and confirm what should be adjusted or improved. I followed other projects as reference and configured both Maven and Ant builds; everything seems to be working.
I also have a question: the Inspire-Tree component includes a core and a default view (Inspire-Tree-DOM). For now, I placed both in the same typedefs, under \inspiretree. Do you think it would be better to keep them together or to split them into separate modules?
After that, I recovered the branches feature/ExternsJS and feature/ExternsJS_InspireTree from the royale-asjs repository [3], to check their current state:
feature/ExternsJS: this was the first branch created, where Harb helped Alina and me to set up the test skeleton and the Ant build.
feature/ExternsJS_InspireTree: I opened it in parallel because I was not convinced by the initial structure. My idea was that ExternsJS should include several separate sub-projects (ExternsJS/InspireTree, ExternsJS/ECharts, …) instead of having everything integrated in feature/ExternsJS. At that time, I got stuck with the Maven build.
At this point, I would really appreciate your input: do you consider it more appropriate to maintain a single/atomic structure (feature/ExternsJS) [4] or to organize each sub-project in an independent structure (feature/ExternsJS_InspireTree) [5]?
[1] http://inspire-tree.com/
[2] https://github.com/mjesteve/royale-typedefs/tree/feature/inspire-tree
[3] https://github.com/apache/royale-asjs/tree/feature/ExternsJS | https://github.com/apache/royale-asjs/tree/feature/ExternsJS_InspireTree
[4] Structure feature/ExternsJS
ExternsJS
└── src
└── main
├── config
├── resources
│ └── externsjs/inspiretree
│ ├── defaults.css
│ └── externsjs-manifest.xml
└── royale
└── org/apache/royale/externsjs/inspiretree
└── ExternsJSClasses.as
└── test/royale
├── asconfig.json
├── build.xml
└── pom.xml
[5] Structure feature/ExternsJS_InspireTree
ExternsJS
└── InspireTree
└── src/main
├── config
├── resources
└── royale
├── asconfig.json
├── build.xml
└── pom.xml
asconfig.json
build.xml
pom.xml
Thx.
Hiedra
-----Mensaje original-----
De: Maria Jose Esteve <ma...@iest.com>
Enviado el: jueves, 10 de marzo de 2022 0:42
Para: mailto:dev@royale.apache.org
Asunto: RE: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
Hi
Yishay, I've already removed the ExternsJS related projects from the main branch and commented out all the references I've seen in the build and config files (I haven't removed them so I don't redo the work in the future).
I have detached the ExternsJS project to the "feature/ExternsJS" branch in the current state so I can continue working on it. (Alina, for you) Then I did a build of the SDK with maven:
mvn clean install -DskipTests -P option-with-sass-compile,option-with-swf -Drat.skip=true
And also a build with ant:
ant all -Dbuild.noprompt=true -Drelease.target=true -Dskip-tests=true
Everything seems to work (I've compiled a couple of my projects fine).
As I said in the previous post, my work was in another branch "feature/ExternsJS_InspireTree" I got stuck with the pom creation for the maven compilation (in the main branch only the ant build was configured, I think I remember).
I hope I didn't forget anything.
Thx.
Hiedra
-----Mensaje original-----
De: Yishay Weiss <ma...@hotmail.com> Enviado el: miércoles, 9 de marzo de 2022 16:33
Para: mailto:dev@royale.apache.org
Asunto: RE: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
No need to apologize, we've all been there. These configurations are tricky.
Let me know when you've reverted it and I'll start a new release. No rush as I won't have time to do it tonight anyway.
From: Maria Jose Esteve<ma...@iest.com>
Sent: Wednesday, March 9, 2022 5:16 PM
To: mailto:dev@royale.apache.org<ma...@royale.apache.org>
Subject: RE: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
Yes. At the time, I created a branch but I don't remember why Alina uploaded her copy.
I'm going to try to remove it. I hope to do it correctly because I remember that we "wasted Harb's time" with the configuration and unit tests (sorry Harb).
I'm sorry, could you do it tonight?
Hiedra
-----Mensaje original-----
De: Yishay Weiss <ma...@hotmail.com> Enviado el: miércoles, 9 de marzo de 2022 15:52
Para: mailto:dev@royale.apache.org
Asunto: RE: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
Probably. Maria, maybe you should remove the project and put it in a branch until it is configured properly?
From: Harbs<ma...@gmail.com>
Sent: Wednesday, March 9, 2022 4:34 PM
To: mailto:dev@royale.apache.org<ma...@royale.apache.org>
Subject: Re: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
Does this warrant another RC? (My gut says yes.)
> On Mar 9, 2022, at 4:23 PM, Maria Jose Esteve <ma...@iest.com> wrote:
>
> Maybe it is because the ExternJS project is half-configured. I have replied in the other thread.
>
> Hiedra
>
> -----Mensaje original-----
> De: Harbs <ma...@gmail.com>
> Enviado el: miércoles, 9 de marzo de 2022 14:59
> Para: Apache Royale Development <ma...@royale.apache.org>
> Asunto: Re: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
>
> Any clues why this file shows up?
>
> B /Users/harbs/Desktop/release_test/apache-royale-0.9.9-bin-js-swf/royale-asjs/frameworks/js/libs/ExternsJSJS.swc
>
> AFAIK, there's shouldn't be binaries in the release artifacts.
>
>> On Mar 8, 2022, at 10:28 AM, mailto:apacheroyaleci@gmail.com wrote:
>>
>> This is the discussion thread.
>>
>> Thanks,
>> Yishay Weiss
>
Re: Progress on ExternsJS + TypeDefs
Posted by Yishay Weiss <yi...@hotmail.com>.
Nice, didn't know about tsickle. Build and release scripts will need to be modified; I'll try to take care of that before the next build.
________________________________
From: Maria José Esteve <mj...@iest.com>
Sent: Tuesday, September 2, 2025 11:30 AM
To: dev@royale.apache.org <de...@royale.apache.org>
Subject: Progress on ExternsJS + TypeDefs
Hi,
I took advantage of a few days off to resume the ExternsJS project and make progress on creating new typedefs to facilitate its use.
The original idea of the project was to provide a set of libraries that would allow us to integrate JS controls into our JSRoyale developments: ECharts, Virtual-Select, Inspire-Tree, FullCalendar, Mobiscroll, etc.
The starting point was the integration of a simple component, Inspire-Tree JS [1], and I decided to continue from there.
As a first step, I transformed the d.ts files into Google Closure externs (CommonJS-compatible) using tsickle, and integrated the result into royale-typedefs [2]. I would appreciate if someone with more experience could review it and confirm what should be adjusted or improved. I followed other projects as reference and configured both Maven and Ant builds; everything seems to be working.
I also have a question: the Inspire-Tree component includes a core and a default view (Inspire-Tree-DOM). For now, I placed both in the same typedefs, under \inspiretree. Do you think it would be better to keep them together or to split them into separate modules?
After that, I recovered the branches feature/ExternsJS and feature/ExternsJS_InspireTree from the royale-asjs repository [3], to check their current state:
feature/ExternsJS: this was the first branch created, where Harb helped Alina and me to set up the test skeleton and the Ant build.
feature/ExternsJS_InspireTree: I opened it in parallel because I was not convinced by the initial structure. My idea was that ExternsJS should include several separate sub-projects (ExternsJS/InspireTree, ExternsJS/ECharts, …) instead of having everything integrated in feature/ExternsJS. At that time, I got stuck with the Maven build.
At this point, I would really appreciate your input: do you consider it more appropriate to maintain a single/atomic structure (feature/ExternsJS) [4] or to organize each sub-project in an independent structure (feature/ExternsJS_InspireTree) [5]?
[1] http://inspire-tree.com/
[2] https://github.com/mjesteve/royale-typedefs/tree/feature/inspire-tree
[3] https://github.com/apache/royale-asjs/tree/feature/ExternsJS | https://github.com/apache/royale-asjs/tree/feature/ExternsJS_InspireTree
[4] Structure feature/ExternsJS
ExternsJS
└── src
└── main
├── config
├── resources
│ └── externsjs/inspiretree
│ ├── defaults.css
│ └── externsjs-manifest.xml
└── royale
└── org/apache/royale/externsjs/inspiretree
└── ExternsJSClasses.as
└── test/royale
├── asconfig.json
├── build.xml
└── pom.xml
[5] Structure feature/ExternsJS_InspireTree
ExternsJS
└── InspireTree
└── src/main
├── config
├── resources
└── royale
├── asconfig.json
├── build.xml
└── pom.xml
asconfig.json
build.xml
pom.xml
Thx.
Hiedra
-----Mensaje original-----
De: Maria Jose Esteve <ma...@iest.com>
Enviado el: jueves, 10 de marzo de 2022 0:42
Para: mailto:dev@royale.apache.org
Asunto: RE: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
Hi
Yishay, I've already removed the ExternsJS related projects from the main branch and commented out all the references I've seen in the build and config files (I haven't removed them so I don't redo the work in the future).
I have detached the ExternsJS project to the "feature/ExternsJS" branch in the current state so I can continue working on it. (Alina, for you) Then I did a build of the SDK with maven:
mvn clean install -DskipTests -P option-with-sass-compile,option-with-swf -Drat.skip=true
And also a build with ant:
ant all -Dbuild.noprompt=true -Drelease.target=true -Dskip-tests=true
Everything seems to work (I've compiled a couple of my projects fine).
As I said in the previous post, my work was in another branch "feature/ExternsJS_InspireTree" I got stuck with the pom creation for the maven compilation (in the main branch only the ant build was configured, I think I remember).
I hope I didn't forget anything.
Thx.
Hiedra
-----Mensaje original-----
De: Yishay Weiss <ma...@hotmail.com> Enviado el: miércoles, 9 de marzo de 2022 16:33
Para: mailto:dev@royale.apache.org
Asunto: RE: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
No need to apologize, we've all been there. These configurations are tricky.
Let me know when you've reverted it and I'll start a new release. No rush as I won't have time to do it tonight anyway.
From: Maria Jose Esteve<ma...@iest.com>
Sent: Wednesday, March 9, 2022 5:16 PM
To: mailto:dev@royale.apache.org<ma...@royale.apache.org>
Subject: RE: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
Yes. At the time, I created a branch but I don't remember why Alina uploaded her copy.
I'm going to try to remove it. I hope to do it correctly because I remember that we "wasted Harb's time" with the configuration and unit tests (sorry Harb).
I'm sorry, could you do it tonight?
Hiedra
-----Mensaje original-----
De: Yishay Weiss <ma...@hotmail.com> Enviado el: miércoles, 9 de marzo de 2022 15:52
Para: mailto:dev@royale.apache.org
Asunto: RE: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
Probably. Maria, maybe you should remove the project and put it in a branch until it is configured properly?
From: Harbs<ma...@gmail.com>
Sent: Wednesday, March 9, 2022 4:34 PM
To: mailto:dev@royale.apache.org<ma...@royale.apache.org>
Subject: Re: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
Does this warrant another RC? (My gut says yes.)
> On Mar 9, 2022, at 4:23 PM, Maria Jose Esteve <ma...@iest.com> wrote:
>
> Maybe it is because the ExternJS project is half-configured. I have replied in the other thread.
>
> Hiedra
>
> -----Mensaje original-----
> De: Harbs <ma...@gmail.com>
> Enviado el: miércoles, 9 de marzo de 2022 14:59
> Para: Apache Royale Development <ma...@royale.apache.org>
> Asunto: Re: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
>
> Any clues why this file shows up?
>
> B /Users/harbs/Desktop/release_test/apache-royale-0.9.9-bin-js-swf/royale-asjs/frameworks/js/libs/ExternsJSJS.swc
>
> AFAIK, there's shouldn't be binaries in the release artifacts.
>
>> On Mar 8, 2022, at 10:28 AM, mailto:apacheroyaleci@gmail.com wrote:
>>
>> This is the discussion thread.
>>
>> Thanks,
>> Yishay Weiss
>
Re: Progress on ExternsJS + TypeDefs
Posted by Yishay Weiss <yi...@hotmail.com>.
>As a first step, I transformed the d.ts files into Google Closure externs (CommonJS-compatible) using tsickle, and integrated the result into royale-typedefs [2]. I would appreciate if someone with more experience could review it and confirm what should be adjusted or improved.
Looks good to me. I did notice some Spanish comments that you might want to translate to English.
>I also have a question: the Inspire-Tree component includes a core and a default view (Inspire-Tree-DOM). For now, I placed both in the same typedefs, under \inspiretree. Do you think it would be better to keep them together or to split them into separate modules?
Looking at the externs.js file it looks like the DOM part is small, so bundling them together makes sense to me.
>do you consider it more appropriate to maintain a single/atomic structure (feature/ExternsJS) [4] or to organize each sub-project in an independent structure
I remember discussing this question, but I don't remember what the considerations were. I think there might be some overhead involved in release scripts if you were to change the folder structure. That's only one (perhaps narrow) consideration though.
.
________________________________
From: Maria José Esteve <mj...@iest.com>
Sent: Tuesday, September 2, 2025 11:30 AM
To: dev@royale.apache.org <de...@royale.apache.org>
Subject: Progress on ExternsJS + TypeDefs
Hi,
I took advantage of a few days off to resume the ExternsJS project and make progress on creating new typedefs to facilitate its use.
The original idea of the project was to provide a set of libraries that would allow us to integrate JS controls into our JSRoyale developments: ECharts, Virtual-Select, Inspire-Tree, FullCalendar, Mobiscroll, etc.
The starting point was the integration of a simple component, Inspire-Tree JS [1], and I decided to continue from there.
As a first step, I transformed the d.ts files into Google Closure externs (CommonJS-compatible) using tsickle, and integrated the result into royale-typedefs [2]. I would appreciate if someone with more experience could review it and confirm what should be adjusted or improved. I followed other projects as reference and configured both Maven and Ant builds; everything seems to be working.
I also have a question: the Inspire-Tree component includes a core and a default view (Inspire-Tree-DOM). For now, I placed both in the same typedefs, under \inspiretree. Do you think it would be better to keep them together or to split them into separate modules?
After that, I recovered the branches feature/ExternsJS and feature/ExternsJS_InspireTree from the royale-asjs repository [3], to check their current state:
feature/ExternsJS: this was the first branch created, where Harb helped Alina and me to set up the test skeleton and the Ant build.
feature/ExternsJS_InspireTree: I opened it in parallel because I was not convinced by the initial structure. My idea was that ExternsJS should include several separate sub-projects (ExternsJS/InspireTree, ExternsJS/ECharts, …) instead of having everything integrated in feature/ExternsJS. At that time, I got stuck with the Maven build.
At this point, I would really appreciate your input: do you consider it more appropriate to maintain a single/atomic structure (feature/ExternsJS) [4] or to organize each sub-project in an independent structure (feature/ExternsJS_InspireTree) [5]?
[1] http://inspire-tree.com/
[2] https://github.com/mjesteve/royale-typedefs/tree/feature/inspire-tree
[3] https://github.com/apache/royale-asjs/tree/feature/ExternsJS | https://github.com/apache/royale-asjs/tree/feature/ExternsJS_InspireTree
[4] Structure feature/ExternsJS
ExternsJS
└── src
└── main
├── config
├── resources
│ └── externsjs/inspiretree
│ ├── defaults.css
│ └── externsjs-manifest.xml
└── royale
└── org/apache/royale/externsjs/inspiretree
└── ExternsJSClasses.as
└── test/royale
├── asconfig.json
├── build.xml
└── pom.xml
[5] Structure feature/ExternsJS_InspireTree
ExternsJS
└── InspireTree
└── src/main
├── config
├── resources
└── royale
├── asconfig.json
├── build.xml
└── pom.xml
asconfig.json
build.xml
pom.xml
Thx.
Hiedra
-----Mensaje original-----
De: Maria Jose Esteve <ma...@iest.com>
Enviado el: jueves, 10 de marzo de 2022 0:42
Para: mailto:dev@royale.apache.org
Asunto: RE: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
Hi
Yishay, I've already removed the ExternsJS related projects from the main branch and commented out all the references I've seen in the build and config files (I haven't removed them so I don't redo the work in the future).
I have detached the ExternsJS project to the "feature/ExternsJS" branch in the current state so I can continue working on it. (Alina, for you) Then I did a build of the SDK with maven:
mvn clean install -DskipTests -P option-with-sass-compile,option-with-swf -Drat.skip=true
And also a build with ant:
ant all -Dbuild.noprompt=true -Drelease.target=true -Dskip-tests=true
Everything seems to work (I've compiled a couple of my projects fine).
As I said in the previous post, my work was in another branch "feature/ExternsJS_InspireTree" I got stuck with the pom creation for the maven compilation (in the main branch only the ant build was configured, I think I remember).
I hope I didn't forget anything.
Thx.
Hiedra
-----Mensaje original-----
De: Yishay Weiss <ma...@hotmail.com> Enviado el: miércoles, 9 de marzo de 2022 16:33
Para: mailto:dev@royale.apache.org
Asunto: RE: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
No need to apologize, we've all been there. These configurations are tricky.
Let me know when you've reverted it and I'll start a new release. No rush as I won't have time to do it tonight anyway.
From: Maria Jose Esteve<ma...@iest.com>
Sent: Wednesday, March 9, 2022 5:16 PM
To: mailto:dev@royale.apache.org<ma...@royale.apache.org>
Subject: RE: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
Yes. At the time, I created a branch but I don't remember why Alina uploaded her copy.
I'm going to try to remove it. I hope to do it correctly because I remember that we "wasted Harb's time" with the configuration and unit tests (sorry Harb).
I'm sorry, could you do it tonight?
Hiedra
-----Mensaje original-----
De: Yishay Weiss <ma...@hotmail.com> Enviado el: miércoles, 9 de marzo de 2022 15:52
Para: mailto:dev@royale.apache.org
Asunto: RE: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
Probably. Maria, maybe you should remove the project and put it in a branch until it is configured properly?
From: Harbs<ma...@gmail.com>
Sent: Wednesday, March 9, 2022 4:34 PM
To: mailto:dev@royale.apache.org<ma...@royale.apache.org>
Subject: Re: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
Does this warrant another RC? (My gut says yes.)
> On Mar 9, 2022, at 4:23 PM, Maria Jose Esteve <ma...@iest.com> wrote:
>
> Maybe it is because the ExternJS project is half-configured. I have replied in the other thread.
>
> Hiedra
>
> -----Mensaje original-----
> De: Harbs <ma...@gmail.com>
> Enviado el: miércoles, 9 de marzo de 2022 14:59
> Para: Apache Royale Development <ma...@royale.apache.org>
> Asunto: Re: [DISCUSS] Discuss Release Apache Royale 0.9.9 RC2
>
> Any clues why this file shows up?
>
> B /Users/harbs/Desktop/release_test/apache-royale-0.9.9-bin-js-swf/royale-asjs/frameworks/js/libs/ExternsJSJS.swc
>
> AFAIK, there's shouldn't be binaries in the release artifacts.
>
>> On Mar 8, 2022, at 10:28 AM, mailto:apacheroyaleci@gmail.com wrote:
>>
>> This is the discussion thread.
>>
>> Thanks,
>> Yishay Weiss
>