{"size": 1701, "ext": "js", "max_stars_repo_path": "libs/gpi.js", "max_stars_repo_name": "tomk79/node-pickles2-theme-editor", "max_stars_repo_stars_event_min_datetime": null, "max_stars_repo_stars_event_max_datetime": null, "max_issues_repo_path": "libs/gpi.js", "max_issues_repo_name": "tomk79/node-pickles2-theme-editor", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "libs/gpi.js", "max_forks_repo_name": "tomk79/node-pickles2-theme-editor", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": null, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 20.743902439, "max_line_length": 67, "alphanum_fraction": 0.6637272193}
/**
 * gpi.js (General Purpose Interface)
 */
module.exports = function(px2ce, data, callback){
	delete(require.cache[require('path').resolve(__filename)]);

	var _this = this;
	callback = callback || function(){};

	switch(data.api){
		case "getConfig":
			// pickles2-contents-editor の設定を取得する
			var conf = {};
			conf.appMode = px2ce.getAppMode();
			callback(conf);
			break;

		case "initContentFiles":
			// コンテンツファイルを初期化する
			// console.log(data);
			px2ce.initContentFiles(data.editor_type, function(result){
				callback(result);
			});
			break;

		case "getProjectConf":
			// プロジェクトの設定を取得する
			px2ce.getProjectConf(function(conf){
				callback(conf);
			});
			break;

		case "checkEditorType":
			// ページの編集方法を取得する
			px2ce.checkEditorType(function(editoryType){
				callback(editoryType);
			});
			break;

		case "getContentsSrc":
			// コンテンツのソースを取得する
			var defaultEditor = new (require('./editor/default.js'))(px2ce);
			defaultEditor.getContentsSrc(function(contentsCodes){
				callback(contentsCodes);
			});
			break;

		case "saveContentsSrc":
			// コンテンツのソースを保存する
			var defaultEditor = new (require('./editor/default.js'))(px2ce);
			defaultEditor.saveContentsSrc(data.codes, function(result){
				callback(result);
			});
			break;

		case "broccoliBridge":
			var broccoliBridge = require('./editor/broccoli.js');
			broccoliBridge(px2ce, data, function(data){
				callback(data);
			});
			break;

		case "openUrlInBrowser":
			px2ce.openUrlInBrowser(data.url, function(res){
				callback(res);
			});
			break;

		case "openResourceDir":
			px2ce.openResourceDir('/', function(res){
				callback(res);
			});
			break;

		default:
			callback(true);
			break;
	}

	return;
}
