file-lane 2.0.1-alpha.7 → 2.0.1-alpha.8

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.
@@ -14,7 +14,8 @@ declare class FileLaneUtil {
14
14
  * 将buildPath文件夹的内容压缩成zip包,放置于targetPath路径下
15
15
  * @param buildPath
16
16
  * @param targetPath
17
+ * @param zipRootDirNames 可自定义压缩包内最外层目录的名称
17
18
  */
18
- static zipProject(buildPath: string[], targetFile: string): Promise<void>;
19
+ static zipProject(buildPath: string[], targetFile: string, zipRootDirNames?: string[]): Promise<void>;
19
20
  }
20
21
  export default FileLaneUtil;
@@ -44,8 +44,9 @@ class FileLaneUtil {
44
44
  * 将buildPath文件夹的内容压缩成zip包,放置于targetPath路径下
45
45
  * @param buildPath
46
46
  * @param targetPath
47
+ * @param zipRootDirNames 可自定义压缩包内最外层目录的名称
47
48
  */
48
- static zipProject(buildPath, targetFile) {
49
+ static zipProject(buildPath, targetFile, zipRootDirNames) {
49
50
  return __awaiter(this, void 0, void 0, function* () {
50
51
  return new Promise((resolve, reject) => {
51
52
  const output = fs_extra_1.default.createWriteStream(targetFile);
@@ -70,9 +71,14 @@ class FileLaneUtil {
70
71
  // 将压缩文件导入到输出流中
71
72
  archive.pipe(output);
72
73
  // 指定压缩目录
73
- buildPath.forEach((folder) => {
74
+ buildPath.forEach((folder, index) => {
74
75
  const folderName = path_1.default.basename(folder); // 获取文件夹名
75
- archive.directory(folder, folderName);
76
+ if (zipRootDirNames && zipRootDirNames[index]) {
77
+ archive.directory(folder, zipRootDirNames[index]);
78
+ }
79
+ else {
80
+ archive.directory(folder, folderName);
81
+ }
76
82
  });
77
83
  // 完成压缩,关闭输出流
78
84
  archive.finalize();
@@ -1 +1 @@
1
- {"version":3,"sources":["utils/FileLaneUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,6DAAsD;AACtD,+FAAsE;AACtE,wDAA+B;AAC/B,wDAAyB;AACzB,gDAAuB;AAEvB;;GAEG;AACH,MAAM,YAAY;IAChB;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,IAAY,EAAE,cAAuB,KAAK;QAC/D,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,IAAI,WAAW,IAAI,kBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACtC,MAAM,KAAK,GAAG,kBAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;gBAClB,OAAO,GAAG,kBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;aACzC;SACF;QACD,OAAO;YACL,IAAI;YACJ,OAAO;SACR,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAO,UAAU,CAAC,SAAmB,EAAE,UAAkB;;YAC7D,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,MAAM,MAAM,GAAG,kBAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;gBAC/C,MAAM,OAAO,GAAG,kBAAQ,CAAC,MAAM,CAAC,KAAK,EAAE;oBACrC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;iBACnB,CAAC,CAAA;gBACF,OAAO;gBACP,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC1B,sBAAY,CAAC,GAAG,CAAC;wBACf,KAAK,EAAE,wBAAS,CAAC,KAAK;wBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;qBACrB,CAAC,CAAA;oBACF,MAAM,EAAE,CAAA;gBACV,CAAC,CAAC,CAAA;gBACF,aAAa;gBACb,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;oBACrB,sBAAY,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAA;gBACzC,CAAC,CAAC,CAAA;gBACF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBACtB,OAAO,EAAE,CAAA;gBACX,CAAC,CAAC,CAAA;gBACF,eAAe;gBACf,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACpB,SAAS;gBACT,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC3B,MAAM,UAAU,GAAG,cAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,CAAC,SAAS;oBAClD,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;gBACvC,CAAC,CAAC,CAAA;gBACF,aAAa;gBACb,OAAO,CAAC,QAAQ,EAAE,CAAA;YACpB,CAAC,CAAC,CAAA;QACJ,CAAC;KAAA;CACF;AACD,kBAAe,YAAY,CAAA","file":"FileLaneUtil.js","sourcesContent":["import { LOG_LEVEL } from '@aiot-toolkit/shared-utils'\nimport ColorConsole from '@aiot-toolkit/shared-utils/lib/ColorConsole'\nimport archiver from 'archiver'\nimport Fs from 'fs-extra'\nimport Path from 'path'\nimport IFileParam from '../interface/IFileParam'\n/**\n * FileLaneUtil\n */\nclass FileLaneUtil {\n /**\n * 文件路径转换为文件参数\n * @param path 路径\n * @param readContent 是否读取文件内容以设置 content 的值,默认 false\n * @returns\n */\n static pathToFileParam(path: string, readContent: boolean = false): IFileParam {\n let content = ''\n if (readContent && Fs.existsSync(path)) {\n const stats = Fs.statSync(path)\n if (stats.isFile()) {\n content = Fs.readFileSync(path, 'utf-8')\n }\n }\n return {\n path,\n content\n }\n }\n\n /**\n * 将buildPath文件夹的内容压缩成zip包,放置于targetPath路径下\n * @param buildPath\n * @param targetPath\n */\n static async zipProject(buildPath: string[], targetFile: string) {\n return new Promise<void>((resolve, reject) => {\n const output = Fs.createWriteStream(targetFile)\n const archive = archiver.create('zip', {\n zlib: { level: 9 }\n })\n // 监听错误\n archive.on('error', (err) => {\n ColorConsole.log({\n level: LOG_LEVEL.Error,\n message: err.message\n })\n reject()\n })\n // 监听写入流打开的事件\n output.on('open', () => {\n ColorConsole.log({ message: `写入流已打开` })\n })\n output.on('close', () => {\n resolve()\n })\n // 将压缩文件导入到输出流中\n archive.pipe(output)\n // 指定压缩目录\n buildPath.forEach((folder) => {\n const folderName = Path.basename(folder) // 获取文件夹名\n archive.directory(folder, folderName)\n })\n // 完成压缩,关闭输出流\n archive.finalize()\n })\n }\n}\nexport default FileLaneUtil\n"],"sourceRoot":"../../src"}
1
+ {"version":3,"sources":["utils/FileLaneUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,6DAAsD;AACtD,+FAAsE;AACtE,wDAA+B;AAC/B,wDAAyB;AACzB,gDAAuB;AAEvB;;GAEG;AACH,MAAM,YAAY;IAChB;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,IAAY,EAAE,cAAuB,KAAK;QAC/D,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,IAAI,WAAW,IAAI,kBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACtC,MAAM,KAAK,GAAG,kBAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;gBAClB,OAAO,GAAG,kBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;aACzC;SACF;QACD,OAAO;YACL,IAAI;YACJ,OAAO;SACR,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAO,UAAU,CAAC,SAAmB,EAAE,UAAkB,EAAE,eAA0B;;YACzF,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,MAAM,MAAM,GAAG,kBAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;gBAC/C,MAAM,OAAO,GAAG,kBAAQ,CAAC,MAAM,CAAC,KAAK,EAAE;oBACrC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;iBACnB,CAAC,CAAA;gBACF,OAAO;gBACP,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC1B,sBAAY,CAAC,GAAG,CAAC;wBACf,KAAK,EAAE,wBAAS,CAAC,KAAK;wBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;qBACrB,CAAC,CAAA;oBACF,MAAM,EAAE,CAAA;gBACV,CAAC,CAAC,CAAA;gBACF,aAAa;gBACb,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;oBACrB,sBAAY,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAA;gBACzC,CAAC,CAAC,CAAA;gBACF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBACtB,OAAO,EAAE,CAAA;gBACX,CAAC,CAAC,CAAA;gBACF,eAAe;gBACf,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAEpB,SAAS;gBACT,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBAClC,MAAM,UAAU,GAAG,cAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,CAAC,SAAS;oBAClD,IAAI,eAAe,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;wBAC7C,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;qBAClD;yBAAM;wBACL,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;qBACtC;gBACH,CAAC,CAAC,CAAA;gBACF,aAAa;gBACb,OAAO,CAAC,QAAQ,EAAE,CAAA;YACpB,CAAC,CAAC,CAAA;QACJ,CAAC;KAAA;CACF;AACD,kBAAe,YAAY,CAAA","file":"FileLaneUtil.js","sourcesContent":["import { LOG_LEVEL } from '@aiot-toolkit/shared-utils'\nimport ColorConsole from '@aiot-toolkit/shared-utils/lib/ColorConsole'\nimport archiver from 'archiver'\nimport Fs from 'fs-extra'\nimport Path from 'path'\nimport IFileParam from '../interface/IFileParam'\n/**\n * FileLaneUtil\n */\nclass FileLaneUtil {\n /**\n * 文件路径转换为文件参数\n * @param path 路径\n * @param readContent 是否读取文件内容以设置 content 的值,默认 false\n * @returns\n */\n static pathToFileParam(path: string, readContent: boolean = false): IFileParam {\n let content = ''\n if (readContent && Fs.existsSync(path)) {\n const stats = Fs.statSync(path)\n if (stats.isFile()) {\n content = Fs.readFileSync(path, 'utf-8')\n }\n }\n return {\n path,\n content\n }\n }\n\n /**\n * 将buildPath文件夹的内容压缩成zip包,放置于targetPath路径下\n * @param buildPath\n * @param targetPath\n * @param zipRootDirNames 可自定义压缩包内最外层目录的名称\n */\n static async zipProject(buildPath: string[], targetFile: string, zipRootDirNames?: string[]) {\n return new Promise<void>((resolve, reject) => {\n const output = Fs.createWriteStream(targetFile)\n const archive = archiver.create('zip', {\n zlib: { level: 9 }\n })\n // 监听错误\n archive.on('error', (err) => {\n ColorConsole.log({\n level: LOG_LEVEL.Error,\n message: err.message\n })\n reject()\n })\n // 监听写入流打开的事件\n output.on('open', () => {\n ColorConsole.log({ message: `写入流已打开` })\n })\n output.on('close', () => {\n resolve()\n })\n // 将压缩文件导入到输出流中\n archive.pipe(output)\n\n // 指定压缩目录\n buildPath.forEach((folder, index) => {\n const folderName = Path.basename(folder) // 获取文件夹名\n if (zipRootDirNames && zipRootDirNames[index]) {\n archive.directory(folder, zipRootDirNames[index])\n } else {\n archive.directory(folder, folderName)\n }\n })\n // 完成压缩,关闭输出流\n archive.finalize()\n })\n }\n}\nexport default FileLaneUtil\n"],"sourceRoot":"../../src"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "file-lane",
3
- "version": "2.0.1-alpha.7",
3
+ "version": "2.0.1-alpha.8",
4
4
  "description": "File conversion tool, can be one-to-one, one to N, N to one",
5
5
  "keywords": [
6
6
  "file",
@@ -25,7 +25,7 @@
25
25
  "test": "node ./__tests__/file-lane.test.js"
26
26
  },
27
27
  "dependencies": {
28
- "@aiot-toolkit/shared-utils": "2.0.1-alpha.7",
28
+ "@aiot-toolkit/shared-utils": "2.0.1-alpha.8",
29
29
  "archiver": "^6.0.1",
30
30
  "chokidar": "^3.5.3",
31
31
  "lodash": "^4.17.21"
@@ -33,5 +33,5 @@
33
33
  "devDependencies": {
34
34
  "@types/archiver": "^5.3.2"
35
35
  },
36
- "gitHead": "9fbe39dfddc2745c97d472827ff10273ab67b499"
36
+ "gitHead": "67e2c953dfce560a6133656136fe71326140e91c"
37
37
  }