⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 package-info.js

📁 JS编译工具
💻 JS
字号:
/*
 * JavaScript Integration Framework
 * License LGPL(您可以在任何地方免费使用,但请不要吝啬您对框架本身的改进)
 * http://www.xidea.org/project/jsi/
 * @author jindw
 * @version $Id: package-info.js,v 1.3 2008/02/24 08:58:15 jindw Exp $
 */


function PackageInfo(name,packageName){
    packageMap[name] = this;
    this.name = name;
    this.packageObject = packageName;//
    if(this.packageObject.name != name){
        this.implementation = this.packageObject.name;
        return ;
    }
    this.fileInfos = [];
    for(var file in this.packageObject.scriptObjectMap){
        var info = new FileInfo(this,file);
        this.fileInfos.push(info);
        this.fileInfos[file] = info;
    }
    this.fileInfos.sort();
}

/**
 * @private
 */
var packageMap = {};
/**
 * @public
 */
PackageInfo.require = function(name){
    if(name){
        if(packageMap[name]){//return old
            return packageMap[name];
        }else{
            var packageObject = $import(name+':');
            if(packageObject){
                return new PackageInfo(name,packageObject);
            }else{
                return null;
            }
        }
    }else{
        return this.rootInfo;
    }
}
PackageInfo.requireRoot = function(files){
    if(this.rootInfo){
        return this.rootInfo;
    }else{
        return this.rootInfo = new RootInfo(files || ['boot.js']);
    }
};



/**
 * @public
 */
PackageInfo.prototype.getObjectInfo = function(name){
        return this.getObjectInfoMap()[name]; 
}
/**
 * @protected
 */
PackageInfo.prototype.getObjectInfoMap = function(){
    if(this._objectInfoMap){
        return this._objectInfoMap;
    }else{
        this._objectInfoMap = {};
        for(var i = 0;i<this.fileInfos.length;i++){
            var objectInfoMap = this.fileInfos[i].getObjectInfoMap();
            for(var o in objectInfoMap){
                this._objectInfoMap[o] = objectInfoMap[o];
            }
        }
        return this._objectInfoMap;
    }
};
/**
 * @public
 */
PackageInfo.prototype.getObjectInfos = function(){
    if(this._objectInfos){
        return this._objectInfos;
    }else{
        this._objectInfos = [];
        var objectInfoMap = this.getObjectInfoMap();
        for(var n in objectInfoMap){
            this._objectInfos.push(n);
        }
        this._objectInfos.sort();
        for(var i=0;i<this._objectInfos.length;i++){
            //$log.info(list[i]);
            this._objectInfos[i] = objectInfoMap[this._objectInfos[i]];
            //$log.info(list[i]);
        }
        return this._objectInfos;
    }
}




/**
 * @private
 */
PackageInfo.prototype.getInitializers = function(){
    function gen(fi){
        return function(){
            fi.getObjectInfoMap();
        }
    }
    var rtvs = [];
    for(var i = 0;i<this.fileInfos.length;i++){
        rtvs.push(gen(this.fileInfos[i]));
    }
    return rtvs;
}


PackageInfo.prototype.getPath = function(){
     return this.name+":";
}
/**
 * @public
 */
PackageInfo.prototype.getDescription = function(){
    return this.getSourceEntry().getDescription();
}
/**
 * @public
 */
PackageInfo.prototype.getSourceEntry = function(){
    if(!this._sourceParser){
        this._sourceParser = SourceEntry.require("__package__.js",this.packageObject.name);
    }
    return this._sourceParser;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -