@fluid-internal/client-utils 2.0.0-internal.6.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +20 -0
- package/.mocharc.js +12 -0
- package/CHANGELOG.md +3 -0
- package/LICENSE +21 -0
- package/README.md +70 -0
- package/api-extractor.json +16 -0
- package/dist/base64Encoding.d.ts +28 -0
- package/dist/base64Encoding.d.ts.map +1 -0
- package/dist/base64Encoding.js +43 -0
- package/dist/base64Encoding.js.map +1 -0
- package/dist/bufferBrowser.d.ts +81 -0
- package/dist/bufferBrowser.d.ts.map +1 -0
- package/dist/bufferBrowser.js +195 -0
- package/dist/bufferBrowser.js.map +1 -0
- package/dist/bufferNode.d.ts +58 -0
- package/dist/bufferNode.d.ts.map +1 -0
- package/dist/bufferNode.js +54 -0
- package/dist/bufferNode.js.map +1 -0
- package/dist/bufferShared.d.ts +12 -0
- package/dist/bufferShared.d.ts.map +1 -0
- package/dist/bufferShared.js +21 -0
- package/dist/bufferShared.js.map +1 -0
- package/dist/eventForwarder.d.ts +33 -0
- package/dist/eventForwarder.d.ts.map +1 -0
- package/dist/eventForwarder.js +98 -0
- package/dist/eventForwarder.js.map +1 -0
- package/dist/hashFileBrowser.d.ts +30 -0
- package/dist/hashFileBrowser.d.ts.map +1 -0
- package/dist/hashFileBrowser.js +95 -0
- package/dist/hashFileBrowser.js.map +1 -0
- package/dist/hashFileNode.d.ts +30 -0
- package/dist/hashFileNode.d.ts.map +1 -0
- package/dist/hashFileNode.js +60 -0
- package/dist/hashFileNode.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/indexBrowser.d.ts +8 -0
- package/dist/indexBrowser.d.ts.map +1 -0
- package/dist/indexBrowser.js +19 -0
- package/dist/indexBrowser.js.map +1 -0
- package/dist/indexNode.d.ts +8 -0
- package/dist/indexNode.d.ts.map +1 -0
- package/dist/indexNode.js +19 -0
- package/dist/indexNode.js.map +1 -0
- package/dist/performanceBrowser.d.ts +10 -0
- package/dist/performanceBrowser.d.ts.map +1 -0
- package/dist/performanceBrowser.js +12 -0
- package/dist/performanceBrowser.js.map +1 -0
- package/dist/performanceIsomorphic.d.ts +12 -0
- package/dist/performanceIsomorphic.d.ts.map +1 -0
- package/dist/performanceIsomorphic.js +7 -0
- package/dist/performanceIsomorphic.js.map +1 -0
- package/dist/performanceNode.d.ts +10 -0
- package/dist/performanceNode.d.ts.map +1 -0
- package/dist/performanceNode.js +14 -0
- package/dist/performanceNode.js.map +1 -0
- package/dist/trace.d.ts +40 -0
- package/dist/trace.d.ts.map +1 -0
- package/dist/trace.js +36 -0
- package/dist/trace.js.map +1 -0
- package/dist/tsdoc-metadata.json +11 -0
- package/dist/typedEventEmitter.d.ts +37 -0
- package/dist/typedEventEmitter.d.ts.map +1 -0
- package/dist/typedEventEmitter.js +27 -0
- package/dist/typedEventEmitter.js.map +1 -0
- package/jest-puppeteer.config.js +13 -0
- package/jest.config.js +20 -0
- package/lib/base64Encoding.d.ts +28 -0
- package/lib/base64Encoding.d.ts.map +1 -0
- package/lib/base64Encoding.js +37 -0
- package/lib/base64Encoding.js.map +1 -0
- package/lib/bufferBrowser.d.ts +81 -0
- package/lib/bufferBrowser.d.ts.map +1 -0
- package/lib/bufferBrowser.js +168 -0
- package/lib/bufferBrowser.js.map +1 -0
- package/lib/bufferNode.d.ts +58 -0
- package/lib/bufferNode.d.ts.map +1 -0
- package/lib/bufferNode.js +48 -0
- package/lib/bufferNode.js.map +1 -0
- package/lib/bufferShared.d.ts +12 -0
- package/lib/bufferShared.d.ts.map +1 -0
- package/lib/bufferShared.js +17 -0
- package/lib/bufferShared.js.map +1 -0
- package/lib/eventForwarder.d.ts +33 -0
- package/lib/eventForwarder.d.ts.map +1 -0
- package/lib/eventForwarder.js +94 -0
- package/lib/eventForwarder.js.map +1 -0
- package/lib/hashFileBrowser.d.ts +30 -0
- package/lib/hashFileBrowser.d.ts.map +1 -0
- package/lib/hashFileBrowser.js +71 -0
- package/lib/hashFileBrowser.js.map +1 -0
- package/lib/hashFileNode.d.ts +30 -0
- package/lib/hashFileNode.d.ts.map +1 -0
- package/lib/hashFileNode.js +52 -0
- package/lib/hashFileNode.js.map +1 -0
- package/lib/index.d.ts +20 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +21 -0
- package/lib/index.js.map +1 -0
- package/lib/indexBrowser.d.ts +8 -0
- package/lib/indexBrowser.d.ts.map +1 -0
- package/lib/indexBrowser.js +8 -0
- package/lib/indexBrowser.js.map +1 -0
- package/lib/indexNode.d.ts +8 -0
- package/lib/indexNode.d.ts.map +1 -0
- package/lib/indexNode.js +8 -0
- package/lib/indexNode.js.map +1 -0
- package/lib/performanceBrowser.d.ts +10 -0
- package/lib/performanceBrowser.d.ts.map +1 -0
- package/lib/performanceBrowser.js +9 -0
- package/lib/performanceBrowser.js.map +1 -0
- package/lib/performanceIsomorphic.d.ts +12 -0
- package/lib/performanceIsomorphic.d.ts.map +1 -0
- package/lib/performanceIsomorphic.js +6 -0
- package/lib/performanceIsomorphic.js.map +1 -0
- package/lib/performanceNode.d.ts +10 -0
- package/lib/performanceNode.d.ts.map +1 -0
- package/lib/performanceNode.js +11 -0
- package/lib/performanceNode.js.map +1 -0
- package/lib/trace.d.ts +40 -0
- package/lib/trace.d.ts.map +1 -0
- package/lib/trace.js +32 -0
- package/lib/trace.js.map +1 -0
- package/lib/typedEventEmitter.d.ts +37 -0
- package/lib/typedEventEmitter.d.ts.map +1 -0
- package/lib/typedEventEmitter.js +23 -0
- package/lib/typedEventEmitter.js.map +1 -0
- package/package.json +140 -0
- package/prettier.config.cjs +8 -0
- package/src/base64Encoding.ts +42 -0
- package/src/bufferBrowser.ts +188 -0
- package/src/bufferNode.ts +75 -0
- package/src/bufferShared.ts +17 -0
- package/src/eventForwarder.ts +120 -0
- package/src/hashFileBrowser.ts +82 -0
- package/src/hashFileNode.ts +59 -0
- package/src/index.ts +22 -0
- package/src/indexBrowser.ts +14 -0
- package/src/indexNode.ts +14 -0
- package/src/performanceBrowser.ts +11 -0
- package/src/performanceIsomorphic.ts +13 -0
- package/src/performanceNode.ts +13 -0
- package/src/trace.ts +58 -0
- package/src/typedEventEmitter.ts +76 -0
- package/tsconfig.esnext.json +7 -0
- package/tsconfig.json +14 -0
- package/types/perf_hooks.d.ts +10 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { EventEmitter } from "events";
|
|
7
|
+
import {
|
|
8
|
+
IEvent,
|
|
9
|
+
TransformedEvent,
|
|
10
|
+
IEventTransformer,
|
|
11
|
+
IEventProvider,
|
|
12
|
+
} from "@fluidframework/core-interfaces";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The event emitter polyfill and the node event emitter have different event types:
|
|
16
|
+
* string | symbol vs. string | number
|
|
17
|
+
*
|
|
18
|
+
* This type allow us to correctly handle either type
|
|
19
|
+
*
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export type EventEmitterEventType = EventEmitter extends { on(event: infer E, listener: any) }
|
|
23
|
+
? E
|
|
24
|
+
: never;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export type TypedEventTransform<TThis, TEvent> =
|
|
30
|
+
// Event emitter supports some special events for the emitter itself to use
|
|
31
|
+
// this exposes those events for the TypedEventEmitter.
|
|
32
|
+
// Since we know what the shape of these events are, we can describe them directly via a TransformedEvent
|
|
33
|
+
// which easier than trying to extend TEvent directly
|
|
34
|
+
TransformedEvent<
|
|
35
|
+
TThis,
|
|
36
|
+
"newListener" | "removeListener",
|
|
37
|
+
Parameters<(event: string, listener: (...args: any[]) => void) => void>
|
|
38
|
+
> &
|
|
39
|
+
// Expose all the events provides by TEvent
|
|
40
|
+
IEventTransformer<TThis, TEvent & IEvent> &
|
|
41
|
+
// Add the default overload so this is covertable to EventEmitter regardless of environment
|
|
42
|
+
TransformedEvent<TThis, EventEmitterEventType, any[]>;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Event Emitter helper class the supports emitting typed events
|
|
46
|
+
*
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
export class TypedEventEmitter<TEvent>
|
|
50
|
+
extends EventEmitter
|
|
51
|
+
implements IEventProvider<TEvent & IEvent>
|
|
52
|
+
{
|
|
53
|
+
constructor() {
|
|
54
|
+
super();
|
|
55
|
+
this.addListener = super.addListener.bind(this) as TypedEventTransform<this, TEvent>;
|
|
56
|
+
this.on = super.on.bind(this) as TypedEventTransform<this, TEvent>;
|
|
57
|
+
this.once = super.once.bind(this) as TypedEventTransform<this, TEvent>;
|
|
58
|
+
this.prependListener = super.prependListener.bind(this) as TypedEventTransform<
|
|
59
|
+
this,
|
|
60
|
+
TEvent
|
|
61
|
+
>;
|
|
62
|
+
this.prependOnceListener = super.prependOnceListener.bind(this) as TypedEventTransform<
|
|
63
|
+
this,
|
|
64
|
+
TEvent
|
|
65
|
+
>;
|
|
66
|
+
this.removeListener = super.removeListener.bind(this) as TypedEventTransform<this, TEvent>;
|
|
67
|
+
this.off = super.off.bind(this) as TypedEventTransform<this, TEvent>;
|
|
68
|
+
}
|
|
69
|
+
readonly addListener: TypedEventTransform<this, TEvent>;
|
|
70
|
+
readonly on: TypedEventTransform<this, TEvent>;
|
|
71
|
+
readonly once: TypedEventTransform<this, TEvent>;
|
|
72
|
+
readonly prependListener: TypedEventTransform<this, TEvent>;
|
|
73
|
+
readonly prependOnceListener: TypedEventTransform<this, TEvent>;
|
|
74
|
+
readonly removeListener: TypedEventTransform<this, TEvent>;
|
|
75
|
+
readonly off: TypedEventTransform<this, TEvent>;
|
|
76
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "@fluidframework/build-common/ts-common-config.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"rootDir": "./src",
|
|
5
|
+
"outDir": "./dist",
|
|
6
|
+
"composite": true,
|
|
7
|
+
"baseUrl": ".",
|
|
8
|
+
"paths": {
|
|
9
|
+
"perf_hooks": ["types/perf_hooks.d.ts"],
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
"include": ["src/**/*"],
|
|
13
|
+
"exclude": ["src/test/**/*"],
|
|
14
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/* eslint-disable unicorn/filename-case */
|
|
7
|
+
// This is needed instead of adding "node" to tsconfig types list.
|
|
8
|
+
declare module "perf_hooks" {
|
|
9
|
+
export const performance: import("../src/performanceIsomorphic").IsomorphicPerformance;
|
|
10
|
+
}
|