@doracli/helper 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,246 @@
1
+ import * as _doracli_type from '@doracli/type';
2
+ import { TTsConfig, TDoraConfig, TCdnConfigDefine, TPackageConfig, TDoraConfigDefine, TMode, TCdn, TModule } from '@doracli/type';
3
+ import * as _cclr_lang from '@cclr/lang';
4
+ import { TPlainObject, PartialRecursive } from '@cclr/lang';
5
+ import * as _doracli_type_src_dora_config_service from '@doracli/type/src/dora-config-service';
6
+ import * as _doracli_type_src_dora_config_mocks from '@doracli/type/src/dora-config-mocks';
7
+ import * as _doracli_type_src_dora_config_esbuild from '@doracli/type/src/dora-config-esbuild';
8
+ export { default as picocolors } from 'picocolors';
9
+
10
+ declare class ConfigCtx {
11
+ private tsConfig;
12
+ private doraConfig;
13
+ private packageConfig;
14
+ private cdnConfig;
15
+ private cmd;
16
+ private workRoot;
17
+ setCmd(cmd: TPlainObject): void;
18
+ getCmd(): TPlainObject;
19
+ setWorkRoot(root: string): void;
20
+ getWorkRoot(): string;
21
+ setTsConfig(config: TTsConfig): void;
22
+ getTsConfig(): TTsConfig;
23
+ setDoraConfig(config: TDoraConfig): void;
24
+ getDoraConfig(): TDoraConfig;
25
+ setCdnConfig(config: TCdnConfigDefine): void;
26
+ getCdnConfig(): Partial<Record<"headAfterScript" | "headAfterStyle" | "bodyBeforeScript" | "bodyAfterScript", ((mode: _doracli_type.TMode) => string[]) | string[]>>;
27
+ setPackageConfig(config: TPackageConfig): void;
28
+ getPackageConfig(): TPackageConfig;
29
+ copy(): ConfigCtx;
30
+ }
31
+
32
+ declare enum EnvEnum {
33
+ dev = "development",
34
+ prod = "production"
35
+ }
36
+
37
+ /**
38
+ * 在制定目录下插入 tsconfig.json 文件
39
+ * @param cwd
40
+ */
41
+ declare const insertTsconfig: (cwd?: string) => Promise<void>;
42
+
43
+ /**
44
+ * @param mode 模式
45
+ * @param status 状态
46
+ * @param msg 消息
47
+ * @returns
48
+ */
49
+ declare const cLogMessage: (mode: string, status: string, ...msg: string[]) => void;
50
+ declare const cLogError: (mode: string, status: string, ...msg: string[]) => void;
51
+ declare const cLogWarn: (mode: "serve" | "build" | string, status: string, ...msg: string[]) => void;
52
+ declare const cLogSuccess: (mode: string, status: string, ...msg: string[]) => void;
53
+ declare const cLogTime: (key?: string) => () => void;
54
+ declare const cLogTimeEnd: (key: string) => void;
55
+ declare const cLog: {
56
+ log: (mode: string, status: string, ...msg: string[]) => void;
57
+ error: (mode: string, status: string, ...msg: string[]) => void;
58
+ warn: (mode: "serve" | "build" | string, status: string, ...msg: string[]) => void;
59
+ info: (mode: string, status: string, ...msg: string[]) => void;
60
+ time: (key?: string) => () => void;
61
+ timeEnd: (key: string) => void;
62
+ };
63
+
64
+ declare const getDoracliConfig: (root: string) => Promise<TDoraConfigDefine | null>;
65
+
66
+ /**
67
+ * 获取json文件
68
+ * @param root
69
+ * @returns
70
+ */
71
+ declare const getPackageJson: (root?: string) => Promise<any>;
72
+
73
+ declare const getTsconfigJson: (root: string) => Promise<any>;
74
+
75
+ /**
76
+ * 获取cdn文件配置
77
+ * @returns
78
+ */
79
+ declare function getUserCdn(root: string): Promise<TCdnConfigDefine | null>;
80
+
81
+ declare const mergeDoraCliConfig: <T extends PartialRecursive<TDoraConfig>>(target: T, source?: T) => Omit<T, "output"> & {
82
+ output: {
83
+ file?: string;
84
+ path?: string | undefined;
85
+ };
86
+ };
87
+ /**
88
+ * 合并多个配置项
89
+ * @param target 配置项,可多个,后面的配置项会覆盖前面的配置项
90
+ * @returns
91
+ */
92
+ declare const mergeDoraCliConfigMutiple: <T extends PartialRecursive<TDoraConfig>>(...target: T[]) => T;
93
+
94
+ /**
95
+ * 获取cdn文件配置
96
+ * @param workRootDir
97
+ * @param mode
98
+ * @returns
99
+ */
100
+ declare function parseCdnConfig(cdnConfig: TCdnConfigDefine | null, mode: TMode): TCdn | undefined;
101
+
102
+ /**
103
+ * 解析doracli配置
104
+ * @param workRootDir
105
+ * @param mode
106
+ * @returns
107
+ */
108
+ declare const parseDoracliConfig: (userConfig: TDoraConfigDefine | null, mode: TMode) => Promise<PartialRecursive<TDoraConfig> | null>;
109
+
110
+ /**
111
+ * 配置项多任务拆分
112
+ * @param config 配置项
113
+ * @returns
114
+ */
115
+ declare const splitDoraCliConfig: (config: TDoraConfig) => PartialRecursive<TDoraConfig>[] | {
116
+ input: string;
117
+ output: _doracli_type.TOutput;
118
+ formatList: _doracli_type.TModule[];
119
+ format: _doracli_type.TModule;
120
+ clear: boolean;
121
+ minimize: boolean;
122
+ externals: string[];
123
+ internals: string[];
124
+ alias: Record<string, string>;
125
+ dts: {
126
+ input?: string;
127
+ output?: string;
128
+ } | false;
129
+ copy: {
130
+ src: string;
131
+ dest: string;
132
+ }[];
133
+ webpackConfig?: _doracli_type.TDoraConfigWebpack;
134
+ rollupConfig?: _doracli_type.TDoraConfigRollup;
135
+ esbuildConfig?: _doracli_type_src_dora_config_esbuild.TDoraConfigEsbuild;
136
+ mocksConfig?: _doracli_type_src_dora_config_mocks.TDoraConfigMocks;
137
+ serviceConfig?: _doracli_type_src_dora_config_service.TDoraConfigService;
138
+ }[];
139
+
140
+ declare const wholeDoraConfig: (config: PartialRecursive<TDoraConfig>, workRootDir?: string) => TDoraConfig;
141
+
142
+ declare const inputFileDirList: string[];
143
+ declare const inputFileTypeList: string[];
144
+ declare const findInput: (workRootDir: string) => string;
145
+
146
+ /**
147
+ * 获取tsconfig.json里的paths,作为项目路径别名
148
+ * @param tsConfig
149
+ * @returns
150
+ */
151
+ declare const getTsPathAlias: (tsConfig: TTsConfig) => Record<string, string>;
152
+
153
+ /**
154
+ * 收集用户配置
155
+ * @param configCtx ConfigCtx
156
+ * @param mode 开发 or 生产
157
+ * @param presetConfig 预设配置
158
+ */
159
+ declare const collectConfig: (configCtx: ConfigCtx, mode: TMode, presetConfig?: {
160
+ doraConfig?: PartialRecursive<TDoraConfig>;
161
+ }) => Promise<void>;
162
+
163
+ /**
164
+ * 获取cdn文件配置
165
+ * @returns
166
+ */
167
+ declare function resolveCdnConfig(workRootDir: string, mode: TMode): Promise<{} | undefined>;
168
+
169
+ declare const resolveDoraConfig: (workRootDir: string, mode: TMode) => Promise<_cclr_lang.PartialRecursive<_doracli_type.TDoraConfig> | null>;
170
+
171
+ /**
172
+ * 获取json文件
173
+ * @param root
174
+ * @returns
175
+ */
176
+ declare const resolvePackageJson: (workRootDir: string) => Promise<any>;
177
+
178
+ declare const resolveTsconfigJson: (workRootDir: string) => Promise<any>;
179
+
180
+ type TCollectType = {
181
+ doraConfig: TDoraConfigDefine | null;
182
+ packageConfig: TPackageConfig | null;
183
+ tsconfigConfig: TTsConfig | null;
184
+ cdnConfig: TCdnConfigDefine | null;
185
+ };
186
+ declare const collectConfigs: (workDir: string, need?: {
187
+ doraConfig?: boolean;
188
+ packageConfig?: boolean;
189
+ tsconfigConfig?: boolean;
190
+ cdnConfig?: boolean;
191
+ }) => Promise<TCollectType>;
192
+
193
+ type TParseConfigResult = {
194
+ doraConfig: TDoraConfig;
195
+ packageConfig: TPackageConfig;
196
+ tsConfig: TTsConfig;
197
+ cdnConfig: TCdn;
198
+ };
199
+ declare const parsetConfig: (config: TCollectType, mode: TMode) => Promise<TParseConfigResult>;
200
+
201
+ declare const configCtxCollect: (configCtx: ConfigCtx, params: {
202
+ workRootDir?: string;
203
+ cmd?: TPlainObject;
204
+ } & TParseConfigResult) => Promise<void>;
205
+
206
+ declare const createEnvParams: <T extends TPlainObject>(params: T) => T;
207
+
208
+ type TOutputSingle = {
209
+ /** 输入地址 */
210
+ input: string;
211
+ /** 输出文件路径 */
212
+ outputFile: string;
213
+ /** 输出文件路径 */
214
+ outputPath: string;
215
+ /** 格式化 */
216
+ format: TModule;
217
+ };
218
+ declare const createOutputList: (config: TDoraConfig) => TOutputSingle[];
219
+
220
+ declare const splitDoraConfig: (config: TDoraConfig) => {
221
+ input: string;
222
+ output: _doracli_type.TOutput;
223
+ formatList: _doracli_type.TModule[];
224
+ format: _doracli_type.TModule;
225
+ clear: boolean;
226
+ minimize: boolean;
227
+ externals: string[];
228
+ internals: string[];
229
+ alias: Record<string, string>;
230
+ dts: {
231
+ input?: string;
232
+ output?: string;
233
+ } | false;
234
+ copy: {
235
+ src: string;
236
+ dest: string;
237
+ }[];
238
+ webpackConfig?: _doracli_type.TDoraConfigWebpack;
239
+ rollupConfig?: _doracli_type.TDoraConfigRollup;
240
+ esbuildConfig?: _doracli_type_src_dora_config_esbuild.TDoraConfigEsbuild;
241
+ mocksConfig?: _doracli_type_src_dora_config_mocks.TDoraConfigMocks;
242
+ serviceConfig?: _doracli_type_src_dora_config_service.TDoraConfigService;
243
+ }[] | PartialRecursive<TDoraConfig>[];
244
+
245
+ export { ConfigCtx, EnvEnum, cLog, cLogError, cLogMessage, cLogSuccess, cLogTime, cLogTimeEnd, cLogWarn, collectConfig, collectConfigs, configCtxCollect, createEnvParams, createOutputList, findInput, getDoracliConfig, getPackageJson, getTsPathAlias, getTsconfigJson, getUserCdn, inputFileDirList, inputFileTypeList, insertTsconfig, mergeDoraCliConfig, mergeDoraCliConfigMutiple, parseCdnConfig, parseDoracliConfig, parsetConfig, resolveCdnConfig, resolveDoraConfig, resolvePackageJson, resolveTsconfigJson, splitDoraCliConfig, splitDoraConfig, wholeDoraConfig };
246
+ export type { TCollectType, TOutputSingle, TParseConfigResult };
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@doracli/helper",
3
+ "version": "0.0.1",
4
+ "description": "use helper",
5
+ "author": "cclr <18843152354@163.com>",
6
+ "homepage": "",
7
+ "license": "MIT",
8
+ "type": "module",
9
+ "exports": {
10
+ "import": "./lib/esm/index.js",
11
+ "require": "./lib/cjs/index.js"
12
+ },
13
+ "types": "lib/type/index.d.ts",
14
+ "directories": {
15
+ "lib": "lib"
16
+ },
17
+ "files": [
18
+ "lib",
19
+ "README.md"
20
+ ],
21
+ "publishConfig": {
22
+ "access": "public",
23
+ "registry": "https://registry.npmjs.org/"
24
+ },
25
+ "scripts": {
26
+ "test": "vitest",
27
+ "g:test": "vitest run",
28
+ "build": "drn build",
29
+ "g:build": "drn build"
30
+ },
31
+ "dependencies": {
32
+ "@cclr/lang": "^0.1.28",
33
+ "@cclr/utils": "^0.1.28",
34
+ "@dorabag/config-loader": "^1.0.10",
35
+ "@dorabag/file-pro": "^1.0.10",
36
+ "@dorabag/open-browser": "^1.0.10",
37
+ "@dorabag/srv-tool": "^1.0.10",
38
+ "@doracli/type": "^0.0.1",
39
+ "picocolors": "^1.1.1",
40
+ "webpack": "^5.102.1",
41
+ "webpack-dev-server": "^5.2.2"
42
+ },
43
+ "gitHead": "40ab496f25042487a671979074515f3345c96453"
44
+ }