@rpldy/life-events
Advanced tools
Comparing version 1.3.1 to 1.4.0-rc.0
@@ -7,5 +7,3 @@ "use strict"; | ||
exports.default = void 0; | ||
var _shared = require("@rpldy/shared"); | ||
const defaults = (0, _shared.devFreeze)({ | ||
@@ -12,0 +10,0 @@ allowRegisterNonExistent: true, |
@@ -30,11 +30,6 @@ "use strict"; | ||
}); | ||
var _lifeEvents = _interopRequireWildcard(require("./lifeEvents")); | ||
var _lifePack = _interopRequireDefault(require("./lifePack")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } | ||
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } |
@@ -7,30 +7,18 @@ "use strict"; | ||
exports.isLE = exports.default = void 0; | ||
var _shared = require("@rpldy/shared"); | ||
var _defaults = _interopRequireDefault(require("./defaults")); | ||
var _utils = require("./utils"); | ||
var _consts = require("./consts"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
//TODO: implement STATS | ||
const getLE = obj => obj ? obj[_consts.LESYM] : null; | ||
const getValidLE = obj => { | ||
const le = getLE(obj); | ||
if (!le) { | ||
throw new Error("Didnt find LE internal object. Something very bad happened!"); | ||
} | ||
return le; | ||
}; | ||
const isLE = obj => !!getLE(obj); | ||
exports.isLE = isLE; | ||
const addRegistration = function (obj, name, cb) { | ||
@@ -40,9 +28,6 @@ let once = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; | ||
const le = getValidLE(obj); | ||
if (!le.options.allowRegisterNonExistent && !~le.events.indexOf(name)) { | ||
throw new Error(`Cannot register for event ${name.toString()} that wasn't already defined (allowRegisterNonExistent = false)`); | ||
} | ||
const namedRegistry = le.registry[name] || []; | ||
if (!namedRegistry.find(r => r.cb === cb)) { | ||
@@ -57,12 +42,8 @@ //only add same callback for a name once | ||
} | ||
return () => unregister.call(obj, name, cb); | ||
}; | ||
const findRegistrations = (obj, name) => { | ||
const registry = getValidLE(obj).registry; | ||
return name ? registry[name] ? registry[name].slice() : [] : //$FlowIssue - flow doesnt know how to work with Array.values() :( | ||
Object.values(registry).flat(); | ||
return name ? registry[name] ? registry[name].slice() : [] : Object.values(registry).flat(); | ||
}; | ||
const publicMethods = { | ||
@@ -74,3 +55,2 @@ "on": register, | ||
}; | ||
const getPublicMethods = () => Object.entries(publicMethods).reduce((res, _ref) => { | ||
@@ -82,5 +62,5 @@ let [key, m] = _ref; | ||
return res; | ||
}, {}); //using string keys here because can't rely on function names to stay after (babel/webpack) build | ||
}, {}); | ||
//using string keys here because can't rely on function names to stay after (babel/webpack) build | ||
const apiMethods = { | ||
@@ -95,2 +75,4 @@ "trigger": trigger, | ||
//placating flow while using reduce to create an object API | ||
const createApi = target => Object.keys(apiMethods).reduce((res, name) => { | ||
@@ -103,7 +85,5 @@ res[name] = apiMethods[name].bind(target); | ||
}); | ||
const cleanRegistryForName = function (obj, name) { | ||
let force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; | ||
const registry = getValidLE(obj).registry; | ||
if (registry[name] && (force || !registry[name].length)) { | ||
@@ -113,6 +93,4 @@ delete registry[name]; | ||
}; | ||
const removeRegItem = (obj, name, cb) => { | ||
const registry = getValidLE(obj).registry; | ||
if (registry[name]) { | ||
@@ -127,19 +105,14 @@ if (!cb) { | ||
}; | ||
function register(name, cb) { | ||
return addRegistration(this, name, cb); | ||
} | ||
function registerOnce(name, cb) { | ||
return addRegistration(this, name, cb, true); | ||
} | ||
function unregister(name, cb) { | ||
removeRegItem(this, name, cb); | ||
} | ||
function getEvents() { | ||
return getValidLE(this).events.slice(); | ||
} | ||
function trigger(name) { | ||
@@ -149,11 +122,7 @@ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
} | ||
const regs = findRegistrations(this, name); | ||
let results; | ||
if (regs.length) { | ||
var _args$; | ||
let packValue; | ||
if (args.length === 1 && ((_args$ = args[0]) === null || _args$ === void 0 ? void 0 : _args$[_consts.LE_PACK_SYM]) === true) { | ||
@@ -163,10 +132,7 @@ //life-pack always returns array as params to spread | ||
} | ||
results = regs.map(r => { | ||
let result; | ||
if (r.once) { | ||
removeRegItem(this, name, r.cb); | ||
} | ||
if (packValue) { | ||
@@ -185,11 +151,9 @@ result = r.cb(...packValue); | ||
} | ||
return result; | ||
}).filter(result => !(0, _utils.isUndefined)(result)).map(result => (0, _shared.isPromise)(result) ? result : Promise.resolve(result)); | ||
} | ||
return results && (results.length ? results : undefined); | ||
} //registry, events, stats become shared | ||
} | ||
//registry, events, stats become shared | ||
function assign(toObj) { | ||
@@ -200,9 +164,6 @@ const le = getValidLE(this); | ||
} | ||
function addEvent(name) { | ||
const le = getValidLE(this); | ||
if (le.options.canAddEvents) { | ||
const index = le.events.indexOf(name); | ||
if (!~index) { | ||
@@ -217,6 +178,4 @@ le.events.push(name); | ||
} | ||
function removeEvent(name) { | ||
const le = getValidLE(this); | ||
if (le.options.canRemoveEvents) { | ||
@@ -229,3 +188,2 @@ const index = le.events.indexOf(name); | ||
} | ||
function hasEvent(name) { | ||
@@ -235,10 +193,10 @@ const le = getValidLE(this); | ||
} | ||
function hasEventRegistrations(name) { | ||
return !!findRegistrations(this, name).length; | ||
} // function getStats(name?: any) { | ||
} | ||
// function getStats(name?: any) { | ||
// | ||
// } | ||
const defineLifeData = function (target, options) { | ||
@@ -249,2 +207,3 @@ let events = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; | ||
Object.defineProperties(target, { | ||
// $FlowIssue[invalid-computed-prop] - https://github.com/facebook/flow/issues/3258 | ||
[_consts.LESYM]: { | ||
@@ -261,19 +220,16 @@ value: Object.seal({ | ||
}; | ||
const addLife = function (target) { | ||
let events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; | ||
let options = arguments.length > 2 ? arguments[2] : undefined; | ||
target = target || {}; | ||
options = { ..._defaults.default, | ||
const useTarget = target || {}; | ||
const usedOptions = { | ||
..._defaults.default, | ||
...options | ||
}; | ||
if (!isLE(target)) { | ||
defineLifeData(target, options, events); | ||
if (!isLE(useTarget)) { | ||
defineLifeData(useTarget, usedOptions, events); | ||
} | ||
return createApi(target); | ||
return createApi(useTarget); | ||
}; | ||
var _default = addLife; | ||
exports.default = _default; |
@@ -7,5 +7,3 @@ "use strict"; | ||
exports.default = void 0; | ||
var _consts = require("./consts"); | ||
/** | ||
@@ -27,4 +25,3 @@ * create a pack that will only execute when there are registered event handlers | ||
}; | ||
var _default = createLifePack; | ||
exports.default = _default; |
@@ -7,5 +7,3 @@ "use strict"; | ||
exports.validateFunction = exports.isUndefined = void 0; | ||
var _shared = require("@rpldy/shared"); | ||
const validateFunction = (f, name) => { | ||
@@ -16,7 +14,4 @@ if (!(0, _shared.isFunction)(f)) { | ||
}; | ||
exports.validateFunction = validateFunction; | ||
const isUndefined = val => typeof val === "undefined"; | ||
exports.isUndefined = isUndefined; |
@@ -5,18 +5,13 @@ import { isPromise } from "@rpldy/shared"; | ||
import { LESYM, LE_PACK_SYM } from "./consts"; | ||
//TODO: implement STATS | ||
//TODO: implement STATS | ||
const getLE = obj => obj ? obj[LESYM] : null; | ||
const getValidLE = obj => { | ||
const le = getLE(obj); | ||
if (!le) { | ||
throw new Error("Didnt find LE internal object. Something very bad happened!"); | ||
} | ||
return le; | ||
}; | ||
const isLE = obj => !!getLE(obj); | ||
const addRegistration = function (obj, name, cb) { | ||
@@ -26,9 +21,6 @@ let once = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; | ||
const le = getValidLE(obj); | ||
if (!le.options.allowRegisterNonExistent && !~le.events.indexOf(name)) { | ||
throw new Error(`Cannot register for event ${name.toString()} that wasn't already defined (allowRegisterNonExistent = false)`); | ||
} | ||
const namedRegistry = le.registry[name] || []; | ||
if (!namedRegistry.find(r => r.cb === cb)) { | ||
@@ -43,12 +35,8 @@ //only add same callback for a name once | ||
} | ||
return () => unregister.call(obj, name, cb); | ||
}; | ||
const findRegistrations = (obj, name) => { | ||
const registry = getValidLE(obj).registry; | ||
return name ? registry[name] ? registry[name].slice() : [] : //$FlowIssue - flow doesnt know how to work with Array.values() :( | ||
Object.values(registry).flat(); | ||
return name ? registry[name] ? registry[name].slice() : [] : Object.values(registry).flat(); | ||
}; | ||
const publicMethods = { | ||
@@ -60,3 +48,2 @@ "on": register, | ||
}; | ||
const getPublicMethods = () => Object.entries(publicMethods).reduce((res, _ref) => { | ||
@@ -68,5 +55,5 @@ let [key, m] = _ref; | ||
return res; | ||
}, {}); //using string keys here because can't rely on function names to stay after (babel/webpack) build | ||
}, {}); | ||
//using string keys here because can't rely on function names to stay after (babel/webpack) build | ||
const apiMethods = { | ||
@@ -81,2 +68,4 @@ "trigger": trigger, | ||
//placating flow while using reduce to create an object API | ||
const createApi = target => Object.keys(apiMethods).reduce((res, name) => { | ||
@@ -89,7 +78,5 @@ res[name] = apiMethods[name].bind(target); | ||
}); | ||
const cleanRegistryForName = function (obj, name) { | ||
let force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; | ||
const registry = getValidLE(obj).registry; | ||
if (registry[name] && (force || !registry[name].length)) { | ||
@@ -99,6 +86,4 @@ delete registry[name]; | ||
}; | ||
const removeRegItem = (obj, name, cb) => { | ||
const registry = getValidLE(obj).registry; | ||
if (registry[name]) { | ||
@@ -113,19 +98,14 @@ if (!cb) { | ||
}; | ||
function register(name, cb) { | ||
return addRegistration(this, name, cb); | ||
} | ||
function registerOnce(name, cb) { | ||
return addRegistration(this, name, cb, true); | ||
} | ||
function unregister(name, cb) { | ||
removeRegItem(this, name, cb); | ||
} | ||
function getEvents() { | ||
return getValidLE(this).events.slice(); | ||
} | ||
function trigger(name) { | ||
@@ -135,11 +115,7 @@ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
} | ||
const regs = findRegistrations(this, name); | ||
let results; | ||
if (regs.length) { | ||
var _args$; | ||
let packValue; | ||
if (args.length === 1 && ((_args$ = args[0]) === null || _args$ === void 0 ? void 0 : _args$[LE_PACK_SYM]) === true) { | ||
@@ -149,10 +125,7 @@ //life-pack always returns array as params to spread | ||
} | ||
results = regs.map(r => { | ||
let result; | ||
if (r.once) { | ||
removeRegItem(this, name, r.cb); | ||
} | ||
if (packValue) { | ||
@@ -171,11 +144,9 @@ result = r.cb(...packValue); | ||
} | ||
return result; | ||
}).filter(result => !isUndefined(result)).map(result => isPromise(result) ? result : Promise.resolve(result)); | ||
} | ||
return results && (results.length ? results : undefined); | ||
} //registry, events, stats become shared | ||
} | ||
//registry, events, stats become shared | ||
function assign(toObj) { | ||
@@ -186,9 +157,6 @@ const le = getValidLE(this); | ||
} | ||
function addEvent(name) { | ||
const le = getValidLE(this); | ||
if (le.options.canAddEvents) { | ||
const index = le.events.indexOf(name); | ||
if (!~index) { | ||
@@ -203,6 +171,4 @@ le.events.push(name); | ||
} | ||
function removeEvent(name) { | ||
const le = getValidLE(this); | ||
if (le.options.canRemoveEvents) { | ||
@@ -215,3 +181,2 @@ const index = le.events.indexOf(name); | ||
} | ||
function hasEvent(name) { | ||
@@ -221,10 +186,10 @@ const le = getValidLE(this); | ||
} | ||
function hasEventRegistrations(name) { | ||
return !!findRegistrations(this, name).length; | ||
} // function getStats(name?: any) { | ||
} | ||
// function getStats(name?: any) { | ||
// | ||
// } | ||
const defineLifeData = function (target, options) { | ||
@@ -235,2 +200,3 @@ let events = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; | ||
Object.defineProperties(target, { | ||
// $FlowIssue[invalid-computed-prop] - https://github.com/facebook/flow/issues/3258 | ||
[LESYM]: { | ||
@@ -247,19 +213,16 @@ value: Object.seal({ | ||
}; | ||
const addLife = function (target) { | ||
let events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; | ||
let options = arguments.length > 2 ? arguments[2] : undefined; | ||
target = target || {}; | ||
options = { ...defaults, | ||
const useTarget = target || {}; | ||
const usedOptions = { | ||
...defaults, | ||
...options | ||
}; | ||
if (!isLE(target)) { | ||
defineLifeData(target, options, events); | ||
if (!isLE(useTarget)) { | ||
defineLifeData(useTarget, usedOptions, events); | ||
} | ||
return createApi(target); | ||
return createApi(useTarget); | ||
}; | ||
export default addLife; | ||
export { isLE }; |
import { LE_PACK_SYM } from "./consts"; | ||
/** | ||
@@ -8,3 +9,2 @@ * create a pack that will only execute when there are registered event handlers | ||
*/ | ||
const createLifePack = creator => { | ||
@@ -20,3 +20,2 @@ const lp = { | ||
}; | ||
export default createLifePack; |
import { isFunction } from "@rpldy/shared"; | ||
const validateFunction = (f, name) => { | ||
@@ -8,5 +7,3 @@ if (!isFunction(f)) { | ||
}; | ||
const isUndefined = val => typeof val === "undefined"; | ||
export { validateFunction, isUndefined }; |
{ | ||
"version": "1.3.1", | ||
"version": "1.4.0-rc.0", | ||
"name": "@rpldy/life-events", | ||
@@ -31,6 +31,6 @@ "description": "events pub/sub management with return values", | ||
"dependencies": { | ||
"@rpldy/shared": "^1.3.1" | ||
"@rpldy/shared": "^1.4.0-rc.0" | ||
}, | ||
"devDependencies": { | ||
"flow-bin": "^0.182.0" | ||
"flow-bin": "^0.199.1" | ||
}, | ||
@@ -40,3 +40,3 @@ "publishConfig": { | ||
}, | ||
"gitHead": "8a2473ae6d9521c5f16f5ae525466075ac02fd1f" | ||
"gitHead": "96a9141aa17e74962f1606d836f8f9f5c4b7aef0" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
23037
586
1
Updated@rpldy/shared@^1.4.0-rc.0