/
Credential.ts
40 lines (37 loc) · 1.22 KB
/
Credential.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
import { RequestPolicy, RequestPolicyFactory, RequestPolicyOptions } from "@azure/core-http";
import { CredentialPolicy } from "../policies/CredentialPolicy";
/**
* Credential is an abstract class for Azure Storage HTTP requests signing. This
* class will host an credentialPolicyCreator factory which generates CredentialPolicy.
*
* @export
* @abstract
* @class Credential
*/
export abstract class Credential implements RequestPolicyFactory {
/**
* Creates a RequestPolicy object.
*
* @param {RequestPolicy} _nextPolicy
* @param {RequestPolicyOptions} _options
* @returns {RequestPolicy}
* @memberof Credential
*/
public create(
// tslint:disable-next-line:variable-name
_nextPolicy: RequestPolicy,
// tslint:disable-next-line:variable-name
_options: RequestPolicyOptions
): RequestPolicy {
throw new Error("Method should be implemented in children classes.");
}
}
/**
* A factory function that creates a new CredentialPolicy that uses the provided nextPolicy.
*/
export type CredentialPolicyCreator = (
nextPolicy: RequestPolicy,
options: RequestPolicyOptions
) => CredentialPolicy;