Wadayaknow? You’re right. It works without “window”. That should do the trick.
Any clue on why that works? Does the JS engine check window if a global is not defined? On Nov 8, 2016, at 12:44 AM, Harbs <[email protected]> wrote: > I’m pretty sure window is required here, but I’ll check. > > On Nov 8, 2016, at 12:21 AM, Josh Tynjala <[email protected]> wrote: > >> You can usually omit "window." in JS code. >> >> cep.fs.makedir(myPath) should work. >> >> - Josh >> >> On Mon, Nov 7, 2016 at 2:17 PM, Harbs <[email protected]> wrote: >> >>> How does that let you use something like this >>> window.cep.fs.makedir(myPath)? >>> >>> Defining the type definitions is not the issue. >>> >>> On Nov 8, 2016, at 12:03 AM, Alex Harui <[email protected]> wrote: >>> >>>> >>>> >>>> On 11/7/16, 1:54 PM, "Harbs" <[email protected]> wrote: >>>> >>>>> I described CEP in my response which I just sent. >>>>> >>>>> CEP adds a number of global “classes" (such as CSInterface, CSEvent, >>>>> Vulcan, etc.) It also has a built in Node environment, so you can use >>>>> require(), Buffer, etc. >>>>> >>>>> These features are all easily handled by typedefs. >>>>> >>>>> The only sticky one is the “cep” object which is attached to window >>>>> automatically by Adobe. This prompted my question. >>>> >>>> Why can't you do roughly what JQuery's typedefs do? Jquery looks like: >>>> >>>> /** >>>> * @constructor >>>> */ >>>> function jQuery(arg1, arg2) {} >>>> >>>> /** >>>> * @const >>>> * @type {!jQuery} >>>> */ >>>> var $ = jQuery; >>>> >>>> /** >>>> */ >>>> jQuery.prototype.add = function(arg1, context) {}; >>>> >>>> So wouldn't CEP look like: >>>> >>>> >>>> /** >>>> * @constructor >>>> */ >>>> function CEP(arg1, arg2) {} >>>> >>>> /** >>>> * @const >>>> * @type {!CEP} >>>> */ >>>> var cep = CEP; >>>> >>>> /** >>>> */ >>>> CEP.prototype.add = function(arg1, context) {}; >>>> >>>> -Alex >>>> >>>> >>>> >>>>> >>>>> On Nov 7, 2016, at 11:47 PM, Alex Harui <[email protected]> wrote: >>>>> >>>>>> >>>>>> >>>>>> On 11/7/16, 1:37 PM, "Josh Tynjala" <[email protected]> wrote: >>>>>> >>>>>>> As far as I know, there's no way to do it without compiling a new SWC >>>>>>> using >>>>>>> the sources from js.swc and including your additional APIs. >>>>>>> >>>>>>> That's not necessarily a bad thing. In fact, I'd say it's a best >>>>>>> practice. >>>>>>> Ideally, I would have built node.swc to also include a subset of >>>>>>> what's in >>>>>>> js.swc, instead of also including js.swc. Using js.swc for Node.js >>> apps >>>>>>> exposes a bunch of classes that don't actually exist in Node.js. I >>>>>>> hope to >>>>>>> clean that up eventually. This Adobe CEP sounds like a similar >>>>>>> situation. >>>>>>> It's a different environment, even if there's a lot of overlap. >>>>>> >>>>>> Is CEP a different environment, or just a new feature? I agree about >>>>>> Node >>>>>> being a different environment. On the other hand, Cordova is a new >>>>>> feature added to a browser, so there is a separate cordova.swc that you >>>>>> use along with js.swc. >>>>>> >>>>>> I think the first decision is what you want the API to look like. Is >>>>>> cep >>>>>> a singleton? Or an instance of something? >>>>>> >>>>>> -Alex >>>>>> >>>>> >>>> >>> >>> >
