@intlify/shared
Advanced tools
Comparing version 9.0.0 to 9.1.0
/*! | ||
* @intlify/shared v9.0.0 | ||
* @intlify/shared v9.1.0 | ||
* (c) 2021 kazuya kawaguchi | ||
@@ -15,2 +15,4 @@ * Released under the MIT License. | ||
const inBrowser = typeof window !== 'undefined'; | ||
exports.mark = void 0; | ||
exports.measure = void 0; | ||
{ | ||
@@ -64,2 +66,3 @@ const perf = inBrowser && window.performance; | ||
} | ||
const assign = Object.assign; | ||
let _globalThis; | ||
@@ -87,2 +90,6 @@ const getGlobalThis = () => { | ||
} | ||
const hasOwnProperty = Object.prototype.hasOwnProperty; | ||
function hasOwn(obj, key) { | ||
return hasOwnProperty.call(obj, key); | ||
} | ||
/* eslint-enable */ | ||
@@ -151,2 +158,45 @@ /** | ||
/** | ||
* Event emitter, forked from the below: | ||
* - original repository url: https://github.com/developit/mitt | ||
* - code url: https://github.com/developit/mitt/blob/master/src/index.ts | ||
* - author: Jason Miller (https://github.com/developit) | ||
* - license: MIT | ||
*/ | ||
/** | ||
* Create a event emitter | ||
* | ||
* @returns An event emitter | ||
*/ | ||
function createEmitter() { | ||
const events = new Map(); | ||
const emitter = { | ||
events, | ||
on(event, handler) { | ||
const handlers = events.get(event); | ||
const added = handlers && handlers.push(handler); | ||
if (!added) { | ||
events.set(event, [handler]); | ||
} | ||
}, | ||
off(event, handler) { | ||
const handlers = events.get(event); | ||
if (handlers) { | ||
handlers.splice(handlers.indexOf(handler) >>> 0, 1); | ||
} | ||
}, | ||
emit(event, payload) { | ||
(events.get(event) || []) | ||
.slice() | ||
.map(handler => handler(payload)); | ||
(events.get('*') || []) | ||
.slice() | ||
.map(handler => handler(event, payload)); | ||
} | ||
}; | ||
return emitter; | ||
} | ||
exports.assign = assign; | ||
exports.createEmitter = createEmitter; | ||
exports.escapeHtml = escapeHtml; | ||
@@ -158,2 +208,3 @@ exports.format = format; | ||
exports.getGlobalThis = getGlobalThis; | ||
exports.hasOwn = hasOwn; | ||
exports.inBrowser = inBrowser; | ||
@@ -160,0 +211,0 @@ exports.isArray = isArray; |
/*! | ||
* @intlify/shared v9.0.0 | ||
* @intlify/shared v9.1.0 | ||
* (c) 2021 kazuya kawaguchi | ||
@@ -50,2 +50,3 @@ * Released under the MIT License. | ||
} | ||
const assign = Object.assign; | ||
let _globalThis; | ||
@@ -73,2 +74,6 @@ const getGlobalThis = () => { | ||
} | ||
const hasOwnProperty = Object.prototype.hasOwnProperty; | ||
function hasOwn(obj, key) { | ||
return hasOwnProperty.call(obj, key); | ||
} | ||
/* eslint-enable */ | ||
@@ -137,2 +142,45 @@ /** | ||
/** | ||
* Event emitter, forked from the below: | ||
* - original repository url: https://github.com/developit/mitt | ||
* - code url: https://github.com/developit/mitt/blob/master/src/index.ts | ||
* - author: Jason Miller (https://github.com/developit) | ||
* - license: MIT | ||
*/ | ||
/** | ||
* Create a event emitter | ||
* | ||
* @returns An event emitter | ||
*/ | ||
function createEmitter() { | ||
const events = new Map(); | ||
const emitter = { | ||
events, | ||
on(event, handler) { | ||
const handlers = events.get(event); | ||
const added = handlers && handlers.push(handler); | ||
if (!added) { | ||
events.set(event, [handler]); | ||
} | ||
}, | ||
off(event, handler) { | ||
const handlers = events.get(event); | ||
if (handlers) { | ||
handlers.splice(handlers.indexOf(handler) >>> 0, 1); | ||
} | ||
}, | ||
emit(event, payload) { | ||
(events.get(event) || []) | ||
.slice() | ||
.map(handler => handler(payload)); | ||
(events.get('*') || []) | ||
.slice() | ||
.map(handler => handler(event, payload)); | ||
} | ||
}; | ||
return emitter; | ||
} | ||
exports.assign = assign; | ||
exports.createEmitter = createEmitter; | ||
exports.escapeHtml = escapeHtml; | ||
@@ -144,2 +192,3 @@ exports.format = format; | ||
exports.getGlobalThis = getGlobalThis; | ||
exports.hasOwn = hasOwn; | ||
exports.inBrowser = inBrowser; | ||
@@ -146,0 +195,0 @@ exports.isArray = isArray; |
export declare const assign: { | ||
<T, U>(target: T, source: U): T & U; | ||
<T_1, U_1, V>(target: T_1, source1: U_1, source2: V): T_1 & U_1 & V; | ||
<T_2, U_2, V_1, W>(target: T_2, source1: U_2, source2: V_1, source3: W): T_2 & U_2 & V_1 & W; | ||
(target: object, ...sources: any[]): any; | ||
}; | ||
/** | ||
* Create a event emitter | ||
* | ||
* @returns An event emitter | ||
*/ | ||
export declare function createEmitter<Events extends Record<EventType, unknown>>(): Emittable<Events>; | ||
/** | ||
* Event emitter interface | ||
*/ | ||
export declare interface Emittable<Events extends Record<EventType, unknown> = {}> { | ||
/** | ||
* A map of event names of registered event handlers | ||
*/ | ||
events: EventHandlerMap<Events>; | ||
/** | ||
* Register an event handler with the event type | ||
* | ||
* @param event - An {@link EventType} | ||
* @param handler - An {@link EventHandler}, or a {@link WildcardEventHandler} if you are specified "*" | ||
*/ | ||
on<Key extends keyof Events>(event: Key | '*', handler: EventHandler<Events[keyof Events]> | WildcardEventHandler<Events>): void; | ||
/** | ||
* Unregister an event handler for the event type | ||
* | ||
* @param event - An {@link EventType} | ||
* @param handler - An {@link EventHandler}, or a {@link WildcardEventHandler} if you are specified "*" | ||
*/ | ||
off<Key extends keyof Events>(event: Key | '*', handler: EventHandler<Events[keyof Events]> | WildcardEventHandler<Events>): void; | ||
/** | ||
* Invoke all handlers with the event type | ||
* | ||
* @remarks | ||
* Note Manually firing "*" handlers should be not supported | ||
* | ||
* @param event - An {@link EventType} | ||
* @param payload - An event payload, optional | ||
*/ | ||
emit<Key extends keyof Events>(event: Key, payload?: Events[keyof Events]): void; | ||
} | ||
export declare function escapeHtml(rawText: string): string; | ||
/** | ||
* Event handler | ||
*/ | ||
export declare type EventHandler<T = unknown> = (payload?: T) => void; | ||
/** | ||
* Event handler list | ||
*/ | ||
export declare type EventHandlerList<T = unknown> = Array<EventHandler<T>>; | ||
/** | ||
* Event handler map | ||
*/ | ||
export declare type EventHandlerMap<Events extends Record<EventType, unknown>> = Map<keyof Events | '*', EventHandlerList<Events[keyof Events]> | WildcardEventHandlerList<Events>>; | ||
/** | ||
* Event type | ||
*/ | ||
export declare type EventType = string | symbol; | ||
export declare function format(message: string, ...args: any): string; | ||
@@ -14,2 +82,4 @@ | ||
export declare function hasOwn(obj: object | Array<any>, key: string): boolean; | ||
/** | ||
@@ -66,2 +136,12 @@ * Original Utilities | ||
/** | ||
* Wildcard event handler | ||
*/ | ||
export declare type WildcardEventHandler<T = Record<string, unknown>> = (event: keyof T, payload?: T[keyof T]) => void; | ||
/** | ||
* Wildcard event handler list | ||
*/ | ||
export declare type WildcardEventHandlerList<T = Record<string, unknown>> = Array<WildcardEventHandler<T>>; | ||
export { } |
/*! | ||
* @intlify/shared v9.0.0 | ||
* @intlify/shared v9.1.0 | ||
* (c) 2021 kazuya kawaguchi | ||
@@ -61,2 +61,3 @@ * Released under the MIT License. | ||
} | ||
const assign = Object.assign; | ||
let _globalThis; | ||
@@ -84,2 +85,6 @@ const getGlobalThis = () => { | ||
} | ||
const hasOwnProperty = Object.prototype.hasOwnProperty; | ||
function hasOwn(obj, key) { | ||
return hasOwnProperty.call(obj, key); | ||
} | ||
/* eslint-enable */ | ||
@@ -148,2 +153,43 @@ /** | ||
export { escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn }; | ||
/** | ||
* Event emitter, forked from the below: | ||
* - original repository url: https://github.com/developit/mitt | ||
* - code url: https://github.com/developit/mitt/blob/master/src/index.ts | ||
* - author: Jason Miller (https://github.com/developit) | ||
* - license: MIT | ||
*/ | ||
/** | ||
* Create a event emitter | ||
* | ||
* @returns An event emitter | ||
*/ | ||
function createEmitter() { | ||
const events = new Map(); | ||
const emitter = { | ||
events, | ||
on(event, handler) { | ||
const handlers = events.get(event); | ||
const added = handlers && handlers.push(handler); | ||
if (!added) { | ||
events.set(event, [handler]); | ||
} | ||
}, | ||
off(event, handler) { | ||
const handlers = events.get(event); | ||
if (handlers) { | ||
handlers.splice(handlers.indexOf(handler) >>> 0, 1); | ||
} | ||
}, | ||
emit(event, payload) { | ||
(events.get(event) || []) | ||
.slice() | ||
.map(handler => handler(payload)); | ||
(events.get('*') || []) | ||
.slice() | ||
.map(handler => handler(event, payload)); | ||
} | ||
}; | ||
return emitter; | ||
} | ||
export { assign, createEmitter, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn }; |
{ | ||
"name": "@intlify/shared", | ||
"version": "9.0.0", | ||
"version": "9.1.0", | ||
"description": "@intlify/shared", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
@@ -9,4 +9,8 @@ # @intlify/shared | ||
- [@vue/shared](https://github.com/vuejs/vue-next/tree/master/packages/shared) | ||
- Author: Evan You | ||
- License: MIT | ||
- Useful Utilities at `utils.ts` | ||
- Author: Evan You | ||
- License: MIT | ||
- Event Emitter at `emitter.ts` and `emittable.ts` | ||
- Author: Jason Miller | ||
- License: MIT | ||
@@ -13,0 +17,0 @@ ## :copyright: License |
29486
728
19