MCPcopy Create free account
hub / github.com/ProtonDriveApps/sdk / processFeatureRequirements

Function processFeatureRequirements

cli/src/api/apiRequirements.ts:47–70  ·  view source on GitHub ↗
(
    options: Pick<ProcessDriveRequirementHeadersOptions, 'supportedRequirementMasksByScope' | 'onUnsupportedFeature'>,
    raw: string,
)

Source from the content-addressed store, hash-verified

45}
46
47function processFeatureRequirements(
48 options: Pick<ProcessDriveRequirementHeadersOptions, 'supportedRequirementMasksByScope' | 'onUnsupportedFeature'>,
49 raw: string,
50): void {
51 // Example of requirement header: "drive=1 photos=2"
52 const fields = parseKeyValuePairs(raw);
53 for (const [scopeStr, valueStr] of fields) {
54 const scope = scopeStr as RequirementScope;
55 const supported = options.supportedRequirementMasksByScope[scope];
56 if (supported === undefined) {
57 continue;
58 }
59
60 const requiredMask = Number.parseInt(valueStr, 10);
61 if (isNaN(requiredMask) || requiredMask <= 0) {
62 continue;
63 }
64
65 const missing = requiredMask & ~supported;
66 if (missing !== 0) {
67 options.onUnsupportedFeature(scope, requiredMask);
68 }
69 }
70}
71
72function processPlatformRequirements(
73 options: Pick<ProcessDriveRequirementHeadersOptions, 'clientSdkVersion' | 'onRequiredUpdate' | 'onSuggestedUpdate'>,

Callers 1

Calls 1

parseKeyValuePairsFunction · 0.85

Tested by

no test coverage detected