2export type EpScope = 'alljs' | 'deployjs' | 'dockerjs' | 'pubfejs' 3export type EpScopeClr = EpScope | 'deploysrvjs' 4export type SimpleEpScope = Exclude<EpScope, 'pubfejs'> 7export const epScopes = { 12 deploysrvjs: 'deploysrvjs', 15// Colors for each scope (for legend display) 16type ClrName = 'green' | 'gray' | 'yellow' | 'cyan' | 'magenta' 17export const epScopeColors: Record<EpScopeClr, ClrName> = { 22 deploysrvjs: 'magenta', 26export type EpScopeCfg = { 32export const epScopeToCfgH: Record<EpScope, EpScopeCfg> = { 33 [epScopes.alljs]: {inclDeploy: true, inclDocker: true}, 34 [epScopes.deployjs]: {inclDeploy: true}, 35 [epScopes.dockerjs]: {inclDocker: true}, 36 [epScopes.pubfejs]: {inclDocker: true, feOnly: true}, 40export const allEpScopeOptA: EpScope[] = [epScopes.alljs, epScopes.deployjs, epScopes.dockerjs, epScopes.pubfejs] 42// Scopes for simple deploys (no pubfejs) 43export const simpleEpScopeOptA: SimpleEpScope[] = [epScopes.alljs, epScopes.deployjs, epScopes.dockerjs] 45export const legendScopes: EpScopeClr[] = [epScopes.alljs, epScopes.deploysrvjs, epScopes.pubfejs, epScopes.dockerjs, epScopes.deployjs] 46export const simpleLegendScopes: SimpleEpScope[] = [epScopes.dockerjs, epScopes.deployjs] 48export type EpScopeSets = { deployjsSet: Set<string>, dockerjsSet: Set<string>, pubfejsSet: Set<string> } 50export const fileClrFromEpTypes = (inDeploy: boolean, inDocker: boolean, inFe: boolean) => { 51 if (inDeploy && inFe) return epScopeColors.alljs 52 if (inFe) return epScopeColors.pubfejs 53 if (inDeploy && inDocker) return epScopeColors.deploysrvjs 54 if (inDocker) return epScopeColors.dockerjs 55 return epScopeColors.deployjs 58export const fileClrFromEpSets = (path: string, {deployjsSet, dockerjsSet, pubfejsSet}: EpScopeSets) => 59 fileClrFromEpTypes(deployjsSet.has(path), dockerjsSet.has(path), pubfejsSet.has(path))