代码拉取完成,页面将自动刷新
同步操作将从 this_lucky/ynode 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/**
* @author yu
* @license http://www.apache.org/licenses/LICENSE-2.0
*/
'use strict';
var StringHelper = require('./helpers/StringHelper');
/**
* 辅助类
*/
class Y {
/**
* @ 别名路径转换真实路径
*
* @param {String} alias 路径别名
* @return {String} 路径
*/
static getPathAlias(alias) {
if('@' !== alias.charAt(0)) {
return alias;
}
// 截取开头作为别名
var pos = alias.indexOf('/');
var root = -1 === pos ? alias : alias.substring(0, pos);
if(undefined !== Y.pathAliases[root]) {
return -1 === pos ?
Y.pathAliases[root] :
Y.pathAliases[root] + alias.substring(pos);
}
return '';
}
/**
* 设置路径别名
*
* @param {String} alias 路径别名
* @param {String} path 路径
*/
static setPathAlias(alias, path) {
if('@' !== alias.charAt(0)) {
alias = '@' + alias;
}
if(null === path) {
delete Y.pathAliases[alias];
return;
}
Y.pathAliases[alias] = StringHelper.rTrimChar(path, '/');
}
/**
* 创建对象 系统类路径约定以 y 开头 应用类以项目目录开头
*
* @param {String | Object} clazz 以某个已经定义的别名开头的类全名或带 'classPath' 键的配置
*
* eg.
* 'some/path/Class'
* or
* {classPath: 'some/path/Class', ...}
*
* @param {any} params 构造函数参数
* @return {Object} 类实例
*/
static createObject(clazz, ...params) {
var file = '';
var properties = null;
if('string' === typeof clazz) {
file = Y.getPathAlias('@' + clazz);
} else if('object' === typeof clazz && undefined !== clazz.classPath) {
file = Y.getPathAlias('@' + clazz.classPath);
properties = Y.config({}, clazz);
delete properties.classPath;
}
// 文件不存在抛出异常
// todo
var ClassName = require(file + Y.fileExtention);
var instance = new ClassName(...params);
if(null !== properties) {
Y.config(instance, properties);
}
return instance;
}
/**
* 导入一个类文件
*
* @param {String} clazz 类全名
*/
static include(clazz) {
var file = Y.getPathAlias('@' + clazz);
// 文件不存在抛出异常
// todo
return require(file + Y.fileExtention);
}
/**
* 对象配置
*
* @param {Object} object 需要配置的对象
* @param {Object} properties 配置项
* @return {Object} 源对象
*/
static config(object, properties) {
for(let key in properties) {
object[key] = properties[key];
}
return object;
}
}
/**
* @property {Application} app 应用实例
*/
Y.app = null;
/**
* @property {Rest} rest RESTful 实例
*/
Y.rest = null;
/**
* @property {Object} pathAliases 路径别名
*/
Y.pathAliases = {'@y': __dirname};
/**
* @property {String} fileExtention 默认文件扩展名
*/
Y.fileExtention = '.js';
module.exports = Y;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。