Skip to content

Commit

Permalink
初始化 rclib
Browse files Browse the repository at this point in the history
  • Loading branch information
tiankaiyuan committed Feb 27, 2018
0 parents commit aff19a4
Show file tree
Hide file tree
Showing 12 changed files with 6,189 additions and 0 deletions.
19 changes: 19 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"presets": [
"es2015",
"stage-0",
"react"
],
"env": {
"node": {
"plugins": [
[
"babel-plugin-transform-require-ignore",
{
"extensions": [".less", ".css"]
}
]
]
}
}
}
107 changes: 107 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Created by .gitignore support plugin (hsz.mobi)
### TortoiseGit template
# Project-level settings
/.tgitconfig


### Windows template
# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk


### SublimeText template
# cache files for sublime text
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache

# workspace files are user-specific
*.sublime-workspace

# project files should be checked into the repository, unless a significant
# proportion of contributors will probably not be using SublimeText
# *.sublime-project

# sftp configuration file
sftp-config.json


### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm

*.iml

## Directory-based project format:

.idea/

# if you remove the above rule, at least ignore the following:

# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries

# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml

# Gradle:
# .idea/gradle.xml
# .idea/libraries

# Mongo Explorer plugin:
# .idea/mongoSettings.xml

## File-based project format:
*.ipr
*.iws

## Plugin-specific files:

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties

output
kConfig/config.js
*.orig
*.tar.gz
__publish__
node_modules
npm-debug.log
pages/public
.DS_STORE
dist
log/logMsg
spiders/cacheId
spiders/sfCache
10 changes: 10 additions & 0 deletions appServer.dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apps:
- script : ./server/index.js
cwd: ./server/
name: 'appServer'
env:
NODE_ENV: development
BABEL_ENV: node
instance: 1
exec_mode: cluster
watch: true
10 changes: 10 additions & 0 deletions appServer.pro.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apps:
- script: ./server/index.js
cwd: ./server/
name: 'appServer'
env:
NODE_ENV: production
BABEL_ENV: node
instance: 2
exec_mode: cluster
watch: true
90 changes: 90 additions & 0 deletions lib/extend.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
'use strict';

var hasOwn = Object.prototype.hasOwnProperty;
var toStr = Object.prototype.toString;

var isArray = function isArray(arr) {
if (typeof Array.isArray === 'function') {
return Array.isArray(arr);
}

return toStr.call(arr) === '[object Array]';
};

var isPlainObject = function isPlainObject(obj) {
if (!obj || toStr.call(obj) !== '[object Object]') {
return false;
}

var hasOwnConstructor = hasOwn.call(obj, 'constructor');
var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
// Not own constructor property must be Object
if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
return false;
}

// Own properties are enumerated firstly, so to speed up,
// if last one is own, then all properties are own.
var key;
for (key in obj) {/**/}

return typeof key === 'undefined' || hasOwn.call(obj, key);
};

module.exports = function extend() {
var options, name, src, copy, copyIsArray, clone,
target = arguments[0],
i = 1,
length = arguments.length,
deep = false;

// Handle a deep copy situation
if (typeof target === 'boolean') {
deep = target;
target = arguments[1] || {};
// skip the boolean and the target
i = 2;
} else if ((typeof target !== 'object' && typeof target !== 'function') || target == null) {
target = {};
}

for (; i < length; ++i) {
options = arguments[i];
// Only deal with non-null/undefined values
if (options != null) {
// Extend the base object
for (name in options) {
src = target[name];
copy = options[name];

// Prevent never-ending loop
if (target !== copy) {
// Recurse if we're merging plain objects or arrays
if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
if (copyIsArray) {
copyIsArray = false;
clone = src && isArray(src) ? src : [];
} else {
clone = src && isPlainObject(src) ? src : {};
}

// Never move original objects, clone them
target[name] = extend(deep, clone, copy);

// Don't bring in undefined values
} else if (typeof copy !== 'undefined') {
if(isArray(target)){
target.push(copy);
}else{
target[name] = copy;
}
}
}
}
}
}

// Return the modified object
return target;
};

Loading

0 comments on commit aff19a4

Please sign in to comment.