Skip to content

Instantly share code, notes, and snippets.

@tzechienchu
tzechienchu / autoUpdate.js
Last active November 10, 2016 08:39
Loopback db autoUpdate
var models = ["actionTemplate","workSheet","actionGroup","user"]
models.map(function(md) {
var model = app.models[md];
if (model.dataSource) {
model.dataSource.autoupdate(model.modelName,function(err) {
if (err) console.log(err)
console.log('Update '+model.modelName)
})
}
})
@tzechienchu
tzechienchu / isEmpty.js
Created November 8, 2016 09:13
lodash isEmpty
_.isEmpty(null);
// => true
_.isEmpty(true);
// => true
_.isEmpty(1);
// => true
_.isEmpty([1, 2, 3]);
@tzechienchu
tzechienchu / pageComment.json
Created November 8, 2016 09:58
Paged Comment
{
"name": "pageComment",
"plural": "pageComments",
"base": "PersistedModel",
"idInjection": true,
"properties": {
"recipientUserId": {
"type": "string",
"descrition": "Being Commented UserId",
"required": true
@tzechienchu
tzechienchu / model.json
Created November 10, 2016 09:09
Loopback model add Index
"indexes": {
"name_age_index": {
"keys": {"name": 1, "age": -1}
},
"age_index": {"age": -1}
}
@tzechienchu
tzechienchu / timeMyCode.js
Created November 18, 2016 07:53
Calculate my Funciton Exe time
var TimeMyFunction = (function () {
var instance
function init() {
var start = 0
var end = 0
var startTimer = function() {
start = Date.now()
}
var stopTimer = function() {
end = Date.now()
@tzechienchu
tzechienchu / functionParam.js
Created November 18, 2016 07:53
Get Function Parameter's Name
var getFunctionParameterNames = function(fn) {
return fn.toString()
.replace(/[/][/].*$/mg,'') // strip single-line comments
.replace(/\s+/g, '') // strip white space
.replace(/[/][*][^/*]*[*][/]/g, '') // strip multi-line comments
.split('){', 1)[0].replace(/^[^(]*[(]/, '') // extract the parameters
.replace(/=[^,]+/g, '') // strip any ES6 defaults
.split(',').filter(Boolean); // split & filter [""]
}
@tzechienchu
tzechienchu / afterUpload.js
Created December 7, 2016 02:51
After S3 upload remote method
var co = require('co')
module.exports = function(s3storage) {
s3storage.afterRemote('upload', function(ctx, unused, next) {
var files = ctx.result.result.files.file;
var fileURL = files[0].providerResponse.location
var fileUsage = files[0].fileUsage
var fileOwnerId = files[0].ownerId || '9999999999'
var user = s3storage.app.models.user
var resp = {}
@tzechienchu
tzechienchu / kueSerive1.js
Last active December 9, 2016 03:19
kuSerive
opLog.createJob = function(jobName,jobObject,cb) {
mykue.createJob(jobName,jobObject,5,cb)
}
opLog.remoteMethod(
'createJob',
{
http: {verb: 'post'},
accepts: [
{arg: 'jobName', type: 'string', required: true, description:'jobName'},
{arg: 'jobObject', type: 'object', required: true, description:'jobObject'}
@tzechienchu
tzechienchu / UploadStreamToS3.js
Last active September 28, 2017 07:17
Use Loopback Storage Service Upload Stream.
var fs = require("fs")
var path = require('path')
var str = require('string-to-stream')
var htmlGenService = require('../../common/models/htmlGenService').getInstance()
module.exports = function (app) {
//Read source file
var filePath = path.join(__dirname, '../views/workSheet.txt')
var source = fs.readFileSync(filePath, 'utf8');
htmlGenService.setSource('WorkSheet',source)
@tzechienchu
tzechienchu / readme.md
Created December 29, 2016 07:18
AWS Docker VPN

Using AWS Linux setup an L2TP/IPSEC Soft Ether VPN

Consider HVM (SSD) EBS-Backed 64-bit m3.medium

  • us-east-1 => ami-1ecae776

  • Updates and dependencies

sudo yum -y update
sudo yum -y upgrade
sudo yum -y install docker git wget