mirror of
https://github.com/jsdoc/jsdoc.git
synced 2025-12-08 19:46:11 +00:00
112 lines
2.6 KiB
JavaScript
112 lines
2.6 KiB
JavaScript
/*
|
|
Copyright 2019 the JSDoc Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
https://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
import EventEmitter from 'node:events';
|
|
|
|
import { getLogFunctions } from '@jsdoc/util';
|
|
|
|
/**
|
|
* Data about the environment in which JSDoc is running, including the configuration settings that
|
|
* were used to run JSDoc.
|
|
*
|
|
* @alias module:@jsdoc/core.Env
|
|
*/
|
|
export default class Env {
|
|
constructor() {
|
|
/**
|
|
* The command-line arguments passed to JSDoc.
|
|
*
|
|
* @type {Array<*>}
|
|
*/
|
|
this.args = process.argv.slice(2);
|
|
|
|
/**
|
|
* The data parsed from JSDoc's configuration file.
|
|
*
|
|
* @type Object<string, *>
|
|
*/
|
|
this.conf = {};
|
|
|
|
/**
|
|
* The event emitter shared across JSDoc.
|
|
*
|
|
* @type {Object}
|
|
*/
|
|
this.emitter = new EventEmitter();
|
|
|
|
/**
|
|
* Logging functions shared across JSDoc.
|
|
*
|
|
* @type {Object<string, function>}
|
|
*/
|
|
this.log = getLogFunctions(this.emitter);
|
|
|
|
/**
|
|
* The command-line arguments, parsed into a key/value hash.
|
|
*
|
|
* @type {Object}
|
|
* @example if (global.env.opts.help) { console.log('Helpful message.'); }
|
|
*/
|
|
this.opts = {};
|
|
|
|
/**
|
|
* The times at which JSDoc started and finished.
|
|
*
|
|
* @type {Object}
|
|
* @property {Date} start - The time at which JSDoc started running.
|
|
* @property {Date} finish - The time at which JSDoc finished running.
|
|
*/
|
|
this.run = {
|
|
start: new Date(),
|
|
finish: null,
|
|
};
|
|
|
|
/**
|
|
* The source files that JSDoc will parse.
|
|
*
|
|
* @type {Array<string>}
|
|
*/
|
|
this.sourceFiles = [];
|
|
|
|
/**
|
|
* The dictionary of tags recognized by JSDoc.
|
|
*
|
|
* @type {module:@jsdoc/tags.Dictionary}
|
|
*/
|
|
this.tags = null;
|
|
|
|
/**
|
|
* The JSDoc version number and revision date.
|
|
*
|
|
* @type {Object<string, string>}
|
|
* @property {string} number - The JSDoc version number.
|
|
* @property {string} revision - The JSDoc revision number, expressed as a UTC date string.
|
|
*/
|
|
this.version = {
|
|
number: null,
|
|
revision: null,
|
|
};
|
|
}
|
|
|
|
get config() {
|
|
return this.conf;
|
|
}
|
|
|
|
get options() {
|
|
return this.opts;
|
|
}
|
|
}
|