6export type secretNameType = string & { readonly __brand: unique symbol } 8export class SecretNotExistErr extends PtErr { 9 constructor(secretPath: string) { 10 super('!secretNotExist', { secretPath }) 14export type secretStrType = string & { readonly __brand: unique symbol } 16const plainSecretsH : Record<secretNameType, secretStrType> = {} 18const readSecretOrThrow = (secretPath: string) => { 19 try { return fs.readFileSync(secretPath, 'utf-8').trim() } 20 catch (err) { if ((err as NodeJS.ErrnoException).code === 'ENOENT') throw new SecretNotExistErr(secretPath); throw err } 23export const getPlainNoMappedSec = (secName : secretNameType) => { 25 return plainSecretsH[secName] ||= readSecretOrThrow(secretPath) as secretStrType 28export const getPlainSecOpt = (secName: secretNameType): secretStrType | undefined => { 29 try { return getPlainNoMappedSec(secName) } 30 catch (err) { if (err instanceof SecretNotExistErr) return undefined; throw err }