Intial Commit
This commit is contained in:
75
nodered/rootfs/data/node_modules/node-red-contrib-moment/moment/nrhumanizer.js
generated
vendored
Normal file
75
nodered/rootfs/data/node_modules/node-red-contrib-moment/moment/nrhumanizer.js
generated
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
/**
|
||||
* Copyright (c) 2018 Julian Knight (Totally Information)
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
|
||||
// JK Note: This code contributed by (Contributed by Laro88, https://github.com/Laro88)
|
||||
// Tidying done by JK. Also removed dependency on validator which is vastly OTT for just ensuring an integer
|
||||
// 2017-04-13
|
||||
|
||||
// Node for Node-Red that humalizes a timespan msg.payload.[] //TODO whould this be extended to work on Date objects as well and if so how?
|
||||
// It is helpful when working with ui things that informs users of time since last operation etc.
|
||||
|
||||
// require moment.js (must be installed from package.js as a dependency)
|
||||
var moment = require('moment-timezone');
|
||||
|
||||
// Module name must match this nodes html file
|
||||
var moduleName = 'humanizer';
|
||||
|
||||
module.exports = function(RED) {
|
||||
'use strict';
|
||||
|
||||
// The main node definition - most things happen in here
|
||||
function nodeGo(config) {
|
||||
// Create a RED node
|
||||
RED.nodes.createNode(this,config);
|
||||
|
||||
// Store local copies of the node configuration (as defined in the .html)
|
||||
this.topic = config.topic;
|
||||
this.input = config.input || 'payload'; // where to take the input from
|
||||
|
||||
// copy "this" object in case we need it in context of callbacks of other functions.
|
||||
var node = this;
|
||||
|
||||
// respond to inputs....
|
||||
node.on('input', function (msg) {
|
||||
'use strict'; // We will be using eval() so lets get a bit of safety using strict
|
||||
|
||||
//console.log(this.input);
|
||||
var v = msg.payload.hasOwnProperty(this.input) ? msg.payload[this.input] : msg.payload;
|
||||
// JK: Replace validator with native JS INT check, improve warning message
|
||||
//v = v;
|
||||
//if( !validator.isInt(v) ) {
|
||||
if( ! Number.isInteger(v) ) {
|
||||
return node.warn('Invalid input for humanize call, input must be an integer');
|
||||
}
|
||||
|
||||
// JK: Pass seconds to duration - remove *1000 ms conversion
|
||||
var _humanized = moment.duration(v, 'seconds').humanize();
|
||||
if(typeof(msg.payload) == 'object'){
|
||||
msg.payload.humanized = _humanized;
|
||||
}
|
||||
else{
|
||||
msg.payload = {'humanized':_humanized};
|
||||
}
|
||||
|
||||
node.send(msg);
|
||||
});
|
||||
|
||||
} // ---- end of nodeGo function ---- //
|
||||
|
||||
// Register the node by name. This must be called before overriding any of the
|
||||
// Node functions.
|
||||
RED.nodes.registerType(moduleName,nodeGo);
|
||||
};
|
||||
Reference in New Issue
Block a user