31 lines
866 B
TypeScript
31 lines
866 B
TypeScript
/*
|
|
* Copyright (C) Sapphirecode - All Rights Reserved
|
|
* This file is part of console-app which is released under MIT.
|
|
* See file 'LICENSE' for full license details.
|
|
* Created by Timo Hocker <timo@scode.ovh>, May 2020
|
|
*/
|
|
|
|
/* eslint-disable no-process-env */
|
|
import { Option, OptionValue } from '../Option';
|
|
import { OptionSource } from './OptionSource';
|
|
|
|
export class EnvSource extends OptionSource {
|
|
public async parse (opt: Option, val:OptionValue): Promise<void> {
|
|
if (typeof opt.env === 'undefined')
|
|
return;
|
|
|
|
if (typeof process.env[opt.env] === 'undefined') {
|
|
if (typeof this.error_callback !== 'undefined') {
|
|
this.error_callback (
|
|
opt.name,
|
|
null,
|
|
new Error ('environment variable does not exist')
|
|
);
|
|
}
|
|
return;
|
|
}
|
|
|
|
await val.assign_arg (opt, process.env[opt.env]);
|
|
}
|
|
}
|