Files
discord.js/packages/api-extractor/src/cli/InitAction.ts
Qjuh 5c0fad3b2d build: package api-extractor and -model (#9920)
* fix(ExceptText): don't display import("d..-types/v10"). in return type

* Squashed 'packages/api-extractor-model/' content from commit 39ecb196c

git-subtree-dir: packages/api-extractor-model
git-subtree-split: 39ecb196ca210bdf84ba6c9cadb1bb93571849d7

* Squashed 'packages/api-extractor/' content from commit 341ad6c51

git-subtree-dir: packages/api-extractor
git-subtree-split: 341ad6c51b01656d4f73b74ad4bdb3095f9262c4

* feat(api-extractor): add api-extractor and -model

* fix: package.json docs script

* fix(SourcLink): use <> instead of function syntax

* fix: make packages private

* fix: rest params showing in docs, added labels

* fix: missed two files

* fix: cpy-cli & pnpm-lock

* fix: increase icon size

* fix: icon size again
2023-11-07 21:53:36 +01:00

46 lines
1.7 KiB
TypeScript

// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
// See LICENSE in the project root for license information.
import * as path from 'node:path';
import { FileSystem } from '@rushstack/node-core-library';
import { CommandLineAction } from '@rushstack/ts-command-line';
import colors from 'colors';
import { ExtractorConfig } from '../api/ExtractorConfig.js';
import type { ApiExtractorCommandLine } from './ApiExtractorCommandLine.js';
export class InitAction extends CommandLineAction {
public constructor(_parser: ApiExtractorCommandLine) {
super({
actionName: 'init',
summary: `Create an ${ExtractorConfig.FILENAME} config file`,
documentation:
`Use this command when setting up API Extractor for a new project. It writes an` +
` ${ExtractorConfig.FILENAME} config file template with code comments that describe all the settings.` +
` The file will be written in the current directory.`,
});
}
protected async onExecute(): Promise<void> {
// override
const inputFilePath: string = path.resolve(__dirname, './schemas/api-extractor-template.json');
const outputFilePath: string = path.resolve(ExtractorConfig.FILENAME);
if (FileSystem.exists(outputFilePath)) {
console.log(colors.red('The output file already exists:'));
console.log('\n ' + outputFilePath + '\n');
throw new Error('Unable to write output file');
}
console.log(colors.green('Writing file: ') + outputFilePath);
FileSystem.copyFile({
sourcePath: inputFilePath,
destinationPath: outputFilePath,
});
console.log(
'\nThe recommended location for this file is in the project\'s "config" subfolder,\n' +
'or else in the top-level folder with package.json.',
);
}
}