UNPKG

k2hr3-api

Version:

K2HR3 REST API is K2hdkc based Resource and Roles and policy Rules

191 lines (190 loc) 7.04 kB
"use strict"; /* * K2HR3 REST API * * Copyright 2017 Yahoo Japan Corporation. * * K2HR3 is K2hdkc based Resource and Roles and policy Rules, gathers * common management information for the cloud. * K2HR3 can dynamically manage information as "who", "what", "operate". * These are stored as roles, resources, policies in K2hdkc, and the * client system can dynamically read and modify these information. * * For the full copyright and license information, please view * the license file that was distributed with this source code. * * AUTHOR: Takeshi Nakatani * CREATE: Wed Jun 8 2017 * REVISION: * */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.dbglogging = exports.levelSilent = exports.levelErr = exports.levelWarn = exports.levelInfo = exports.levelDbg = exports.dbgLevelMap = exports.LogLevel = void 0; const util = __importStar(require("util")); const k2hr3apiutil_1 = __importDefault(require("./k2hr3apiutil")); //--------------------------------------------------------- // NODE_DEBUG Environment Values //--------------------------------------------------------- var LogLevel; (function (LogLevel) { LogLevel[LogLevel["Silent"] = 0] = "Silent"; LogLevel[LogLevel["Error"] = 1] = "Error"; LogLevel[LogLevel["Warn"] = 2] = "Warn"; LogLevel[LogLevel["Info"] = 3] = "Info"; LogLevel[LogLevel["Debug"] = 4] = "Debug"; })(LogLevel || (exports.LogLevel = LogLevel = {})); exports.dbgLevelMap = { 'LOGLEVEL_DEBUG': LogLevel.Debug, 'LOGLEVEL_DBG': LogLevel.Debug, 'LOGLEVEL_INFO': LogLevel.Info, 'LOGLEVEL_MESSAGE': LogLevel.Info, 'LOGLEVEL_MSG': LogLevel.Info, 'LOGLEVEL_WARNING': LogLevel.Warn, 'LOGLEVEL_WARN': LogLevel.Warn, 'LOGLEVEL_WAN': LogLevel.Warn, 'LOGLEVEL_ERROR': LogLevel.Error, 'LOGLEVEL_ERR': LogLevel.Error, 'LOGLEVEL_SILENT': LogLevel.Silent, 'LOGLEVEL_SLT': LogLevel.Silent }; exports.levelDbg = 4; exports.levelInfo = 3; exports.levelWarn = 2; exports.levelErr = 1; exports.levelSilent = 0; //--------------------------------------------------------- // Logging Level //--------------------------------------------------------- let currentLevel = LogLevel.Error; const customLevels = []; (() => { const dbgEnvs = k2hr3apiutil_1.default.getSafeString(process.env.NODE_DEBUG).split(','); dbgEnvs.forEach((key) => { const upperKey = key.toUpperCase(); if (upperKey in exports.dbgLevelMap) { if (exports.levelSilent === exports.dbgLevelMap[upperKey]) { // default level is error. if specify silent, we must set silent. currentLevel = LogLevel.Silent; } else if (currentLevel < exports.dbgLevelMap[upperKey]) { currentLevel = exports.dbgLevelMap[upperKey]; } } else if (!k2hr3apiutil_1.default.findStringInArray(customLevels, upperKey)) { customLevels.push(upperKey); } }); })(); const getCurrentInfo = () => { try { throw new Error('INTERNAL_EXCEPTION_FOR_DEBUG'); } catch (exception) { if (exception instanceof Error && k2hr3apiutil_1.default.isString(exception.stack)) { const basedir = __dirname.replace(/lib$/g, ''); const stackLines = exception.stack.split(/[\r\n]+/).filter((val1) => /^ *at .*:[0-9]+:[0-9]+/.test(val1)); if (2 < stackLines.length) { const curstr = stackLines[2]; return curstr.replace(/^ *at /g, '').replace(new RegExp(basedir, 'g'), '').replace(/.*\(/g, '').replace(/\)$/g, '').replace(/:[0-9]+$/g, '').replace(/:/g, '(') + ')'; } } return ''; } }; const dlog = (...args) => { if (exports.levelDbg <= currentLevel) { // [NOTE] // We want to use stack trace, thus using console.warn instead of console.debug method. // console.warn('[DEBUG] ' + getCurrentInfo(), util.format(...args)); } }; const mlog = (...args) => { if (exports.levelInfo <= currentLevel) { // [NOTE] // We want to use stack trace, thus using console.warn instead of console.info method. // console.warn('[INFO] ' + getCurrentInfo(), util.format(...args)); } }; const wlog = (...args) => { if (exports.levelWarn <= currentLevel) { console.warn('[WARN] ' + getCurrentInfo(), util.format(...args)); } }; const elog = (...args) => { if (exports.levelErr <= currentLevel) { console.error('[ERROR] ' + getCurrentInfo(), util.format(...args)); } }; const clog = (section, ...args) => { if (k2hr3apiutil_1.default.isSafeString(section)) { if (k2hr3apiutil_1.default.findStringInArray(customLevels, section.toUpperCase())) { // [NOTE] // We want to use stack trace, thus using console.warn instead of console.info method. // console.warn('[' + section.toUpperCase() + '] ' + getCurrentInfo(), util.format(...args)); } } }; const dump = (obj) => { if (exports.levelDbg <= currentLevel) { if (k2hr3apiutil_1.default.isPlainObject(obj)) { return util.inspect(obj, { showHidden: true, depth: null, maxArrayLength: 1000 }); } } return obj; }; exports.dbglogging = { dlog, mlog, wlog, elog, clog, dump, }; exports.default = exports.dbglogging; /* * Local variables: * tab-width: 4 * c-basic-offset: 4 * End: * vim600: noexpandtab sw=4 ts=4 fdm=marker * vim<600: noexpandtab sw=4 ts=4 */