UNPKG

cdp-lib

Version:

Contains npm modules used primarily by cdp boilerplate generator.

721 lines (698 loc) 24.5 kB
/*! * cdp-lib.d.ts * This file is generated by the CDP package build process. * * Date: 2018-02-23T10:48:15.871Z */ // Dependencies for this module: // ../fs-extra // ../glob // ../hogan.js // ../lodash // ../underscore.string // ../which // ../uuid // ../chalk // ../semver-regex // ../cli-spinner // ../child_process declare module "cdp-lib" { import * as Utils from "cdp-lib/utils"; export { Utils }; import { ISourceDirctoryConfigration, IBaseStructureConfigration, IProjectConfigration, IBuildTargetConfigration, ILibraryConfigration, IExternalModuleInfo, IExternalModules, IMobileAppConfigration, IDesktopAppConfigration, IWebAppConfigration } from "cdp-lib/generators"; export { ISourceDirctoryConfigration, IBaseStructureConfigration, IProjectConfigration, IBuildTargetConfigration, ILibraryConfigration, IExternalModuleInfo, IExternalModules, IMobileAppConfigration, IDesktopAppConfigration, IWebAppConfigration }; /** * @class CDPLib * @brief CDP boilerplate 生成機能を提供するクラス */ export default class CDPLib { /** * main command */ static execute(config: IProjectConfigration): Promise<void>; } } declare module "cdp-lib/utils" { export * from "cdp-lib/utils/libs"; export * from "cdp-lib/utils/tools"; export * from "cdp-lib/utils/settings"; } declare module "cdp-lib/generators" { import { GeneratorBase, IProjectConfigration } from "cdp-lib/generators/base"; export * from "cdp-lib/generators/base"; export * from "cdp-lib/generators/library"; export * from "cdp-lib/generators/mobile"; export * from "cdp-lib/generators/desktop"; export * from "cdp-lib/generators/web"; /** * generator 生成関数 */ export function newGenerator(config: IProjectConfigration): GeneratorBase; } declare module "cdp-lib/utils/libs" { import * as fs from "fs-extra"; import * as glob from "glob"; import * as hogan from "hogan.js"; import * as _l from "lodash"; import * as _s from "underscore.string"; import * as which from "which"; import * as uuid from "uuid"; import chalk from "chalk"; import * as semverRegex from "semver-regex"; import { Spinner } from "cli-spinner"; const $: JQueryStatic; export type MixinedUnderscoreStatic = typeof _s & typeof _l; const _m: MixinedUnderscoreStatic; export { fs, glob, hogan, $, _m as _, which, uuid, chalk, semverRegex, Spinner }; } declare module "cdp-lib/utils/tools" { import { SpawnOptions } from "child_process"; /** * Handle command line error and kill process. * When the application received error from cli, please call this method. * * @param {String} error error information. */ export function handleError(error: string): void; /** * "templates" ディレクトリからのパスを取得. * * @param {String} target ターゲットを指定. null の場合は、templates を返却 * @return {String} templates/hogehoge */ export function templatePath(target: string): string; /** * Get spinner instance. * CLI helper. * * @param {String} [format] spinner format string. * @param {Number} [index] spinner index defined by cli-spinner. (default: random [0-29]) * @return {Spinner} cli-spinner instance. */ export function getSpinner(format?: string, index?: number): { start: () => void; stop: (clean?: boolean) => void; }; /** * @interface NormalizeTextOptions * @brief normalizeText() に指定するオプション */ export interface NormalizeTextOptions { eol?: string; bom?: boolean; tab?: number; } /** * Normalize text line-feed. * for windows git user. * * @param {String} text input text. * @param {NormalizeTextOptions} [options] option. * @return {String} normalized text. */ export function normalizeText(text: string, options?: NormalizeTextOptions): string; /** * @interface ExecCommandOptions * @brief execCommand() に指定するオプション */ export interface ExecCommandOptions extends SpawnOptions { spinner?: { format?: string; index?: number; }; stdout?: (data: string) => void; stderr?: (data: string) => void; } /** * Execute command line by spawn. * call spawn. if error occured, cui is killed proccess. * * @param {String} command main command. ex) "cordova" * @param {String[]} args command args. ex) ["plugin", "add", pluginName] * @param {ExecCommandOptions} [options] cli-spinner"s options. * @returns {Number} error code */ export function execCommand(command: string, args: string[], options?: ExecCommandOptions): Promise<number>; /** * @interface CopyTemplateOptions * @brief copyTpl() に指定するオプション */ export interface CopyTemplateOptions extends NormalizeTextOptions { delimiters?: "{{ }}" | "<% %>"; } /** * Copy template with hogan. * sync function * * @param {String} src source file path. * @param {String} dst destination file path. * @param {Object} params template parameters. * @param {CopyTemplateOptions} [options] options object. */ export function copyTpl(src: string, dst: string, params: Object, options?: CopyTemplateOptions): void; /** * GUID generate. * returned as Windows registry type format. * * @return {String} */ export function createGUID(): string; /** * Create XML DOM node. * * @param str string xml format. ex) "<preference name="DisallowOverscroll" value="true"/>" * @returns XML Node instance */ export function str2XmlNode(str: string): JQuery; /** * Create XML string from DOM node. * * @param {String} str string xml format. ex) "<preference name="DisallowOverscroll" value="true"/>" * @return {jQuery} XML Node instance */ export function xmlNode2Str($xml: JQuery): string; /** * @interface FormatXmlOptions * @brief formatXML() に指定するオプション */ export interface FormatXmlOptions extends NormalizeTextOptions { step?: number; } /** * XML formatter. * * @param {String} str string xml format. ex) "<preference name="DisallowOverscroll" value="true"/>" * @param {FormatXmlOptions} [options] options object. * @return {String} formatted XML */ export function formatXML(str: string, options?: FormatXmlOptions): string; } declare module "cdp-lib/utils/settings" { /** * @interface IGlobalSettings * @brief グローバル設定インターフェイス */ export interface IGlobalSettings { force?: boolean; verbose?: boolean; silent?: boolean; targetDir?: string; lang?: "en-US" | "ja-JP"; } /** * 設定取得 * * @returns options ログに使用するオプション */ export function getSettings(): IGlobalSettings; /** * 設定指定 * * @param options ログに使用するオプション */ export function setSettings(settings: IGlobalSettings): void; /** * "cdp-lib" が存在するパスを取得 * * @returns cdp-lib への path */ export function getLibPath(): string; /** * 指定された targetDir を取得 * * @returns targetDir への path */ export function getTargetDir(): string; /** * ログ出力 * console.log() と同等 * * @param message 出力メッセージ * @param optionalParams 付加情報 */ export function log(message?: string, ...optionalParams: any[]): void; /** * 詳細ログ出力 * console.debug() と同等 * * @param message 出力メッセージ * @param optionalParams 付加情報 */ export function debug(message?: string, ...optionalParams: any[]): void; /** * 検証 * console.assert() と同等 * * @param test 検証する式 * @param message 出力メッセージ * @param optionalParams 付加情報 */ export function assert(test?: boolean, message?: string, ...optionalParams: any[]): void; /** * ローカライズ * * @param key キー文字列 * @returns 翻訳された文字列 */ export function translate(key: string): string; } declare module "cdp-lib/generators/base" { export * from "cdp-lib/generators/base/interfaces"; export * from "cdp-lib/generators/base/generator-base"; } declare module "cdp-lib/generators/library" { import { GeneratorBase, IProjectConfigration } from "cdp-lib/generators/base"; export * from "cdp-lib/generators/library/interfaces"; export * from "cdp-lib/generators/library/generator-module"; /** * generator 生成関数 */ export function newGeneratorLibrary(config: IProjectConfigration): GeneratorBase; } declare module "cdp-lib/generators/mobile" { import { GeneratorBase, IProjectConfigration } from "cdp-lib/generators/base"; export * from "cdp-lib/generators/mobile/interfaces"; export * from "cdp-lib/generators/mobile/generator-cordova"; /** * generator 生成関数 */ export function newGeneratorMobile(config: IProjectConfigration): GeneratorBase; } declare module "cdp-lib/generators/desktop" { import { GeneratorBase, IProjectConfigration } from "cdp-lib/generators/base"; export * from "cdp-lib/generators/desktop/interfaces"; export * from "cdp-lib/generators/desktop/generator-electoron"; /** * generator 生成関数 */ export function newGeneratorDesktop(config: IProjectConfigration): GeneratorBase; } declare module "cdp-lib/generators/web" { import { GeneratorBase, IProjectConfigration } from "cdp-lib/generators/base"; export * from "cdp-lib/generators/web/interfaces"; export * from "cdp-lib/generators/web/generator-browser"; /** * generator 生成関数 */ export function newGeneratorWeb(config: IProjectConfigration): GeneratorBase; } declare module "cdp-lib/generators/base/interfaces" { import * as Utils from "cdp-lib/utils"; export { Utils }; /** * @interface ISourceDirctoryConfigration * @brief ソースディレクトリのコンフィギュレーション設定 */ export interface ISourceDirctoryConfigration { script?: string; stylesheet?: string; template?: string; } /** * @interface IBaseStructureConfigration * @brief プロジェクトディレクトリのコンフィギュレーション設定 */ export interface IBaseStructureConfigration { src?: string; pkg?: string; built?: string; doc?: string; task?: string; test?: string; types?: string; temp?: string; srcConfig?: ISourceDirctoryConfigration; lib?: string; external?: string; porting?: string; res?: string; } /** * @interface IDependency * @brief package.json に指定する dependencies 情報を格納するインターフェイス */ export interface IDependency { name: string; version?: string; es?: string[]; globalExport?: string; alias?: string; venderName?: string; fileName?: string; } /** * @interface IProjectConfigration * @brief プロジェクト共通のコンフィギュレーション設定 */ export interface IProjectConfigration { projectName: string; projectType: string; action: string; version: string; license: string; private?: boolean; settings: Utils.IGlobalSettings; moduleName?: string; mainBaseName?: string; namespace?: string; structureConfig?: IBaseStructureConfigration; copyright?: string; devDependencies?: IDependency[]; } /** * @interface IBuildTargetConfigration * @brief ビルドターゲットコンフィギュレーション設定 */ export interface IBuildTargetConfigration { es?: "es5" | "es2015"; module?: "none" | "commonjs" | "amd" | "umd"; env?: "web" | "node" | "electron" | "electron-renderer"; nodejs?: boolean; minify?: boolean; tools?: string[]; outputSameDir?: boolean; } /** * @interface IWebpackConfigration * @brief Webpack 用コンフィギュレーション設定 */ export interface IWebpackConfigration { nodejs: boolean; guide: boolean; taskPath: string; } /** * @interface IVisualStudioConfigration * @brief Visual Studio 用コンフィギュレーション設定 */ export interface IVisualStudioConfigration extends IBaseStructureConfigration { projectName: string; projectGUID: string; mainBaseName: string; license: boolean; webpack: boolean; testem: boolean; outputSameDir: boolean; tsGroup: { relativePath: string; fileName: string; dependee: boolean; map: boolean; }[]; jsGroup: { relativePath: string; fileName: string; dependee: boolean; d_ts: boolean; map: boolean; min_map: boolean; }[]; } } declare module "cdp-lib/generators/base/generator-base" { import { glob } from "cdp-lib/utils"; import { IBaseStructureConfigration, IDependency, IProjectConfigration } from "cdp-lib/generators/base/interfaces"; /** * @class GeneratorBase * @brief すべての Generator の既定クラス */ export abstract class GeneratorBase { protected _config: IProjectConfigration; /** * constructor * * @param {IProjectConfigration} config コンフィグ */ constructor(_config: IProjectConfigration); /** * 処理開始 (エントリ) * */ run(): Promise<void>; abstract defaultBaseStructure(): IBaseStructureConfigration; abstract create(): Promise<void>; readonly abstract taskList: string[]; /** * 進捗テキストを通知 * * @param key ローカライズリソースキーを指定 */ protected progress(key: string): void; /** * 警告テキストを通知 * * @param key ローカライズリソースキーを指定 */ protected warn(key: string): void; /** * work directory の変更 * * @param directory target directory. */ protected chdir(directory: string): void; /** * project root directory の取得 * * @param {String} directory target directory. */ protected readonly rootDir: string; /** * template directory を指定して配下のファイルをコピー * IBaseStructureConfigration の設定が反映される * * @param {String} target ターゲットを指定. null の場合は、templates を返却 * @param {String} dstRoot コピー先を指定. 指定が無い場合は rootDir が設定 */ protected copyTplDir(target: string, dstRoot?: string, options?: glob.IOptions): void; /** * node module の version 取得 * * @param {Promise<string>} version text */ protected queryNodeModuleLatestVersion(name: string): Promise<string>; /** * 既定の開発時の依存モジュールリストの取得 * 必要に応じてオーバーライド * * @return {IDependency} */ protected readonly defaultDevDependencies: IDependency[]; /** * dependencies の template paramaeter を取得 * * @param {IDependency[]} dependencies 依存関係リスト * @return {{ name: string; version: string; last?: boolean; }[]} テンプレートパラメータに指定する配列 */ protected queryDependenciesParam(dependencies: IDependency[]): Promise<{ name: string; version: string; last?: boolean; }[]>; /** * webpack.config.js の template paramaeter を取得 * * @return {String} libraryTarget に指定する文字列 */ protected queryWebpackLibraryTarget(): string; /** * eslintrc の env に指定する template paramaeter を取得 * * @return {Object} env に指定するテンプレートパラメータオブジェクト */ protected queryEsLintEnvParam(): any; /** * IBuildTargetConfigration.tools プロパティの指定状況を取得 * * @param {String} name ツール名を指定 * @return {Boolean} true: 指定されている / false: 指定されていない */ protected isEnableTool(name: string): boolean; } } declare module "cdp-lib/generators/library/interfaces" { import { IProjectConfigration, IBuildTargetConfigration } from "cdp-lib/generators/base"; /** * @interface ILibraryConfigration * @brief library module プロジェクトのコンフィギュレーション設定 */ export interface ILibraryConfigration extends IProjectConfigration, IBuildTargetConfigration { projectType: "library"; env?: "node" | "web" | "electron" | "electron-renderer"; } } declare module "cdp-lib/generators/library/generator-module" { import { IBaseStructureConfigration, IDependency, GeneratorBase } from "cdp-lib/generators/base"; /** * @class GeneratorModule * @brief Library Module 用 Generator クラス */ export class GeneratorModule extends GeneratorBase { /** * 既定の directory 構造を返却 */ defaultBaseStructure(): IBaseStructureConfigration; /** * create action entry * @param {ILibraryConfigration} config コンフィグ設定 */ create(): Promise<void>; /** * 必要とする task script 一覧を返却. action: create のときに呼ばれる */ readonly taskList: string[]; /** * 開発時の依存モジュールリストの取得 * 必要に応じてオーバーライド * * @return {IDependency} */ protected readonly defaultDevDependencies: IDependency[]; } } declare module "cdp-lib/generators/mobile/interfaces" { import { IProjectConfigration, IBuildTargetConfigration, IDependency } from "cdp-lib/generators/base"; /** * @interface IExternalModuleInfo * @brief 外部ライブラリの定義 */ export interface IExternalModuleInfo { acquisition: "npm" | "npm:dev" | "cordova" | "resource"; regular: boolean; globalExport?: string; alias?: string; venderName?: string; fileName?: string; subset?: IExternalModules; } /** * @interface IExternalModules * @brief 外部ライブラリの一覧定義 */ export interface IExternalModules { [name: string]: IExternalModuleInfo; } /** * @interface IMobileAppConfigration * @brief mobile プロジェクトのコンフィギュレーション設定 */ export interface IMobileAppConfigration extends IProjectConfigration, IBuildTargetConfigration { projectType: "mobile"; env?: "web"; appName: string; appId?: string; platforms?: string[]; projectStructure?: ["lib" | "porting"]; external?: IExternalModules; dependencies?: IDependency[]; cordova_plugin?: IDependency[]; resource_addon?: IDependency[]; cordovaPackageJson?: any; } } declare module "cdp-lib/generators/mobile/generator-cordova" { import { IBaseStructureConfigration, IDependency, GeneratorBase } from "cdp-lib/generators/base"; /** * @class GeneratorCordova * @brief Mobile Cordova 用 Generator クラス */ export class GeneratorCordova extends GeneratorBase { /** * 既定の directory 構造を返却 */ defaultBaseStructure(): IBaseStructureConfigration; /** * create action entry * @param {ILibraryConfigration} config コンフィグ設定 */ create(): Promise<void>; /** * 必要とする task script 一覧を返却. action: create のときに呼ばれる */ readonly taskList: string[]; /** * 開発時の依存モジュールリストの取得 * 必要に応じてオーバーライド * * @return {IDependency} */ protected readonly defaultDevDependencies: IDependency[]; /** * eslintrc に指定する template paramaeter を取得 * * @return {Object} テンプレートパラメータオブジェクト */ protected queryEsLintEnvParam(): any; /** * tsconfig.base に指定する template paramaeter を取得 * * @return {Object} テンプレートパラメータオブジェクト */ protected queryTsConfigBaseParam(): any; } } declare module "cdp-lib/generators/desktop/interfaces" { import { IProjectConfigration, IBuildTargetConfigration } from "cdp-lib/generators/base"; /** * @interface IDesktopAppConfigration * @brief mobile プロジェクトのコンフィギュレーション設定 */ export interface IDesktopAppConfigration extends IProjectConfigration, IBuildTargetConfigration { projectType: "desktop"; env?: "web" | "electron-renderer"; } } declare module "cdp-lib/generators/desktop/generator-electoron" { import { IBaseStructureConfigration, GeneratorBase } from "cdp-lib/generators/base"; /** * @class GeneratorElectron * @brief Desktop Electron 用 Generator クラス */ export class GeneratorElectron extends GeneratorBase { /** * 既定の directory 構造を返却 */ defaultBaseStructure(): IBaseStructureConfigration; /** * create action entry * @param {IDesktopAppConfigration} config コンフィグ設定 */ create(): Promise<void>; /** * 必要とする task script 一覧を返却. action: create のときに呼ばれる */ readonly taskList: string[]; } } declare module "cdp-lib/generators/web/interfaces" { import { IProjectConfigration, IBuildTargetConfigration } from "cdp-lib/generators/base"; /** * @interface IWebAppConfigration * @brief web プロジェクトのコンフィギュレーション設定 */ export interface IWebAppConfigration extends IProjectConfigration, IBuildTargetConfigration { projectType: "web"; env?: "web"; } } declare module "cdp-lib/generators/web/generator-browser" { import { IBaseStructureConfigration, GeneratorBase } from "cdp-lib/generators/base"; /** * @class GeneratorBrowser * @brief Web Browser 用 Generator クラス */ export class GeneratorBrowser extends GeneratorBase { /** * 既定の directory 構造を返却 */ defaultBaseStructure(): IBaseStructureConfigration; /** * create action entry * @param {ILibraryConfigration} config コンフィグ設定 */ create(): Promise<void>; /** * 必要とする task script 一覧を返却. action: create のときに呼ばれる */ readonly taskList: string[]; } }