43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import * as core from "@actions/core"; | ||
|  | 
 | ||
|  | import { State } from "./constants"; | ||
|  | 
 | ||
|  | export interface IStateProvider { | ||
|  |     //setOutput(key: string, value: string): void;
 | ||
|  |     setState(key: string, value: string): void; | ||
|  |     getState(key: string): string; | ||
|  | 
 | ||
|  |     getCacheState(): string | undefined; | ||
|  | } | ||
|  | 
 | ||
|  | class StateProviderBase implements IStateProvider { | ||
|  |     getCacheState(): string | undefined { | ||
|  |         const cacheKey = this.getState(State.CacheMatchedKey); | ||
|  |         if (cacheKey) { | ||
|  |             core.debug(`Cache state/key: ${cacheKey}`); | ||
|  |             return cacheKey; | ||
|  |         } | ||
|  | 
 | ||
|  |         return undefined; | ||
|  |     } | ||
|  | 
 | ||
|  |     // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function
 | ||
|  |     setState = (key: string, value: string) => {}; | ||
|  | 
 | ||
|  |     // eslint-disable-next-line @typescript-eslint/no-unused-vars
 | ||
|  |     getState = (key: string) => ""; | ||
|  | } | ||
|  | 
 | ||
|  | export class StateProvider extends StateProviderBase { | ||
|  |     //setOutput = core.setOutput;
 | ||
|  |     setState = core.saveState; | ||
|  |     getState = core.getState; | ||
|  | } | ||
|  | 
 | ||
|  | export class NullStateProvider extends StateProviderBase { | ||
|  |     //setOutput = core.setOutput;
 | ||
|  |     setState = core.setOutput; | ||
|  |     // eslint-disable-next-line @typescript-eslint/no-unused-vars
 | ||
|  |     getState = (key: string) => ""; | ||
|  | } |