@snap/camera-kit 0.9.0 → 0.10.0
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/README.md +18 -15
- package/docs/html/assets/search.js +1 -1
- package/docs/html/classes/CameraKit.html +5 -3
- package/docs/html/classes/CameraKitSession.html +5 -4
- package/docs/html/classes/CameraKitSource.html +5 -3
- package/docs/html/classes/LensPerformanceMeasurement.html +5 -3
- package/docs/html/classes/LensPerformanceMetrics.html +5 -3
- package/docs/html/classes/LensRepository.html +5 -3
- package/docs/html/classes/LensSources.html +5 -3
- package/docs/html/classes/Transform2D.html +5 -3
- package/docs/html/classes/TypedCustomEvent.html +5 -3
- package/docs/html/classes/TypedEventTarget.html +5 -3
- package/docs/html/functions/Injectable.html +5 -3
- package/docs/html/functions/bootstrapCameraKit.html +5 -3
- package/docs/html/functions/createExtension.html +5 -3
- package/docs/html/functions/createImageSource.html +5 -3
- package/docs/html/functions/createMediaStreamSource.html +6 -4
- package/docs/html/functions/createUserMediaSource.html +9 -3
- package/docs/html/functions/createVideoSource.html +5 -3
- package/docs/html/functions/estimateLensPerformance.html +5 -3
- package/docs/html/functions/getRequiredBootstrapURLs.html +5 -3
- package/docs/html/functions/lensSourcesFactory.html +5 -3
- package/docs/html/functions/uriHandlersFactory.html +5 -3
- package/docs/html/index.html +11 -9
- package/docs/html/interfaces/CameraKitBootstrapConfiguration.html +5 -3
- package/docs/html/interfaces/CameraKitSourceSubscriber.html +5 -3
- package/docs/html/interfaces/ComputedFrameMetrics.html +5 -3
- package/docs/html/interfaces/CreateSessionOptions.html +5 -3
- package/docs/html/interfaces/EstimatedLensPerformance.html +5 -3
- package/docs/html/interfaces/Lens.html +16 -6
- package/docs/html/interfaces/LensSource.html +5 -3
- package/docs/html/interfaces/MediaStreamSourceOptions.html +5 -3
- package/docs/html/interfaces/Preview.html +133 -0
- package/docs/html/interfaces/Snapcode.html +140 -0
- package/docs/html/interfaces/UriCancelRequest.html +5 -3
- package/docs/html/interfaces/UriHandler.html +5 -3
- package/docs/html/interfaces/UriRequest.html +5 -3
- package/docs/html/interfaces/UriResponse.html +5 -3
- package/docs/html/interfaces/VideoSourceOptions.html +5 -3
- package/docs/html/modules.html +8 -4
- package/docs/html/types/AssetLoader.html +5 -3
- package/docs/html/types/AssetTiming.html +5 -3
- package/docs/html/types/BenchmarkError.html +5 -3
- package/docs/html/types/BootstrapError.html +5 -3
- package/docs/html/types/CacheKeyNotFoundError.html +5 -3
- package/docs/html/types/CameraKitDeviceInfo.html +5 -3
- package/docs/html/types/CameraKitSessionEventListener.html +5 -3
- package/docs/html/types/CameraKitSessionEvents.html +5 -3
- package/docs/html/types/CameraKitSourceError.html +5 -3
- package/docs/html/types/CameraKitSourceInfo.html +5 -3
- package/docs/html/types/CameraKitSourceOptions.html +5 -3
- package/docs/html/types/ConfigurationError.html +5 -3
- package/docs/html/types/Keyboard.html +5 -3
- package/docs/html/types/KeyboardEvents.html +5 -3
- package/docs/html/types/LegalError.html +5 -3
- package/docs/html/types/LensAssetError.html +5 -3
- package/docs/html/types/LensContentValidationError.html +5 -3
- package/docs/html/types/LensError.html +5 -3
- package/docs/html/types/LensExecutionError.html +5 -3
- package/docs/html/types/LensImagePickerError.html +5 -3
- package/docs/html/types/LensLaunchParams.html +5 -3
- package/docs/html/types/LensMetricsEvents.html +5 -3
- package/docs/html/types/LensPerformanceCluster.html +5 -3
- package/docs/html/types/LensView.html +5 -3
- package/docs/html/types/LensWait.html +5 -3
- package/docs/html/types/PersistentStoreError.html +5 -3
- package/docs/html/types/PlatformNotSupportedError.html +5 -3
- package/docs/html/types/PublicContainer.html +5 -3
- package/docs/html/types/RenderTarget.html +5 -3
- package/docs/html/types/Uri.html +5 -3
- package/docs/html/types/UriHandlers.html +5 -3
- package/docs/html/types/WebGLError.html +5 -3
- package/docs/html/variables/extensionRequestContext.html +5 -3
- package/docs/md/README.md +18 -15
- package/docs/md/classes/CameraKit.md +1 -1
- package/docs/md/classes/CameraKitSession.md +1 -2
- package/docs/md/classes/CameraKitSource.md +1 -1
- package/docs/md/classes/LensPerformanceMeasurement.md +1 -1
- package/docs/md/classes/LensPerformanceMetrics.md +1 -1
- package/docs/md/classes/LensRepository.md +1 -1
- package/docs/md/classes/LensSources.md +1 -1
- package/docs/md/classes/Transform2D.md +1 -1
- package/docs/md/classes/TypedCustomEvent.md +1 -1
- package/docs/md/classes/TypedEventTarget.md +1 -1
- package/docs/md/interfaces/CameraKitBootstrapConfiguration.md +1 -1
- package/docs/md/interfaces/CameraKitSourceSubscriber.md +1 -1
- package/docs/md/interfaces/ComputedFrameMetrics.md +1 -1
- package/docs/md/interfaces/CreateSessionOptions.md +1 -1
- package/docs/md/interfaces/EstimatedLensPerformance.md +1 -1
- package/docs/md/interfaces/Lens.md +14 -3
- package/docs/md/interfaces/LensSource.md +1 -1
- package/docs/md/interfaces/MediaStreamSourceOptions.md +1 -1
- package/docs/md/interfaces/Preview.md +19 -0
- package/docs/md/interfaces/Snapcode.md +28 -0
- package/docs/md/interfaces/UriCancelRequest.md +1 -1
- package/docs/md/interfaces/UriHandler.md +1 -1
- package/docs/md/interfaces/UriRequest.md +1 -1
- package/docs/md/interfaces/UriResponse.md +1 -1
- package/docs/md/interfaces/VideoSourceOptions.md +1 -1
- package/docs/md/modules.md +11 -3
- package/lib/CameraKit.d.ts +10 -6
- package/lib/CameraKit.js +2 -1
- package/lib/CameraKit.js.map +1 -1
- package/lib/__tests__/data.js +9 -1
- package/lib/__tests__/data.js.map +1 -1
- package/lib/assertPlatformSupported.js +1 -1
- package/lib/assertPlatformSupported.js.map +1 -1
- package/lib/benchmark/webglUtils.js +2 -2
- package/lib/benchmark/webglUtils.js.map +1 -1
- package/lib/bootstrapCameraKit.js +4 -2
- package/lib/bootstrapCameraKit.js.map +1 -1
- package/lib/common/validate.js +2 -2
- package/lib/common/validate.js.map +1 -1
- package/lib/dependency-injection/RootServices.d.ts +2 -0
- package/lib/dependency-injection/RootServices.js.map +1 -1
- package/lib/environment.json +1 -1
- package/lib/events/scan.js +1 -1
- package/lib/events/scan.js.map +1 -1
- package/lib/generated-proto/pb_schema/camera_kit/v3/business_events.d.ts +17 -0
- package/lib/generated-proto/pb_schema/camera_kit/v3/business_events.js +63 -1
- package/lib/generated-proto/pb_schema/camera_kit/v3/business_events.js.map +1 -1
- package/lib/generated-proto/pb_schema/camera_kit/v3/export.d.ts +38 -1
- package/lib/generated-proto/pb_schema/camera_kit/v3/lens.d.ts +64 -3
- package/lib/generated-proto/pb_schema/camera_kit/v3/lens.js +70 -2
- package/lib/generated-proto/pb_schema/camera_kit/v3/lens.js.map +1 -1
- package/lib/generated-proto/pb_schema/camera_kit/v3/service.d.ts +457 -3
- package/lib/generated-proto/pb_schema/camera_kit/v3/service.js +109 -3
- package/lib/generated-proto/pb_schema/camera_kit/v3/service.js.map +1 -1
- package/lib/generated-proto/pb_schema/cdp/cof/circumstance_service.d.ts +1339 -1852
- package/lib/generated-proto/pb_schema/cdp/cof/circumstance_service.js +55 -132
- package/lib/generated-proto/pb_schema/cdp/cof/circumstance_service.js.map +1 -1
- package/lib/generated-proto/pb_schema/cdp/cof/config_request.d.ts +8 -1
- package/lib/generated-proto/pb_schema/cdp/cof/config_request.js.map +1 -1
- package/lib/generated-proto/pb_schema/cdp/cof/config_response.d.ts +181 -0
- package/lib/generated-proto/pb_schema/cdp/cof/config_result.d.ts +406 -0
- package/lib/generated-proto/pb_schema/cdp/cof/config_result.js +42 -0
- package/lib/generated-proto/pb_schema/cdp/cof/config_result.js.map +1 -1
- package/lib/generated-proto/pb_schema/common/ruid.d.ts +2 -0
- package/lib/generated-proto/pb_schema/common/ruid.js +2 -0
- package/lib/generated-proto/pb_schema/common/ruid.js.map +1 -1
- package/lib/generated-proto/pb_schema/common/value.d.ts +22 -0
- package/lib/generated-proto/pb_schema/common/value.js +45 -0
- package/lib/generated-proto/pb_schema/common/value.js.map +1 -1
- package/lib/generated-proto/pb_schema/lenses/launchdata.d.ts +2 -0
- package/lib/generated-proto/pb_schema/lenses/launchdata.js +12 -0
- package/lib/generated-proto/pb_schema/lenses/launchdata.js.map +1 -1
- package/lib/handlers/HandlerChainBuilder.d.ts +15 -0
- package/lib/handlers/HandlerChainBuilder.js +8 -1
- package/lib/handlers/HandlerChainBuilder.js.map +1 -1
- package/lib/handlers/requestStateEmittingHandler.d.ts +18 -5
- package/lib/handlers/requestStateEmittingHandler.js +12 -8
- package/lib/handlers/requestStateEmittingHandler.js.map +1 -1
- package/lib/handlers/responseCachingHandler.d.ts +10 -2
- package/lib/handlers/responseCachingHandler.js +13 -4
- package/lib/handlers/responseCachingHandler.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js.map +1 -1
- package/lib/lens/Lens.d.ts +32 -3
- package/lib/lens/Lens.js +10 -3
- package/lib/lens/Lens.js.map +1 -1
- package/lib/lens/LensLaunchParams.js +6 -4
- package/lib/lens/LensLaunchParams.js.map +1 -1
- package/lib/lens/LensPersistenceStore.js +1 -1
- package/lib/lens/LensPersistenceStore.js.map +1 -1
- package/lib/lens/LensRepository.d.ts +3 -2
- package/lib/lens/LensRepository.js +6 -5
- package/lib/lens/LensRepository.js.map +1 -1
- package/lib/lens/assets/LensAssetRepository.d.ts +5 -3
- package/lib/lens/assets/LensAssetRepository.js +21 -12
- package/lib/lens/assets/LensAssetRepository.js.map +1 -1
- package/lib/lens/assets/LensAssetsProvider.js +1 -1
- package/lib/lens/assets/LensAssetsProvider.js.map +1 -1
- package/lib/lens/lensEnvelopeUtil.js +1 -1
- package/lib/lens/lensEnvelopeUtil.js.map +1 -1
- package/lib/lens-client-interface/imagePicker.js +2 -2
- package/lib/lens-client-interface/imagePicker.js.map +1 -1
- package/lib/lens-client-interface/lensClientInterface.js +1 -1
- package/lib/lens-client-interface/lensClientInterface.js.map +1 -1
- package/lib/lens-core-module/loader/lensCoreFactory.js +1 -1
- package/lib/lens-core-module/loader/lensCoreFactory.js.map +1 -1
- package/lib/lensCoreWasmVersions.json +3 -3
- package/lib/media-sources/FunctionSource.js +1 -1
- package/lib/media-sources/FunctionSource.js.map +1 -1
- package/lib/media-sources/MediaStreamSource.d.ts +5 -1
- package/lib/media-sources/MediaStreamSource.js +30 -6
- package/lib/media-sources/MediaStreamSource.js.map +1 -1
- package/lib/metrics/reporters/reportHttpMetrics.d.ts +3 -3
- package/lib/metrics/reporters/reportHttpMetrics.js +2 -2
- package/lib/metrics/reporters/reportHttpMetrics.js.map +1 -1
- package/lib/metrics/reporters/reportLensAndAssetDownload.d.ts +3 -3
- package/lib/metrics/reporters/reportLensAndAssetDownload.js +6 -2
- package/lib/metrics/reporters/reportLensAndAssetDownload.js.map +1 -1
- package/lib/metrics/reporters/reporters.d.ts +3 -2
- package/lib/remote-configuration/cofHandler.d.ts +4 -1
- package/lib/remote-configuration/cofHandler.js +10 -6
- package/lib/remote-configuration/cofHandler.js.map +1 -1
- package/lib/remote-configuration/remoteConfiguration.d.ts +5 -3
- package/lib/remote-configuration/remoteConfiguration.js +6 -4
- package/lib/remote-configuration/remoteConfiguration.js.map +1 -1
- package/lib/session/CameraKitSession.d.ts +0 -1
- package/lib/session/CameraKitSession.js +4 -4
- package/lib/session/CameraKitSession.js.map +1 -1
- package/lib/session/lensState.js +2 -3
- package/lib/session/lensState.js.map +1 -1
- package/package.json +1 -1
|
@@ -78,6 +78,40 @@ export const MapRecords = {
|
|
|
78
78
|
return message;
|
|
79
79
|
},
|
|
80
80
|
};
|
|
81
|
+
function createBaseStringArray() {
|
|
82
|
+
return { value: [] };
|
|
83
|
+
}
|
|
84
|
+
export const StringArray = {
|
|
85
|
+
encode(message, writer = _m0.Writer.create()) {
|
|
86
|
+
for (const v of message.value) {
|
|
87
|
+
writer.uint32(10).string(v);
|
|
88
|
+
}
|
|
89
|
+
return writer;
|
|
90
|
+
},
|
|
91
|
+
decode(input, length) {
|
|
92
|
+
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
|
|
93
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
94
|
+
const message = createBaseStringArray();
|
|
95
|
+
while (reader.pos < end) {
|
|
96
|
+
const tag = reader.uint32();
|
|
97
|
+
switch (tag >>> 3) {
|
|
98
|
+
case 1:
|
|
99
|
+
message.value.push(reader.string());
|
|
100
|
+
break;
|
|
101
|
+
default:
|
|
102
|
+
reader.skipType(tag & 7);
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return message;
|
|
107
|
+
},
|
|
108
|
+
fromPartial(object) {
|
|
109
|
+
var _a;
|
|
110
|
+
const message = createBaseStringArray();
|
|
111
|
+
message.value = ((_a = object.value) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
|
|
112
|
+
return message;
|
|
113
|
+
},
|
|
114
|
+
};
|
|
81
115
|
function createBaseValue() {
|
|
82
116
|
return {
|
|
83
117
|
intValue: undefined,
|
|
@@ -89,6 +123,7 @@ function createBaseValue() {
|
|
|
89
123
|
anyValue: undefined,
|
|
90
124
|
mapValue: undefined,
|
|
91
125
|
intPairValue: undefined,
|
|
126
|
+
stringArrayValue: undefined,
|
|
92
127
|
};
|
|
93
128
|
}
|
|
94
129
|
export const Value = {
|
|
@@ -120,6 +155,9 @@ export const Value = {
|
|
|
120
155
|
if (message.intPairValue !== undefined) {
|
|
121
156
|
writer.uint32(65).fixed64(message.intPairValue);
|
|
122
157
|
}
|
|
158
|
+
if (message.stringArrayValue !== undefined) {
|
|
159
|
+
StringArray.encode(message.stringArrayValue, writer.uint32(82).fork()).ldelim();
|
|
160
|
+
}
|
|
123
161
|
return writer;
|
|
124
162
|
},
|
|
125
163
|
decode(input, length) {
|
|
@@ -156,6 +194,9 @@ export const Value = {
|
|
|
156
194
|
case 8:
|
|
157
195
|
message.intPairValue = longToNumber(reader.fixed64());
|
|
158
196
|
break;
|
|
197
|
+
case 10:
|
|
198
|
+
message.stringArrayValue = StringArray.decode(reader, reader.uint32());
|
|
199
|
+
break;
|
|
159
200
|
default:
|
|
160
201
|
reader.skipType(tag & 7);
|
|
161
202
|
break;
|
|
@@ -177,6 +218,10 @@ export const Value = {
|
|
|
177
218
|
message.mapValue =
|
|
178
219
|
object.mapValue !== undefined && object.mapValue !== null ? MapRecords.fromPartial(object.mapValue) : undefined;
|
|
179
220
|
message.intPairValue = (_g = object.intPairValue) !== null && _g !== void 0 ? _g : undefined;
|
|
221
|
+
message.stringArrayValue =
|
|
222
|
+
object.stringArrayValue !== undefined && object.stringArrayValue !== null
|
|
223
|
+
? StringArray.fromPartial(object.stringArrayValue)
|
|
224
|
+
: undefined;
|
|
180
225
|
return message;
|
|
181
226
|
},
|
|
182
227
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value.js","sourceRoot":"","sources":["../../../../src/generated-proto/pb_schema/common/value.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable */\nimport Long from \"long\";\nimport _m0 from \"protobufjs/minimal\";\nimport { Any } from \"../google/protobuf/any\";\n\nexport const protobufPackage = \"snapchat.common\";\n\nexport interface MapRecord {\n key: string;\n value: string;\n}\n\nexport interface MapRecords {\n records: MapRecord[];\n}\n\n/**\n * `Value` represents a dynamically typed value which can be one of int, long, float, bool,\n * string or Any which represents a serialized proto.\n */\nexport interface Value {\n intValue: number | undefined;\n longValue: number | undefined;\n floatValue: number | undefined;\n doubleValue: number | undefined;\n boolValue: boolean | undefined;\n stringValue: string | undefined;\n anyValue: Any | undefined;\n mapValue: MapRecords | undefined;\n /**\n * Because resolution is used so often we pack it into a long.\n * We add this type here to help us identify when a long is a resolution.\n */\n intPairValue: number | undefined;\n}\n\nfunction createBaseMapRecord(): MapRecord {\n return { key: \"\", value: \"\" };\n}\n\nexport const MapRecord = {\n encode(message: MapRecord, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MapRecord {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMapRecord();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromPartial<I extends Exact<DeepPartial<MapRecord>, I>>(object: I): MapRecord {\n const message = createBaseMapRecord();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMapRecords(): MapRecords {\n return { records: [] };\n}\n\nexport const MapRecords = {\n encode(message: MapRecords, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n for (const v of message.records) {\n MapRecord.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MapRecords {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMapRecords();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.records.push(MapRecord.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromPartial<I extends Exact<DeepPartial<MapRecords>, I>>(object: I): MapRecords {\n const message = createBaseMapRecords();\n message.records = object.records?.map((e) => MapRecord.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseValue(): Value {\n return {\n intValue: undefined,\n longValue: undefined,\n floatValue: undefined,\n doubleValue: undefined,\n boolValue: undefined,\n stringValue: undefined,\n anyValue: undefined,\n mapValue: undefined,\n intPairValue: undefined,\n };\n}\n\nexport const Value = {\n encode(message: Value, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.intValue !== undefined) {\n writer.uint32(8).int32(message.intValue);\n }\n if (message.longValue !== undefined) {\n writer.uint32(16).int64(message.longValue);\n }\n if (message.floatValue !== undefined) {\n writer.uint32(29).float(message.floatValue);\n }\n if (message.doubleValue !== undefined) {\n writer.uint32(73).double(message.doubleValue);\n }\n if (message.boolValue !== undefined) {\n writer.uint32(32).bool(message.boolValue);\n }\n if (message.stringValue !== undefined) {\n writer.uint32(42).string(message.stringValue);\n }\n if (message.anyValue !== undefined) {\n Any.encode(message.anyValue, writer.uint32(50).fork()).ldelim();\n }\n if (message.mapValue !== undefined) {\n MapRecords.encode(message.mapValue, writer.uint32(58).fork()).ldelim();\n }\n if (message.intPairValue !== undefined) {\n writer.uint32(65).fixed64(message.intPairValue);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Value {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValue();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.intValue = reader.int32();\n break;\n case 2:\n message.longValue = longToNumber(reader.int64() as Long);\n break;\n case 3:\n message.floatValue = reader.float();\n break;\n case 9:\n message.doubleValue = reader.double();\n break;\n case 4:\n message.boolValue = reader.bool();\n break;\n case 5:\n message.stringValue = reader.string();\n break;\n case 6:\n message.anyValue = Any.decode(reader, reader.uint32());\n break;\n case 7:\n message.mapValue = MapRecords.decode(reader, reader.uint32());\n break;\n case 8:\n message.intPairValue = longToNumber(reader.fixed64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromPartial<I extends Exact<DeepPartial<Value>, I>>(object: I): Value {\n const message = createBaseValue();\n message.intValue = object.intValue ?? undefined;\n message.longValue = object.longValue ?? undefined;\n message.floatValue = object.floatValue ?? undefined;\n message.doubleValue = object.doubleValue ?? undefined;\n message.boolValue = object.boolValue ?? undefined;\n message.stringValue = object.stringValue ?? undefined;\n message.anyValue =\n object.anyValue !== undefined && object.anyValue !== null ? Any.fromPartial(object.anyValue) : undefined;\n message.mapValue =\n object.mapValue !== undefined && object.mapValue !== null ? MapRecords.fromPartial(object.mapValue) : undefined;\n message.intPairValue = object.intPairValue ?? undefined;\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin\n ? T\n : T extends Array<infer U>\n ? Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U>\n ? ReadonlyArray<DeepPartial<U>>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;\n\nfunction longToNumber(long: Long): number {\n if (long.gt(Number.MAX_SAFE_INTEGER)) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n return long.toNumber();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n"]}
|
|
1
|
+
{"version":3,"file":"value.js","sourceRoot":"","sources":["../../../../src/generated-proto/pb_schema/common/value.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable */\nimport Long from \"long\";\nimport _m0 from \"protobufjs/minimal\";\nimport { Any } from \"../google/protobuf/any\";\n\nexport const protobufPackage = \"snapchat.common\";\n\nexport interface MapRecord {\n key: string;\n value: string;\n}\n\nexport interface MapRecords {\n records: MapRecord[];\n}\n\nexport interface StringArray {\n value: string[];\n}\n\n/**\n * `Value` represents a dynamically typed value which can be one of int, long, float, bool,\n * string or Any which represents a serialized proto.\n */\nexport interface Value {\n intValue: number | undefined;\n longValue: number | undefined;\n floatValue: number | undefined;\n doubleValue: number | undefined;\n boolValue: boolean | undefined;\n stringValue: string | undefined;\n anyValue: Any | undefined;\n mapValue: MapRecords | undefined;\n /**\n * Because resolution is used so often we pack it into a long.\n * We add this type here to help us identify when a long is a resolution.\n */\n intPairValue: number | undefined;\n /** NOTE: this is not supported through COF CMS directly at the moment. Consumers still need to parse this as proto */\n stringArrayValue: StringArray | undefined;\n}\n\nfunction createBaseMapRecord(): MapRecord {\n return { key: \"\", value: \"\" };\n}\n\nexport const MapRecord = {\n encode(message: MapRecord, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MapRecord {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMapRecord();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromPartial<I extends Exact<DeepPartial<MapRecord>, I>>(object: I): MapRecord {\n const message = createBaseMapRecord();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMapRecords(): MapRecords {\n return { records: [] };\n}\n\nexport const MapRecords = {\n encode(message: MapRecords, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n for (const v of message.records) {\n MapRecord.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MapRecords {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMapRecords();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.records.push(MapRecord.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromPartial<I extends Exact<DeepPartial<MapRecords>, I>>(object: I): MapRecords {\n const message = createBaseMapRecords();\n message.records = object.records?.map((e) => MapRecord.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseStringArray(): StringArray {\n return { value: [] };\n}\n\nexport const StringArray = {\n encode(message: StringArray, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n for (const v of message.value) {\n writer.uint32(10).string(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): StringArray {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStringArray();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.value.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromPartial<I extends Exact<DeepPartial<StringArray>, I>>(object: I): StringArray {\n const message = createBaseStringArray();\n message.value = object.value?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseValue(): Value {\n return {\n intValue: undefined,\n longValue: undefined,\n floatValue: undefined,\n doubleValue: undefined,\n boolValue: undefined,\n stringValue: undefined,\n anyValue: undefined,\n mapValue: undefined,\n intPairValue: undefined,\n stringArrayValue: undefined,\n };\n}\n\nexport const Value = {\n encode(message: Value, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.intValue !== undefined) {\n writer.uint32(8).int32(message.intValue);\n }\n if (message.longValue !== undefined) {\n writer.uint32(16).int64(message.longValue);\n }\n if (message.floatValue !== undefined) {\n writer.uint32(29).float(message.floatValue);\n }\n if (message.doubleValue !== undefined) {\n writer.uint32(73).double(message.doubleValue);\n }\n if (message.boolValue !== undefined) {\n writer.uint32(32).bool(message.boolValue);\n }\n if (message.stringValue !== undefined) {\n writer.uint32(42).string(message.stringValue);\n }\n if (message.anyValue !== undefined) {\n Any.encode(message.anyValue, writer.uint32(50).fork()).ldelim();\n }\n if (message.mapValue !== undefined) {\n MapRecords.encode(message.mapValue, writer.uint32(58).fork()).ldelim();\n }\n if (message.intPairValue !== undefined) {\n writer.uint32(65).fixed64(message.intPairValue);\n }\n if (message.stringArrayValue !== undefined) {\n StringArray.encode(message.stringArrayValue, writer.uint32(82).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Value {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValue();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.intValue = reader.int32();\n break;\n case 2:\n message.longValue = longToNumber(reader.int64() as Long);\n break;\n case 3:\n message.floatValue = reader.float();\n break;\n case 9:\n message.doubleValue = reader.double();\n break;\n case 4:\n message.boolValue = reader.bool();\n break;\n case 5:\n message.stringValue = reader.string();\n break;\n case 6:\n message.anyValue = Any.decode(reader, reader.uint32());\n break;\n case 7:\n message.mapValue = MapRecords.decode(reader, reader.uint32());\n break;\n case 8:\n message.intPairValue = longToNumber(reader.fixed64() as Long);\n break;\n case 10:\n message.stringArrayValue = StringArray.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromPartial<I extends Exact<DeepPartial<Value>, I>>(object: I): Value {\n const message = createBaseValue();\n message.intValue = object.intValue ?? undefined;\n message.longValue = object.longValue ?? undefined;\n message.floatValue = object.floatValue ?? undefined;\n message.doubleValue = object.doubleValue ?? undefined;\n message.boolValue = object.boolValue ?? undefined;\n message.stringValue = object.stringValue ?? undefined;\n message.anyValue =\n object.anyValue !== undefined && object.anyValue !== null ? Any.fromPartial(object.anyValue) : undefined;\n message.mapValue =\n object.mapValue !== undefined && object.mapValue !== null ? MapRecords.fromPartial(object.mapValue) : undefined;\n message.intPairValue = object.intPairValue ?? undefined;\n message.stringArrayValue =\n object.stringArrayValue !== undefined && object.stringArrayValue !== null\n ? StringArray.fromPartial(object.stringArrayValue)\n : undefined;\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin\n ? T\n : T extends Array<infer U>\n ? Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U>\n ? ReadonlyArray<DeepPartial<U>>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;\n\nfunction longToNumber(long: Long): number {\n if (long.gt(Number.MAX_SAFE_INTEGER)) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n return long.toNumber();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n"]}
|
|
@@ -23,6 +23,8 @@ export declare enum LaunchData_EntryPoint {
|
|
|
23
23
|
PREVIEW_CANCEL = "PREVIEW_CANCEL",
|
|
24
24
|
MAP = "MAP",
|
|
25
25
|
BITMOJI_STICKERS = "BITMOJI_STICKERS",
|
|
26
|
+
POST_CAPTURE_PREVIEW = "POST_CAPTURE_PREVIEW",
|
|
27
|
+
POST_CAPTURE_TRANSCODING = "POST_CAPTURE_TRANSCODING",
|
|
26
28
|
UNRECOGNIZED = "UNRECOGNIZED"
|
|
27
29
|
}
|
|
28
30
|
export declare function launchData_EntryPointFromJSON(object: any): LaunchData_EntryPoint;
|
|
@@ -16,6 +16,8 @@ export var LaunchData_EntryPoint;
|
|
|
16
16
|
LaunchData_EntryPoint["PREVIEW_CANCEL"] = "PREVIEW_CANCEL";
|
|
17
17
|
LaunchData_EntryPoint["MAP"] = "MAP";
|
|
18
18
|
LaunchData_EntryPoint["BITMOJI_STICKERS"] = "BITMOJI_STICKERS";
|
|
19
|
+
LaunchData_EntryPoint["POST_CAPTURE_PREVIEW"] = "POST_CAPTURE_PREVIEW";
|
|
20
|
+
LaunchData_EntryPoint["POST_CAPTURE_TRANSCODING"] = "POST_CAPTURE_TRANSCODING";
|
|
19
21
|
LaunchData_EntryPoint["UNRECOGNIZED"] = "UNRECOGNIZED";
|
|
20
22
|
})(LaunchData_EntryPoint || (LaunchData_EntryPoint = {}));
|
|
21
23
|
export function launchData_EntryPointFromJSON(object) {
|
|
@@ -41,6 +43,12 @@ export function launchData_EntryPointFromJSON(object) {
|
|
|
41
43
|
case 6:
|
|
42
44
|
case "BITMOJI_STICKERS":
|
|
43
45
|
return LaunchData_EntryPoint.BITMOJI_STICKERS;
|
|
46
|
+
case 7:
|
|
47
|
+
case "POST_CAPTURE_PREVIEW":
|
|
48
|
+
return LaunchData_EntryPoint.POST_CAPTURE_PREVIEW;
|
|
49
|
+
case 8:
|
|
50
|
+
case "POST_CAPTURE_TRANSCODING":
|
|
51
|
+
return LaunchData_EntryPoint.POST_CAPTURE_TRANSCODING;
|
|
44
52
|
case -1:
|
|
45
53
|
case "UNRECOGNIZED":
|
|
46
54
|
default:
|
|
@@ -63,6 +71,10 @@ export function launchData_EntryPointToNumber(object) {
|
|
|
63
71
|
return 5;
|
|
64
72
|
case LaunchData_EntryPoint.BITMOJI_STICKERS:
|
|
65
73
|
return 6;
|
|
74
|
+
case LaunchData_EntryPoint.POST_CAPTURE_PREVIEW:
|
|
75
|
+
return 7;
|
|
76
|
+
case LaunchData_EntryPoint.POST_CAPTURE_TRANSCODING:
|
|
77
|
+
return 8;
|
|
66
78
|
default:
|
|
67
79
|
return 0;
|
|
68
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchdata.js","sourceRoot":"","sources":["../../../../src/generated-proto/pb_schema/lenses/launchdata.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable */\nimport Long from \"long\";\nimport _m0 from \"protobufjs/minimal\";\nimport { Snappable } from \"./snappable\";\nimport { Lures } from \"./lures\";\nimport { UserData } from \"./user_data\";\nimport { PersistentStore } from \"./persistent_store\";\nimport { LaunchParams } from \"./launch_params\";\n\nexport const protobufPackage = \"snapchat.lenses\";\n\nexport interface LaunchData {\n snappable: Snappable | undefined;\n lures: Lures | undefined;\n userId: string;\n entryPoint: LaunchData_EntryPoint;\n userData: UserData | undefined;\n persistentStore: PersistentStore | undefined;\n launchParams: LaunchParams | undefined;\n apiDescriptors: LaunchData_ApiDescriptor[];\n}\n\nexport enum LaunchData_EntryPoint {\n LIVE_CAMERA = \"LIVE_CAMERA\",\n STORY_REPLY = \"STORY_REPLY\",\n CHAT_REPLY = \"CHAT_REPLY\",\n RESTART = \"RESTART\",\n PREVIEW_CANCEL = \"PREVIEW_CANCEL\",\n MAP = \"MAP\",\n BITMOJI_STICKERS = \"BITMOJI_STICKERS\",\n UNRECOGNIZED = \"UNRECOGNIZED\",\n}\n\nexport function launchData_EntryPointFromJSON(object: any): LaunchData_EntryPoint {\n switch (object) {\n case 0:\n case \"LIVE_CAMERA\":\n return LaunchData_EntryPoint.LIVE_CAMERA;\n case 1:\n case \"STORY_REPLY\":\n return LaunchData_EntryPoint.STORY_REPLY;\n case 2:\n case \"CHAT_REPLY\":\n return LaunchData_EntryPoint.CHAT_REPLY;\n case 3:\n case \"RESTART\":\n return LaunchData_EntryPoint.RESTART;\n case 4:\n case \"PREVIEW_CANCEL\":\n return LaunchData_EntryPoint.PREVIEW_CANCEL;\n case 5:\n case \"MAP\":\n return LaunchData_EntryPoint.MAP;\n case 6:\n case \"BITMOJI_STICKERS\":\n return LaunchData_EntryPoint.BITMOJI_STICKERS;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return LaunchData_EntryPoint.UNRECOGNIZED;\n }\n}\n\nexport function launchData_EntryPointToNumber(object: LaunchData_EntryPoint): number {\n switch (object) {\n case LaunchData_EntryPoint.LIVE_CAMERA:\n return 0;\n case LaunchData_EntryPoint.STORY_REPLY:\n return 1;\n case LaunchData_EntryPoint.CHAT_REPLY:\n return 2;\n case LaunchData_EntryPoint.RESTART:\n return 3;\n case LaunchData_EntryPoint.PREVIEW_CANCEL:\n return 4;\n case LaunchData_EntryPoint.MAP:\n return 5;\n case LaunchData_EntryPoint.BITMOJI_STICKERS:\n return 6;\n default:\n return 0;\n }\n}\n\nexport enum LaunchData_ApiDescriptor {\n /** NONE - Extend as appropriate */\n NONE = \"NONE\",\n /** EXPERIMENTAL - https://snapchat.quip.com/Z6pNAfq26OKk */\n EXPERIMENTAL = \"EXPERIMENTAL\",\n UNRECOGNIZED = \"UNRECOGNIZED\",\n}\n\nexport function launchData_ApiDescriptorFromJSON(object: any): LaunchData_ApiDescriptor {\n switch (object) {\n case 0:\n case \"NONE\":\n return LaunchData_ApiDescriptor.NONE;\n case 1:\n case \"EXPERIMENTAL\":\n return LaunchData_ApiDescriptor.EXPERIMENTAL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return LaunchData_ApiDescriptor.UNRECOGNIZED;\n }\n}\n\nexport function launchData_ApiDescriptorToNumber(object: LaunchData_ApiDescriptor): number {\n switch (object) {\n case LaunchData_ApiDescriptor.NONE:\n return 0;\n case LaunchData_ApiDescriptor.EXPERIMENTAL:\n return 1;\n default:\n return 0;\n }\n}\n\nfunction createBaseLaunchData(): LaunchData {\n return {\n snappable: undefined,\n lures: undefined,\n userId: \"\",\n entryPoint: LaunchData_EntryPoint.LIVE_CAMERA,\n userData: undefined,\n persistentStore: undefined,\n launchParams: undefined,\n apiDescriptors: [],\n };\n}\n\nexport const LaunchData = {\n encode(message: LaunchData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.snappable !== undefined) {\n Snappable.encode(message.snappable, writer.uint32(10).fork()).ldelim();\n }\n if (message.lures !== undefined) {\n Lures.encode(message.lures, writer.uint32(18).fork()).ldelim();\n }\n if (message.userId !== \"\") {\n writer.uint32(26).string(message.userId);\n }\n if (message.entryPoint !== LaunchData_EntryPoint.LIVE_CAMERA) {\n writer.uint32(32).int32(launchData_EntryPointToNumber(message.entryPoint));\n }\n if (message.userData !== undefined) {\n UserData.encode(message.userData, writer.uint32(42).fork()).ldelim();\n }\n if (message.persistentStore !== undefined) {\n PersistentStore.encode(message.persistentStore, writer.uint32(50).fork()).ldelim();\n }\n if (message.launchParams !== undefined) {\n LaunchParams.encode(message.launchParams, writer.uint32(58).fork()).ldelim();\n }\n writer.uint32(66).fork();\n for (const v of message.apiDescriptors) {\n writer.int32(launchData_ApiDescriptorToNumber(v));\n }\n writer.ldelim();\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): LaunchData {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLaunchData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snappable = Snappable.decode(reader, reader.uint32());\n break;\n case 2:\n message.lures = Lures.decode(reader, reader.uint32());\n break;\n case 3:\n message.userId = reader.string();\n break;\n case 4:\n message.entryPoint = launchData_EntryPointFromJSON(reader.int32());\n break;\n case 5:\n message.userData = UserData.decode(reader, reader.uint32());\n break;\n case 6:\n message.persistentStore = PersistentStore.decode(reader, reader.uint32());\n break;\n case 7:\n message.launchParams = LaunchParams.decode(reader, reader.uint32());\n break;\n case 8:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.apiDescriptors.push(launchData_ApiDescriptorFromJSON(reader.int32()));\n }\n } else {\n message.apiDescriptors.push(launchData_ApiDescriptorFromJSON(reader.int32()));\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromPartial<I extends Exact<DeepPartial<LaunchData>, I>>(object: I): LaunchData {\n const message = createBaseLaunchData();\n message.snappable =\n object.snappable !== undefined && object.snappable !== null ? Snappable.fromPartial(object.snappable) : undefined;\n message.lures = object.lures !== undefined && object.lures !== null ? Lures.fromPartial(object.lures) : undefined;\n message.userId = object.userId ?? \"\";\n message.entryPoint = object.entryPoint ?? LaunchData_EntryPoint.LIVE_CAMERA;\n message.userData =\n object.userData !== undefined && object.userData !== null ? UserData.fromPartial(object.userData) : undefined;\n message.persistentStore =\n object.persistentStore !== undefined && object.persistentStore !== null\n ? PersistentStore.fromPartial(object.persistentStore)\n : undefined;\n message.launchParams =\n object.launchParams !== undefined && object.launchParams !== null\n ? LaunchParams.fromPartial(object.launchParams)\n : undefined;\n message.apiDescriptors = object.apiDescriptors?.map((e) => e) || [];\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin\n ? T\n : T extends Array<infer U>\n ? Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U>\n ? ReadonlyArray<DeepPartial<U>>\n : T extends { $case: string }\n ? { [K in keyof Omit<T, \"$case\">]?: DeepPartial<T[K]> } & { $case: T[\"$case\"] }\n : T extends {}\n ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n"]}
|
|
1
|
+
{"version":3,"file":"launchdata.js","sourceRoot":"","sources":["../../../../src/generated-proto/pb_schema/lenses/launchdata.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable */\nimport Long from \"long\";\nimport _m0 from \"protobufjs/minimal\";\nimport { Snappable } from \"./snappable\";\nimport { Lures } from \"./lures\";\nimport { UserData } from \"./user_data\";\nimport { PersistentStore } from \"./persistent_store\";\nimport { LaunchParams } from \"./launch_params\";\n\nexport const protobufPackage = \"snapchat.lenses\";\n\nexport interface LaunchData {\n snappable: Snappable | undefined;\n lures: Lures | undefined;\n userId: string;\n entryPoint: LaunchData_EntryPoint;\n userData: UserData | undefined;\n persistentStore: PersistentStore | undefined;\n launchParams: LaunchParams | undefined;\n apiDescriptors: LaunchData_ApiDescriptor[];\n}\n\nexport enum LaunchData_EntryPoint {\n LIVE_CAMERA = \"LIVE_CAMERA\",\n STORY_REPLY = \"STORY_REPLY\",\n CHAT_REPLY = \"CHAT_REPLY\",\n RESTART = \"RESTART\",\n PREVIEW_CANCEL = \"PREVIEW_CANCEL\",\n MAP = \"MAP\",\n BITMOJI_STICKERS = \"BITMOJI_STICKERS\",\n POST_CAPTURE_PREVIEW = \"POST_CAPTURE_PREVIEW\",\n POST_CAPTURE_TRANSCODING = \"POST_CAPTURE_TRANSCODING\",\n UNRECOGNIZED = \"UNRECOGNIZED\",\n}\n\nexport function launchData_EntryPointFromJSON(object: any): LaunchData_EntryPoint {\n switch (object) {\n case 0:\n case \"LIVE_CAMERA\":\n return LaunchData_EntryPoint.LIVE_CAMERA;\n case 1:\n case \"STORY_REPLY\":\n return LaunchData_EntryPoint.STORY_REPLY;\n case 2:\n case \"CHAT_REPLY\":\n return LaunchData_EntryPoint.CHAT_REPLY;\n case 3:\n case \"RESTART\":\n return LaunchData_EntryPoint.RESTART;\n case 4:\n case \"PREVIEW_CANCEL\":\n return LaunchData_EntryPoint.PREVIEW_CANCEL;\n case 5:\n case \"MAP\":\n return LaunchData_EntryPoint.MAP;\n case 6:\n case \"BITMOJI_STICKERS\":\n return LaunchData_EntryPoint.BITMOJI_STICKERS;\n case 7:\n case \"POST_CAPTURE_PREVIEW\":\n return LaunchData_EntryPoint.POST_CAPTURE_PREVIEW;\n case 8:\n case \"POST_CAPTURE_TRANSCODING\":\n return LaunchData_EntryPoint.POST_CAPTURE_TRANSCODING;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return LaunchData_EntryPoint.UNRECOGNIZED;\n }\n}\n\nexport function launchData_EntryPointToNumber(object: LaunchData_EntryPoint): number {\n switch (object) {\n case LaunchData_EntryPoint.LIVE_CAMERA:\n return 0;\n case LaunchData_EntryPoint.STORY_REPLY:\n return 1;\n case LaunchData_EntryPoint.CHAT_REPLY:\n return 2;\n case LaunchData_EntryPoint.RESTART:\n return 3;\n case LaunchData_EntryPoint.PREVIEW_CANCEL:\n return 4;\n case LaunchData_EntryPoint.MAP:\n return 5;\n case LaunchData_EntryPoint.BITMOJI_STICKERS:\n return 6;\n case LaunchData_EntryPoint.POST_CAPTURE_PREVIEW:\n return 7;\n case LaunchData_EntryPoint.POST_CAPTURE_TRANSCODING:\n return 8;\n default:\n return 0;\n }\n}\n\nexport enum LaunchData_ApiDescriptor {\n /** NONE - Extend as appropriate */\n NONE = \"NONE\",\n /** EXPERIMENTAL - https://snapchat.quip.com/Z6pNAfq26OKk */\n EXPERIMENTAL = \"EXPERIMENTAL\",\n UNRECOGNIZED = \"UNRECOGNIZED\",\n}\n\nexport function launchData_ApiDescriptorFromJSON(object: any): LaunchData_ApiDescriptor {\n switch (object) {\n case 0:\n case \"NONE\":\n return LaunchData_ApiDescriptor.NONE;\n case 1:\n case \"EXPERIMENTAL\":\n return LaunchData_ApiDescriptor.EXPERIMENTAL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return LaunchData_ApiDescriptor.UNRECOGNIZED;\n }\n}\n\nexport function launchData_ApiDescriptorToNumber(object: LaunchData_ApiDescriptor): number {\n switch (object) {\n case LaunchData_ApiDescriptor.NONE:\n return 0;\n case LaunchData_ApiDescriptor.EXPERIMENTAL:\n return 1;\n default:\n return 0;\n }\n}\n\nfunction createBaseLaunchData(): LaunchData {\n return {\n snappable: undefined,\n lures: undefined,\n userId: \"\",\n entryPoint: LaunchData_EntryPoint.LIVE_CAMERA,\n userData: undefined,\n persistentStore: undefined,\n launchParams: undefined,\n apiDescriptors: [],\n };\n}\n\nexport const LaunchData = {\n encode(message: LaunchData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.snappable !== undefined) {\n Snappable.encode(message.snappable, writer.uint32(10).fork()).ldelim();\n }\n if (message.lures !== undefined) {\n Lures.encode(message.lures, writer.uint32(18).fork()).ldelim();\n }\n if (message.userId !== \"\") {\n writer.uint32(26).string(message.userId);\n }\n if (message.entryPoint !== LaunchData_EntryPoint.LIVE_CAMERA) {\n writer.uint32(32).int32(launchData_EntryPointToNumber(message.entryPoint));\n }\n if (message.userData !== undefined) {\n UserData.encode(message.userData, writer.uint32(42).fork()).ldelim();\n }\n if (message.persistentStore !== undefined) {\n PersistentStore.encode(message.persistentStore, writer.uint32(50).fork()).ldelim();\n }\n if (message.launchParams !== undefined) {\n LaunchParams.encode(message.launchParams, writer.uint32(58).fork()).ldelim();\n }\n writer.uint32(66).fork();\n for (const v of message.apiDescriptors) {\n writer.int32(launchData_ApiDescriptorToNumber(v));\n }\n writer.ldelim();\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): LaunchData {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLaunchData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snappable = Snappable.decode(reader, reader.uint32());\n break;\n case 2:\n message.lures = Lures.decode(reader, reader.uint32());\n break;\n case 3:\n message.userId = reader.string();\n break;\n case 4:\n message.entryPoint = launchData_EntryPointFromJSON(reader.int32());\n break;\n case 5:\n message.userData = UserData.decode(reader, reader.uint32());\n break;\n case 6:\n message.persistentStore = PersistentStore.decode(reader, reader.uint32());\n break;\n case 7:\n message.launchParams = LaunchParams.decode(reader, reader.uint32());\n break;\n case 8:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.apiDescriptors.push(launchData_ApiDescriptorFromJSON(reader.int32()));\n }\n } else {\n message.apiDescriptors.push(launchData_ApiDescriptorFromJSON(reader.int32()));\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromPartial<I extends Exact<DeepPartial<LaunchData>, I>>(object: I): LaunchData {\n const message = createBaseLaunchData();\n message.snappable =\n object.snappable !== undefined && object.snappable !== null ? Snappable.fromPartial(object.snappable) : undefined;\n message.lures = object.lures !== undefined && object.lures !== null ? Lures.fromPartial(object.lures) : undefined;\n message.userId = object.userId ?? \"\";\n message.entryPoint = object.entryPoint ?? LaunchData_EntryPoint.LIVE_CAMERA;\n message.userData =\n object.userData !== undefined && object.userData !== null ? UserData.fromPartial(object.userData) : undefined;\n message.persistentStore =\n object.persistentStore !== undefined && object.persistentStore !== null\n ? PersistentStore.fromPartial(object.persistentStore)\n : undefined;\n message.launchParams =\n object.launchParams !== undefined && object.launchParams !== null\n ? LaunchParams.fromPartial(object.launchParams)\n : undefined;\n message.apiDescriptors = object.apiDescriptors?.map((e) => e) || [];\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin\n ? T\n : T extends Array<infer U>\n ? Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U>\n ? ReadonlyArray<DeepPartial<U>>\n : T extends { $case: string }\n ? { [K in keyof Omit<T, \"$case\">]?: DeepPartial<T[K]> } & { $case: T[\"$case\"] }\n : T extends {}\n ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n"]}
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
export type RequestMetadata = {
|
|
2
2
|
signal?: AbortSignal | null | undefined;
|
|
3
|
+
/**
|
|
4
|
+
* When calling a handler, if that handler is part of a handler chain, then by default an abort signal will be
|
|
5
|
+
* sent to that handler if another handler higher up in the chain completes first. Usually this is desirable,
|
|
6
|
+
* since we know if a handler higher up in the chain has completed and returned a response to its caller, then
|
|
7
|
+
* the response from all the handlers below it in the chain will not be used.
|
|
8
|
+
*
|
|
9
|
+
* But in some cases, a handler in a handler chain wants to call the next handler in the chain as a
|
|
10
|
+
* side-effect. If a handler is called as a side-effect, it will not be sent an abort signal when handlers
|
|
11
|
+
* higher up in the chain complete.
|
|
12
|
+
*
|
|
13
|
+
* For example: a caching handler might return a cached value immediately, but then call the next handler as
|
|
14
|
+
* a side-effect to fetch an updated value to refresh the cache in the background. In that case, the next
|
|
15
|
+
* handler should not be sent an abort signal when the caching handler returns the cached value.
|
|
16
|
+
*/
|
|
17
|
+
isSideEffect?: boolean;
|
|
3
18
|
} | undefined;
|
|
4
19
|
export type Handler<Req, Res, Meta extends RequestMetadata> = (req: Req, metadata?: Meta) => Promise<Res>;
|
|
5
20
|
export type ChainableHandler<Req, Res, NextReq, NextRes, Meta extends RequestMetadata | undefined> = (next: Handler<NextReq, NextRes, Meta>) => Handler<Req, Res, Meta>;
|
|
@@ -149,6 +149,13 @@ export class HandlerChainBuilder {
|
|
|
149
149
|
const innerHandler = new Proxy(this.inner, {
|
|
150
150
|
apply: (target, thisArg, args) => {
|
|
151
151
|
const [req, metadata] = args;
|
|
152
|
+
// When calling the inner handler, we may not care about the result and don't want the handler's
|
|
153
|
+
// operation to be interrupted by an abort signal. For example, we might be calling the inner
|
|
154
|
+
// handler as a side-effect which we want to continue after the outer handler has completed.
|
|
155
|
+
//
|
|
156
|
+
// A concrete example: returning a value from cache immediately, but then calling the inner handler
|
|
157
|
+
// as a side-effect to refresh the cache "in the background."
|
|
158
|
+
const innerSignal = (metadata === null || metadata === void 0 ? void 0 : metadata.isSideEffect) ? undefined : signal;
|
|
152
159
|
// To help Handler authors out, we'll do some bookkeeping and cleanup for them – if they forget to
|
|
153
160
|
// remove an abort event listener, we'll remove it for them when the Promise they return resolves.
|
|
154
161
|
// Note: No need to proxy removeEventListener, since removing a non-existent listener just no-ops.
|
|
@@ -169,7 +176,7 @@ export class HandlerChainBuilder {
|
|
|
169
176
|
};
|
|
170
177
|
const innerResponse = Reflect.apply(target, thisArg, [
|
|
171
178
|
req,
|
|
172
|
-
Object.assign(Object.assign({}, metadata), { signal }),
|
|
179
|
+
Object.assign(Object.assign({}, metadata), { signal: innerSignal }),
|
|
173
180
|
]);
|
|
174
181
|
// Using `finally` is more idiomatic, but causes trouble in some environments (e.g. some testing
|
|
175
182
|
// runtimes which detect uncaught rejected promises).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandlerChainBuilder.js","sourceRoot":"","sources":["../../src/handlers/HandlerChainBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["export type RequestMetadata =\n | {\n signal?: AbortSignal | null | undefined;\n }\n | undefined;\nexport type Handler<Req, Res, Meta extends RequestMetadata> = (req: Req, metadata?: Meta) => Promise<Res>;\nexport type ChainableHandler<Req, Res, NextReq, NextRes, Meta extends RequestMetadata | undefined> = (\n next: Handler<NextReq, NextRes, Meta>\n) => Handler<Req, Res, Meta>;\n\n/**\n * Creates a Handler chain – a series of functions composed such that each function may call a supplied `next` function\n * which passes execution down the chain. When the final Handler in the chain returns, execution passes back up the\n * chain eventually returning to the caller.\n *\n * Each Handler chain begins with a \"raw\" Handler – this is a function which takes some request and returns some\n * response. A chain is then created by supplying a series of mapping functions – the ChainableHandler type – which will\n * be called with the `next` Handler in the chain.\n *\n * Ex:\n * ```ts\n * const handler = (request: string, metadata?: RequestMetadata) => Promise.resolve(`Responded to ${request}`)\n * const chainable = (next: Handler<string, string>) => (request: string, metadata?: RequestMetadata) => {\n * return next(`modified ${request}`, metadata)\n * }\n *\n * const chain = new HandlerChainBuilder(handler)\n * .map(chainable)\n * .handler\n *\n * const response = await chain('hello')\n * expect(response).toBe('Responded to modified hello; 0')\n * ```\n * You can largely ignore the `metadata` argument present in the above example. This is the mechanism by which an\n * AbortSignal is passed to each Handler in the chain, but the only real requirement when implementing a Handler is\n * to pass this argument along to the `next` function. In fact, many Handlers will want to be generic over the type\n * of metadata:\n * ```ts\n * const chainable = <Meta>(next: Handler<string, string, Meta>) => (request: string, metadata: Meta) => {\n * return next(`modified ${request}`, metadata)\n * }\n * ```\n * Actually, it's a very good idea for Handlers to be as generic as possible, since that will allow greater re-use. In\n * the above example, we don't do anything with the response from `next`, so we can let that be generic, too:\n * ```ts\n * const chainable = <Res, Meta>(next: Handler<string, Res, Meta>) => (request: string, metadata: Meta) => {\n * return next(`modified ${request}`, metadata)\n * }\n * ```\n * Now if some other Handler in the chain decides to return a different response type, our Handler won't require any\n * changes to compile.\n *\n * ---\n *\n * Since execution passes from handler to handler in the chain, and then back, handlers have the opportunity to modify\n * or observe both the request and response. This might be useful for implementing serialization/deserialization, but\n * the simplest example that demonstrates this feature is measuring request latency:\n * ```ts\n * const latencyMeasuringHandler = <Req, Res, Meta>(next: Handler<Req, Res, Meta>) =>\n * async (req: Req, metadata: Meta) => {\n * const start = performance.now()\n * const response = await next(req, metadata)\n * const latency = performance.now() - start\n * console.log(`latency for request ${request} was ${latency}`)\n * return response\n * }\n * ```\n * Execution is first passed to our measuring handler, which marks the `start` timestamp. Then it passes execution on\n * down the chain. After a response is received (by some handler down the chain), execution passes back up to our\n * handler here, which records the amount of time spent inside `next`.\n *\n * ---\n *\n * Handlers may also abort requests. They can do this in two ways:\n * 1. Create an `AbortController` and add its `AbortSignal` to the `metadata` object when calling `next`.\n * 2. Resolve its returned Promise.\n *\n * The first approach is straightforward, but the second may benefit from an example – the simplest is a handler which\n * will timeout a request:\n * ```ts\n * const timeoutHandler = <Req, Res, Meta>(next: Handler<Req, Res, Meta>) => (req: Req, metadata: Meta) => {\n * return Promise.race([\n * next(req, metadata),\n * sleep(1000),\n * ])\n * }\n * ```\n * The Promise returned by this handler will resolve either when the `next` handler resolves or 1 second has elapsed,\n * whichever happens first. If the timeout happens first, we want the `next` handler to recieve an abort signal so that\n * it can terminate early (since its result is no longer needed).\n *\n * HandlerChainBuilder makes this happen by observing when each handler completes, and sending an abort signal to all\n * the handlers \"downstream\" from the aborting handler.\n */\nexport class HandlerChainBuilder<Req, Res, Meta extends RequestMetadata> {\n private readonly inner: Handler<Req, Res, Meta>;\n\n constructor(inner: (req: Req, metadata: Meta) => Promise<Res>) {\n // The TS compiler has the following behavior:\n //\n // class Infer<T extends SomeType | undefined> { constructor(f: (t?: T) => void) {} }\n // const f = (t?: SomeType) => {}\n // const i = new Infer(f)\n //\n // The type of `i` is inferred to be `Infer<SomeType>` instead of `Infer<SomeType | undefined>`, even though the\n // type of `f`'s argument is `SomeType | undefined`. This seems to be a bug in type inference. Note that making\n // the constructor argument required gives the expected behavior:\n //\n // class Infer<T extends SomeType | undefined> { constructor(f: (t: T) => void) {} }\n // const f = (t?: SomeType) => {}\n // const i = new Infer(f)\n //\n // Now `i` is inferred to be `Infer<SomeType | undefined>`.\n //\n // This has consequences if the inferred type T is used elsewhere in the class.\n //\n // In this case, we need to make sure that if the given `inner` function marks the metadata argument as\n // optional, that HandlerChainBuilder correctly infers that the Meta type includes undefined. So we don't mark\n // metadata as optional, and so we must cast to `Handler` (which does mark it as optional).\n //\n // Safety: We're adding `| undefined` to the metadata type, which may be unsafe – `undefined` may not be\n // assignable to Meta. But when handling the argument of type Meta, we simply pass it through from handler to\n // handler – we never call `inner` without passing the metadata argument we've received from some call to an\n // outer handler. The typing visible to callers remains safe.\n this.inner = inner as Handler<Req, Res, Meta>;\n }\n\n get handler(): Handler<Req, Res, Meta> {\n return this.inner;\n }\n\n map<PriorReq, PriorRes>(\n outer: ChainableHandler<PriorReq, PriorRes, Req, Res, Meta>\n ): HandlerChainBuilder<PriorReq, PriorRes, Meta> {\n // To create the next handler in the chain, we compose the \"outer\" handler with the \"inner\" handler.\n //\n // The outer handler observes its own completion and sends an abort signal to the inner handler when it has\n // resolved. To prevent unexpected behavior, the inner handler also observes its own completion, setting a flag\n // when it resolves so that – if it resolves before the outer handler – the outer handler can skip sending the\n // abort signal (since the inner handler has already completed).\n const outerHandler = (req: PriorReq, metadata: Meta): Promise<PriorRes> => {\n const abort = new AbortController();\n const signal = abort.signal;\n\n // It's important to not signal an abort to an inner handler which has already completed – it seems like\n // this would be a non-issue (shouldn't aborting after completion be a no-op?), but specifically for the\n // browser's implementation of `fetch`, aborting even after the `fetch` Promise resolves can cause an abort\n // error if e.g. the Fetch Response's body has not yet been read.\n //\n // So, for safety, we will only abort inner handlers which are still executing.\n let innerCompleted = false;\n\n const maybeAbort = () => {\n // Safety: we never give `abort` to anyone else, so we know if the signal is aborted, this function\n // has already run, so we can return early without fear of leaking. We also know if inner has completed,\n // it has already performed cleanup.\n if (signal.aborted || innerCompleted) return;\n\n // If we've gotten here, the outer handler has either completed, or we heard an abort event while the\n // inner handler is still executing – so we pass the abort signal down to the inner handler.\n abort.abort();\n metadata?.signal?.removeEventListener(\"abort\", maybeAbort);\n };\n\n metadata?.signal?.addEventListener(\"abort\", maybeAbort);\n\n const innerHandler = new Proxy(this.inner, {\n apply: (target, thisArg, args) => {\n const [req, metadata] = args as Parameters<typeof target>;\n\n // To help Handler authors out, we'll do some bookkeeping and cleanup for them – if they forget to\n // remove an abort event listener, we'll remove it for them when the Promise they return resolves.\n // Note: No need to proxy removeEventListener, since removing a non-existent listener just no-ops.\n const abortListeners: EventListenerOrEventListenerObject[] = [];\n signal.addEventListener = new Proxy(signal.addEventListener, {\n apply: (target, thisArg, args) => {\n abortListeners.push(args[1]);\n return Reflect.apply(target, thisArg, args);\n },\n });\n\n const cleanupAndMarkComplete = () => {\n // The only reason we listen to upstream aborts is to pass them to the inner handler – since the\n // inner handler has completed, we no longer need the listener.\n metadata?.signal?.removeEventListener(\"abort\", maybeAbort);\n abortListeners.forEach((listener) => signal.removeEventListener(\"abort\", listener));\n innerCompleted = true;\n };\n\n const innerResponse: ReturnType<typeof target> = Reflect.apply(target, thisArg, [\n req,\n { ...metadata, signal },\n ]);\n\n // Using `finally` is more idiomatic, but causes trouble in some environments (e.g. some testing\n // runtimes which detect uncaught rejected promises).\n innerResponse.catch(() => {}).then(cleanupAndMarkComplete);\n return innerResponse;\n },\n });\n\n const outerResponse = outer(innerHandler)(req, metadata);\n outerResponse.catch(() => {}).then(maybeAbort);\n return outerResponse;\n };\n return new HandlerChainBuilder(outerHandler as Handler<PriorReq, PriorRes, Meta>);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HandlerChainBuilder.js","sourceRoot":"","sources":["../../src/handlers/HandlerChainBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["export type RequestMetadata =\n | {\n signal?: AbortSignal | null | undefined;\n /**\n * When calling a handler, if that handler is part of a handler chain, then by default an abort signal will be\n * sent to that handler if another handler higher up in the chain completes first. Usually this is desirable,\n * since we know if a handler higher up in the chain has completed and returned a response to its caller, then\n * the response from all the handlers below it in the chain will not be used.\n *\n * But in some cases, a handler in a handler chain wants to call the next handler in the chain as a\n * side-effect. If a handler is called as a side-effect, it will not be sent an abort signal when handlers\n * higher up in the chain complete.\n *\n * For example: a caching handler might return a cached value immediately, but then call the next handler as\n * a side-effect to fetch an updated value to refresh the cache in the background. In that case, the next\n * handler should not be sent an abort signal when the caching handler returns the cached value.\n */\n isSideEffect?: boolean;\n }\n | undefined;\nexport type Handler<Req, Res, Meta extends RequestMetadata> = (req: Req, metadata?: Meta) => Promise<Res>;\nexport type ChainableHandler<Req, Res, NextReq, NextRes, Meta extends RequestMetadata | undefined> = (\n next: Handler<NextReq, NextRes, Meta>\n) => Handler<Req, Res, Meta>;\n\n/**\n * Creates a Handler chain – a series of functions composed such that each function may call a supplied `next` function\n * which passes execution down the chain. When the final Handler in the chain returns, execution passes back up the\n * chain eventually returning to the caller.\n *\n * Each Handler chain begins with a \"raw\" Handler – this is a function which takes some request and returns some\n * response. A chain is then created by supplying a series of mapping functions – the ChainableHandler type – which will\n * be called with the `next` Handler in the chain.\n *\n * Ex:\n * ```ts\n * const handler = (request: string, metadata?: RequestMetadata) => Promise.resolve(`Responded to ${request}`)\n * const chainable = (next: Handler<string, string>) => (request: string, metadata?: RequestMetadata) => {\n * return next(`modified ${request}`, metadata)\n * }\n *\n * const chain = new HandlerChainBuilder(handler)\n * .map(chainable)\n * .handler\n *\n * const response = await chain('hello')\n * expect(response).toBe('Responded to modified hello; 0')\n * ```\n * You can largely ignore the `metadata` argument present in the above example. This is the mechanism by which an\n * AbortSignal is passed to each Handler in the chain, but the only real requirement when implementing a Handler is\n * to pass this argument along to the `next` function. In fact, many Handlers will want to be generic over the type\n * of metadata:\n * ```ts\n * const chainable = <Meta>(next: Handler<string, string, Meta>) => (request: string, metadata: Meta) => {\n * return next(`modified ${request}`, metadata)\n * }\n * ```\n * Actually, it's a very good idea for Handlers to be as generic as possible, since that will allow greater re-use. In\n * the above example, we don't do anything with the response from `next`, so we can let that be generic, too:\n * ```ts\n * const chainable = <Res, Meta>(next: Handler<string, Res, Meta>) => (request: string, metadata: Meta) => {\n * return next(`modified ${request}`, metadata)\n * }\n * ```\n * Now if some other Handler in the chain decides to return a different response type, our Handler won't require any\n * changes to compile.\n *\n * ---\n *\n * Since execution passes from handler to handler in the chain, and then back, handlers have the opportunity to modify\n * or observe both the request and response. This might be useful for implementing serialization/deserialization, but\n * the simplest example that demonstrates this feature is measuring request latency:\n * ```ts\n * const latencyMeasuringHandler = <Req, Res, Meta>(next: Handler<Req, Res, Meta>) =>\n * async (req: Req, metadata: Meta) => {\n * const start = performance.now()\n * const response = await next(req, metadata)\n * const latency = performance.now() - start\n * console.log(`latency for request ${request} was ${latency}`)\n * return response\n * }\n * ```\n * Execution is first passed to our measuring handler, which marks the `start` timestamp. Then it passes execution on\n * down the chain. After a response is received (by some handler down the chain), execution passes back up to our\n * handler here, which records the amount of time spent inside `next`.\n *\n * ---\n *\n * Handlers may also abort requests. They can do this in two ways:\n * 1. Create an `AbortController` and add its `AbortSignal` to the `metadata` object when calling `next`.\n * 2. Resolve its returned Promise.\n *\n * The first approach is straightforward, but the second may benefit from an example – the simplest is a handler which\n * will timeout a request:\n * ```ts\n * const timeoutHandler = <Req, Res, Meta>(next: Handler<Req, Res, Meta>) => (req: Req, metadata: Meta) => {\n * return Promise.race([\n * next(req, metadata),\n * sleep(1000),\n * ])\n * }\n * ```\n * The Promise returned by this handler will resolve either when the `next` handler resolves or 1 second has elapsed,\n * whichever happens first. If the timeout happens first, we want the `next` handler to recieve an abort signal so that\n * it can terminate early (since its result is no longer needed).\n *\n * HandlerChainBuilder makes this happen by observing when each handler completes, and sending an abort signal to all\n * the handlers \"downstream\" from the aborting handler.\n */\nexport class HandlerChainBuilder<Req, Res, Meta extends RequestMetadata> {\n private readonly inner: Handler<Req, Res, Meta>;\n\n constructor(inner: (req: Req, metadata: Meta) => Promise<Res>) {\n // The TS compiler has the following behavior:\n //\n // class Infer<T extends SomeType | undefined> { constructor(f: (t?: T) => void) {} }\n // const f = (t?: SomeType) => {}\n // const i = new Infer(f)\n //\n // The type of `i` is inferred to be `Infer<SomeType>` instead of `Infer<SomeType | undefined>`, even though the\n // type of `f`'s argument is `SomeType | undefined`. This seems to be a bug in type inference. Note that making\n // the constructor argument required gives the expected behavior:\n //\n // class Infer<T extends SomeType | undefined> { constructor(f: (t: T) => void) {} }\n // const f = (t?: SomeType) => {}\n // const i = new Infer(f)\n //\n // Now `i` is inferred to be `Infer<SomeType | undefined>`.\n //\n // This has consequences if the inferred type T is used elsewhere in the class.\n //\n // In this case, we need to make sure that if the given `inner` function marks the metadata argument as\n // optional, that HandlerChainBuilder correctly infers that the Meta type includes undefined. So we don't mark\n // metadata as optional, and so we must cast to `Handler` (which does mark it as optional).\n //\n // Safety: We're adding `| undefined` to the metadata type, which may be unsafe – `undefined` may not be\n // assignable to Meta. But when handling the argument of type Meta, we simply pass it through from handler to\n // handler – we never call `inner` without passing the metadata argument we've received from some call to an\n // outer handler. The typing visible to callers remains safe.\n this.inner = inner as Handler<Req, Res, Meta>;\n }\n\n get handler(): Handler<Req, Res, Meta> {\n return this.inner;\n }\n\n map<PriorReq, PriorRes>(\n outer: ChainableHandler<PriorReq, PriorRes, Req, Res, Meta>\n ): HandlerChainBuilder<PriorReq, PriorRes, Meta> {\n // To create the next handler in the chain, we compose the \"outer\" handler with the \"inner\" handler.\n //\n // The outer handler observes its own completion and sends an abort signal to the inner handler when it has\n // resolved. To prevent unexpected behavior, the inner handler also observes its own completion, setting a flag\n // when it resolves so that – if it resolves before the outer handler – the outer handler can skip sending the\n // abort signal (since the inner handler has already completed).\n const outerHandler = (req: PriorReq, metadata: Meta): Promise<PriorRes> => {\n const abort = new AbortController();\n const signal = abort.signal;\n\n // It's important to not signal an abort to an inner handler which has already completed – it seems like\n // this would be a non-issue (shouldn't aborting after completion be a no-op?), but specifically for the\n // browser's implementation of `fetch`, aborting even after the `fetch` Promise resolves can cause an abort\n // error if e.g. the Fetch Response's body has not yet been read.\n //\n // So, for safety, we will only abort inner handlers which are still executing.\n let innerCompleted = false;\n\n const maybeAbort = () => {\n // Safety: we never give `abort` to anyone else, so we know if the signal is aborted, this function\n // has already run, so we can return early without fear of leaking. We also know if inner has completed,\n // it has already performed cleanup.\n if (signal.aborted || innerCompleted) return;\n\n // If we've gotten here, the outer handler has either completed, or we heard an abort event while the\n // inner handler is still executing – so we pass the abort signal down to the inner handler.\n abort.abort();\n metadata?.signal?.removeEventListener(\"abort\", maybeAbort);\n };\n\n metadata?.signal?.addEventListener(\"abort\", maybeAbort);\n\n const innerHandler = new Proxy(this.inner, {\n apply: (target, thisArg, args) => {\n const [req, metadata] = args as Parameters<typeof target>;\n\n // When calling the inner handler, we may not care about the result and don't want the handler's\n // operation to be interrupted by an abort signal. For example, we might be calling the inner\n // handler as a side-effect which we want to continue after the outer handler has completed.\n //\n // A concrete example: returning a value from cache immediately, but then calling the inner handler\n // as a side-effect to refresh the cache \"in the background.\"\n const innerSignal = metadata?.isSideEffect ? undefined : signal;\n\n // To help Handler authors out, we'll do some bookkeeping and cleanup for them – if they forget to\n // remove an abort event listener, we'll remove it for them when the Promise they return resolves.\n // Note: No need to proxy removeEventListener, since removing a non-existent listener just no-ops.\n const abortListeners: EventListenerOrEventListenerObject[] = [];\n signal.addEventListener = new Proxy(signal.addEventListener, {\n apply: (target, thisArg, args) => {\n abortListeners.push(args[1]);\n return Reflect.apply(target, thisArg, args);\n },\n });\n\n const cleanupAndMarkComplete = () => {\n // The only reason we listen to upstream aborts is to pass them to the inner handler – since the\n // inner handler has completed, we no longer need the listener.\n metadata?.signal?.removeEventListener(\"abort\", maybeAbort);\n abortListeners.forEach((listener) => signal.removeEventListener(\"abort\", listener));\n innerCompleted = true;\n };\n\n const innerResponse: ReturnType<typeof target> = Reflect.apply(target, thisArg, [\n req,\n { ...metadata, signal: innerSignal },\n ]);\n\n // Using `finally` is more idiomatic, but causes trouble in some environments (e.g. some testing\n // runtimes which detect uncaught rejected promises).\n innerResponse.catch(() => {}).then(cleanupAndMarkComplete);\n return innerResponse;\n },\n });\n\n const outerResponse = outer(innerHandler)(req, metadata);\n outerResponse.catch(() => {}).then(maybeAbort);\n return outerResponse;\n };\n return new HandlerChainBuilder(outerHandler as Handler<PriorReq, PriorRes, Meta>);\n }\n}\n"]}
|
|
@@ -21,9 +21,22 @@ interface Errored {
|
|
|
21
21
|
}
|
|
22
22
|
export type Dimensions = Record<string, string | undefined>;
|
|
23
23
|
export type RequestStateEvents = TypedCustomEvent<"started", Started> | TypedCustomEvent<"completed", Completed> | TypedCustomEvent<"errored", Errored>;
|
|
24
|
-
export declare const requestStateEventTarget:
|
|
25
|
-
export declare const
|
|
26
|
-
export declare const
|
|
27
|
-
export declare const
|
|
28
|
-
|
|
24
|
+
export declare const dispatchRequestStarted: (requestStateEventTarget: RequestStateEventTarget, data: Omit<Started, "requestId" | "timeMs">) => Started;
|
|
25
|
+
export declare const dispatchRequestCompleted: (requestStateEventTarget: RequestStateEventTarget, data: Omit<Completed, "timeMs">) => Completed;
|
|
26
|
+
export declare const dispatchRequestErrored: (requestStateEventTarget: RequestStateEventTarget, data: Omit<Errored, "timeMs">) => Errored;
|
|
27
|
+
export declare const createRequestStateEmittingHandler: <D extends Dimensions = Dimensions>(requestStateEventTarget: RequestStateEventTarget) => ChainableHandler<[RequestInfo, D], Response, RequestInfo, Response, RequestMetadata>;
|
|
28
|
+
/**
|
|
29
|
+
* This event target may be used to listen for any network request state changes initiated by CameraKit.
|
|
30
|
+
*
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
export type RequestStateEventTarget = TypedEventTarget<RequestStateEvents>;
|
|
34
|
+
/**
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
export declare const requestStateEventTargetFactory: {
|
|
38
|
+
(): RequestStateEventTarget;
|
|
39
|
+
token: "requestStateEventTarget";
|
|
40
|
+
dependencies: [];
|
|
41
|
+
};
|
|
29
42
|
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { ensureError } from "../common/errorHelpers";
|
|
3
3
|
import { getTimeMs } from "../common/time";
|
|
4
|
+
import { Injectable } from "../dependency-injection/Injectable";
|
|
4
5
|
import { TypedCustomEvent } from "../events/TypedCustomEvent";
|
|
5
6
|
import { TypedEventTarget } from "../events/TypedEventTarget";
|
|
6
7
|
let requestId = 0;
|
|
@@ -10,34 +11,37 @@ const safeParseInt = (str) => {
|
|
|
10
11
|
const maybeInt = parseInt(str);
|
|
11
12
|
return isNaN(maybeInt) ? 0 : maybeInt;
|
|
12
13
|
};
|
|
13
|
-
export const
|
|
14
|
-
export const dispatchRequestStarted = (data) => {
|
|
14
|
+
export const dispatchRequestStarted = (requestStateEventTarget, data) => {
|
|
15
15
|
const started = Object.assign(Object.assign({}, data), { requestId: requestId++, timeMs: getTimeMs() });
|
|
16
16
|
requestStateEventTarget.dispatchEvent(new TypedCustomEvent("started", started));
|
|
17
17
|
return started;
|
|
18
18
|
};
|
|
19
|
-
export const dispatchRequestCompleted = (data) => {
|
|
19
|
+
export const dispatchRequestCompleted = (requestStateEventTarget, data) => {
|
|
20
20
|
const completed = Object.assign(Object.assign({}, data), { timeMs: getTimeMs() });
|
|
21
21
|
requestStateEventTarget.dispatchEvent(new TypedCustomEvent("completed", completed));
|
|
22
22
|
return completed;
|
|
23
23
|
};
|
|
24
|
-
export const dispatchRequestErrored = (data) => {
|
|
24
|
+
export const dispatchRequestErrored = (requestStateEventTarget, data) => {
|
|
25
25
|
const errored = Object.assign(Object.assign({}, data), { timeMs: getTimeMs() });
|
|
26
26
|
requestStateEventTarget.dispatchEvent(new TypedCustomEvent("errored", errored));
|
|
27
27
|
return errored;
|
|
28
28
|
};
|
|
29
|
-
export const createRequestStateEmittingHandler = () => (next) => ([request, dimensions], metadata) => __awaiter(void 0, void 0, void 0, function* () {
|
|
30
|
-
const { requestId } = dispatchRequestStarted({ dimensions });
|
|
29
|
+
export const createRequestStateEmittingHandler = (requestStateEventTarget) => (next) => ([request, dimensions], metadata) => __awaiter(void 0, void 0, void 0, function* () {
|
|
30
|
+
const { requestId } = dispatchRequestStarted(requestStateEventTarget, { dimensions });
|
|
31
31
|
try {
|
|
32
32
|
const response = yield next(request, metadata);
|
|
33
33
|
const status = response.status;
|
|
34
34
|
const sizeByte = safeParseInt(response.headers.get("content-length"));
|
|
35
|
-
dispatchRequestCompleted({ requestId, dimensions, status, sizeByte });
|
|
35
|
+
dispatchRequestCompleted(requestStateEventTarget, { requestId, dimensions, status, sizeByte });
|
|
36
36
|
return response;
|
|
37
37
|
}
|
|
38
38
|
catch (error) {
|
|
39
|
-
dispatchRequestErrored({ requestId, dimensions, error: ensureError(error) });
|
|
39
|
+
dispatchRequestErrored(requestStateEventTarget, { requestId, dimensions, error: ensureError(error) });
|
|
40
40
|
throw error;
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
|
+
/**
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
export const requestStateEventTargetFactory = Injectable("requestStateEventTarget", () => new TypedEventTarget());
|
|
43
47
|
//# sourceMappingURL=requestStateEmittingHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestStateEmittingHandler.js","sourceRoot":"","sources":["../../src/handlers/requestStateEmittingHandler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,MAAM,YAAY,GAAG,CAAC,GAAkB,EAAE,EAAE;IACxC,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,CAAC,CAAC;IAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1C,CAAC,CAAC;AA8BF,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"requestStateEmittingHandler.js","sourceRoot":"","sources":["../../src/handlers/requestStateEmittingHandler.ts"],"names":[],"mappings":"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","sourcesContent":["import { ensureError } from \"../common/errorHelpers\";\nimport { getTimeMs } from \"../common/time\";\nimport { Injectable } from \"../dependency-injection/Injectable\";\nimport { TypedCustomEvent } from \"../events/TypedCustomEvent\";\nimport { TypedEventTarget } from \"../events/TypedEventTarget\";\nimport { ChainableHandler, RequestMetadata } from \"./HandlerChainBuilder\";\n\nlet requestId = 0;\nconst safeParseInt = (str: string | null) => {\n if (str == null) return 0;\n const maybeInt = parseInt(str);\n return isNaN(maybeInt) ? 0 : maybeInt;\n};\n\ninterface Started {\n requestId: number;\n timeMs: number;\n dimensions: Dimensions;\n}\n\ninterface Completed {\n requestId: number;\n timeMs: number;\n dimensions: Dimensions;\n status: number;\n sizeByte: number;\n}\n\ninterface Errored {\n requestId: number;\n timeMs: number;\n dimensions: Dimensions;\n error: Error;\n}\n\nexport type Dimensions = Record<string, string | undefined>;\n\nexport type RequestStateEvents =\n | TypedCustomEvent<\"started\", Started>\n | TypedCustomEvent<\"completed\", Completed>\n | TypedCustomEvent<\"errored\", Errored>;\n\nexport const dispatchRequestStarted = (\n requestStateEventTarget: RequestStateEventTarget,\n data: Omit<Started, \"requestId\" | \"timeMs\">\n): Started => {\n const started: Started = { ...data, requestId: requestId++, timeMs: getTimeMs() };\n requestStateEventTarget.dispatchEvent(new TypedCustomEvent(\"started\", started));\n return started;\n};\n\nexport const dispatchRequestCompleted = (\n requestStateEventTarget: RequestStateEventTarget,\n data: Omit<Completed, \"timeMs\">\n): Completed => {\n const completed: Completed = { ...data, timeMs: getTimeMs() };\n requestStateEventTarget.dispatchEvent(new TypedCustomEvent(\"completed\", completed));\n return completed;\n};\n\nexport const dispatchRequestErrored = (\n requestStateEventTarget: RequestStateEventTarget,\n data: Omit<Errored, \"timeMs\">\n): Errored => {\n const errored: Errored = { ...data, timeMs: getTimeMs() };\n requestStateEventTarget.dispatchEvent(new TypedCustomEvent(\"errored\", errored));\n return errored;\n};\n\nexport const createRequestStateEmittingHandler =\n <D extends Dimensions = Dimensions>(\n requestStateEventTarget: RequestStateEventTarget\n ): ChainableHandler<[RequestInfo, D], Response, RequestInfo, Response, RequestMetadata> =>\n (next) =>\n async ([request, dimensions], metadata) => {\n const { requestId } = dispatchRequestStarted(requestStateEventTarget, { dimensions });\n try {\n const response = await next(request, metadata);\n const status = response.status;\n const sizeByte = safeParseInt(response.headers.get(\"content-length\"));\n dispatchRequestCompleted(requestStateEventTarget, { requestId, dimensions, status, sizeByte });\n return response;\n } catch (error) {\n dispatchRequestErrored(requestStateEventTarget, { requestId, dimensions, error: ensureError(error) });\n throw error;\n }\n };\n\n/**\n * This event target may be used to listen for any network request state changes initiated by CameraKit.\n *\n * @internal\n */\nexport type RequestStateEventTarget = TypedEventTarget<RequestStateEvents>;\n\n/**\n * @internal\n */\nexport const requestStateEventTargetFactory = Injectable(\n \"requestStateEventTarget\",\n (): RequestStateEventTarget => new TypedEventTarget()\n);\n"]}
|
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
import { Persistence, ValidKey } from "../persistence/Persistence";
|
|
2
|
+
import { OperationalMetricsReporter } from "../metrics/operationalMetricsReporter";
|
|
2
3
|
import { ChainableHandler, RequestMetadata } from "./HandlerChainBuilder";
|
|
3
|
-
export type CachingStrategy<T> = (key: ValidKey, cache: Persistence<T>, network: () => Promise<T>) => Promise<T>;
|
|
4
|
+
export type CachingStrategy<T> = (key: ValidKey, cache: Persistence<T>, network: (metadata?: RequestMetadata) => Promise<T>) => Promise<T>;
|
|
4
5
|
/**
|
|
5
6
|
* Create a CachingStrategy that first makes a request to the network, falling back to cache if the network request
|
|
6
7
|
* fails. If the network request fails and a prior response has not been cached, an error is returned to the caller.
|
|
7
8
|
*/
|
|
8
9
|
export declare const staleIfErrorStrategy: <T>() => CachingStrategy<T>;
|
|
10
|
+
/**
|
|
11
|
+
* If provided these options allow staleWhileRevalidateStrategy to report cache_miss metrics.
|
|
12
|
+
*/
|
|
13
|
+
export interface StaleWhileRevalidateOptions {
|
|
14
|
+
requestType: string;
|
|
15
|
+
reporter: OperationalMetricsReporter;
|
|
16
|
+
}
|
|
9
17
|
/**
|
|
10
18
|
* Create a CachingStrategy that first does a cache lookup – if the response is found in cache, it is returned and the
|
|
11
19
|
* entry is updated with a request to the network in the background. If no cached response is found, the network request
|
|
12
20
|
* is made, the result cached and returned to the caller.
|
|
13
21
|
*/
|
|
14
|
-
export declare const staleWhileRevalidateStrategy: <T>() => CachingStrategy<T>;
|
|
22
|
+
export declare const staleWhileRevalidateStrategy: <T>(options?: StaleWhileRevalidateOptions) => CachingStrategy<T>;
|
|
15
23
|
/**
|
|
16
24
|
* Create a Handler capable of caching responses using various caching strategies.
|
|
17
25
|
*
|
|
@@ -4,7 +4,7 @@ import { cacheKeyNotFoundError } from "../namedErrors";
|
|
|
4
4
|
import { getLogger } from "../logger/logger";
|
|
5
5
|
const logger = getLogger("responseCachingHandler");
|
|
6
6
|
const notFound = (key) => cacheKeyNotFoundError(`Response for key ${key} not found in cache.`);
|
|
7
|
-
const strategyFailed = (key, cause) => new Error(`Network request and cache lookup for ${key} both failed.`, { cause });
|
|
7
|
+
const strategyFailed = (key, cause) => new Error(`Network request and cache lookup for key ${key} both failed.`, { cause });
|
|
8
8
|
/**
|
|
9
9
|
* Create a CachingStrategy that first makes a request to the network, falling back to cache if the network request
|
|
10
10
|
* fails. If the network request fails and a prior response has not been cached, an error is returned to the caller.
|
|
@@ -37,12 +37,17 @@ export const staleIfErrorStrategy = () => (key, cache, network) => __awaiter(voi
|
|
|
37
37
|
* entry is updated with a request to the network in the background. If no cached response is found, the network request
|
|
38
38
|
* is made, the result cached and returned to the caller.
|
|
39
39
|
*/
|
|
40
|
-
export const staleWhileRevalidateStrategy = () => (key, cache, network) => __awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
+
export const staleWhileRevalidateStrategy = (options) => (key, cache, network) => __awaiter(void 0, void 0, void 0, function* () {
|
|
41
41
|
try {
|
|
42
42
|
const cachedResponse = yield cache.retrieve(key);
|
|
43
43
|
if (!cachedResponse)
|
|
44
44
|
throw notFound(key);
|
|
45
|
-
network
|
|
45
|
+
// By specifying isSideEffect: true, the handler chain allows the network handler to run to completion,
|
|
46
|
+
// even though we return an immediate response from the cache. In the typical use-case, once a response has
|
|
47
|
+
// resolved, any ongoing handlers are aborted because the handler chain knows their result will not be
|
|
48
|
+
// used -- but here, the network handler is run as a side-effect to update the cache after the cached
|
|
49
|
+
// response has been resolved.
|
|
50
|
+
network({ isSideEffect: true })
|
|
46
51
|
.then((response) => cache.store(key, response))
|
|
47
52
|
.catch((error) => {
|
|
48
53
|
logger.warn(`staleWhileRevalidateStrategy failed to retrieve and store key ${key}.`, error);
|
|
@@ -50,6 +55,7 @@ export const staleWhileRevalidateStrategy = () => (key, cache, network) => __awa
|
|
|
50
55
|
return cachedResponse;
|
|
51
56
|
}
|
|
52
57
|
catch (cacheError) {
|
|
58
|
+
options === null || options === void 0 ? void 0 : options.reporter.count("cache_miss", 1, new Map([["request_type", options.requestType]]));
|
|
53
59
|
try {
|
|
54
60
|
const response = yield network();
|
|
55
61
|
cache.store(key, response).catch((error) => {
|
|
@@ -79,7 +85,10 @@ export const staleWhileRevalidateStrategy = () => (key, cache, network) => __awa
|
|
|
79
85
|
*/
|
|
80
86
|
export const createResponseCachingHandler = (cache, resolveKey, strategy) => {
|
|
81
87
|
return (next) => (request, metadata) => __awaiter(void 0, void 0, void 0, function* () {
|
|
82
|
-
const network = () =>
|
|
88
|
+
const network = (additionalMetadata = {}) => {
|
|
89
|
+
const m = Object.assign(Object.assign({}, metadata), additionalMetadata);
|
|
90
|
+
return next(request, m);
|
|
91
|
+
};
|
|
83
92
|
let key;
|
|
84
93
|
try {
|
|
85
94
|
key = resolveKey(request, metadata);
|