58ca4e68db
- Go backend API with full CRUD for all modules (CRM, Sales, Finance, HR, Legal, Marketing, Support, Purchase, Inventory, Projects, Automation, Analytics) - Rust analytics service with parallel report generation - C runtime with POSIX shared memory IPC - PostgreSQL schema with 30+ tables, full migrations - Redis cache, sessions, pub/sub - Kafka event streaming with Zookeeper - WebSocket hub for real-time updates - Automation engine with cron jobs, workflows, event triggers - JWT authentication, multi-tenant from start - Docker Compose with all services - Nginx reverse proxy with rate limiting - Integration tests passing - Feature gap analysis against Fortnox/Odoo/Visma Refs: BOC-001
77 lines
1.8 KiB
JavaScript
77 lines
1.8 KiB
JavaScript
/**
|
|
* class Namespace
|
|
*
|
|
* Simple object for storing attributes. Implements equality by attribute names
|
|
* and values, and provides a simple string representation.
|
|
*
|
|
* See also [original guide][1]
|
|
*
|
|
* [1]:http://docs.python.org/dev/library/argparse.html#the-namespace-object
|
|
**/
|
|
'use strict';
|
|
|
|
var $$ = require('./utils');
|
|
|
|
/**
|
|
* new Namespace(options)
|
|
* - options(object): predefined propertis for result object
|
|
*
|
|
**/
|
|
var Namespace = module.exports = function Namespace(options) {
|
|
$$.extend(this, options);
|
|
};
|
|
|
|
/**
|
|
* Namespace#isset(key) -> Boolean
|
|
* - key (string|number): property name
|
|
*
|
|
* Tells whenever `namespace` contains given `key` or not.
|
|
**/
|
|
Namespace.prototype.isset = function (key) {
|
|
return $$.has(this, key);
|
|
};
|
|
|
|
/**
|
|
* Namespace#set(key, value) -> self
|
|
* -key (string|number|object): propery name
|
|
* -value (mixed): new property value
|
|
*
|
|
* Set the property named key with value.
|
|
* If key object then set all key properties to namespace object
|
|
**/
|
|
Namespace.prototype.set = function (key, value) {
|
|
if (typeof (key) === 'object') {
|
|
$$.extend(this, key);
|
|
} else {
|
|
this[key] = value;
|
|
}
|
|
return this;
|
|
};
|
|
|
|
/**
|
|
* Namespace#get(key, defaultValue) -> mixed
|
|
* - key (string|number): property name
|
|
* - defaultValue (mixed): default value
|
|
*
|
|
* Return the property key or defaulValue if not set
|
|
**/
|
|
Namespace.prototype.get = function (key, defaultValue) {
|
|
return !this[key] ? defaultValue : this[key];
|
|
};
|
|
|
|
/**
|
|
* Namespace#unset(key, defaultValue) -> mixed
|
|
* - key (string|number): property name
|
|
* - defaultValue (mixed): default value
|
|
*
|
|
* Return data[key](and delete it) or defaultValue
|
|
**/
|
|
Namespace.prototype.unset = function (key, defaultValue) {
|
|
var value = this[key];
|
|
if (value !== null) {
|
|
delete this[key];
|
|
return value;
|
|
}
|
|
return defaultValue;
|
|
};
|