Github user vladimir-kotikov commented on a diff in the pull request:

    https://github.com/apache/cordova-windows/pull/84#discussion_r31137262
  
    --- Diff: template/cordova/Api.js ---
    @@ -0,0 +1,54 @@
    +
    +/*jshint node: true*/
    +
    +var path = require('path');
    +
    +var buildImpl = require('./lib/build');
    +var requirementsImpl = require('./lib/check_reqs');
    +
    +function PlatformApi () {
    +    // Set up basic properties. They probably will be overridden if this 
API is used by cordova-lib
    +    this.root = path.join(__dirname, '..', '..');
    +    this.platform = 'windows';
    +
    +    if (this.constructor.super_){
    +        // This should only happen if this class is being instantiated 
from cordova-lib
    +        // In this case the arguments is being passed from cordova-lib as 
well,
    +        // so we don't need to care about whether they're correct ot not
    +        this.constructor.super_.apply(this, arguments);
    +    }
    +}
    +
    +PlatformApi.prototype.build = function(context) {
    +    var buildOptions = context && context.options || [];
    +    return buildImpl.run(buildOptions);
    +};
    +
    +PlatformApi.prototype.requirements = function () {
    +    return requirementsImpl.check_all();
    +};
    +
    +function PlatformHandler() {
    --- End diff --
    
    > we need to first move all/most of the code from 
cordova/metadata/windows_parser to this file before it gets fully operational
    
    This is correct. However, this shouldn't be a problem, because 
PlatformHandler interface is quite similar to platform parsers in 
cordova/metadata.
    
    Regarding `PlatformHandler` and `PlatformApi` as 2 separate classes - I 
like your idea, but I would like to have a bit more feedback on this. The 
reason why it is implemented this way - i've tried to avoid changes that will 
break compatibility and obstruct the transition to new Api, so now they acts 
like former `PlatformProject` and its `parser` property.
    
    BTW, another possible approach here, we're  thought about, was removing 
`parser` property at all and replace it and its methods with single `prepare()` 
methods which will act more like a "black box" - like `build()`, `run()` and 
others works now.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org

Reply via email to