@cyklang/cli 0.5.5 → 0.5.6

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.
@@ -354,11 +354,9 @@ function buildUploadList(dirName, dest, localList, remoteList) {
354
354
  const route = dest + localDesc.path.substring(dirName.length);
355
355
  const remoteDesc = remoteMap.get(route);
356
356
  if (remoteDesc === undefined || remoteDesc.mtime.getTime() + 1000 < localDesc.mtime.getTime()) {
357
- if (remoteDesc === undefined)
358
- logger.debug('remoteDesc undefined');
359
- else
360
- logger.debug('remoteDesc.mtime ' + remoteDesc.mtime.getTime(), 'localDesc.mtime ' + localDesc.mtime.getTime());
361
- logger.info(localDesc.path);
357
+ // if (remoteDesc === undefined) logger.debug('remoteDesc undefined')
358
+ // else logger.debug('remoteDesc.mtime ' + remoteDesc.mtime.getTime(), 'localDesc.mtime ' + localDesc.mtime.getTime())
359
+ // logger.info(localDesc.path)
362
360
  result.push(localDesc);
363
361
  }
364
362
  }
@@ -417,7 +415,7 @@ async function uploadFiles(dirName, uploadList, dest, dbManager, dbRemote, auth)
417
415
  for (let ind = 0; ind < uploadList.length; ind++) {
418
416
  const upload = uploadList[ind];
419
417
  const route = dest + upload.path.substring(dirName.length);
420
- logger.debug('upload ' + upload.path + ' to ' + route);
418
+ // logger.debug('upload ' + upload.path + ' to ' + route)
421
419
  await uploadAsset(upload, route, dbManager, dbRemote, auth);
422
420
  }
423
421
  }
@@ -451,7 +449,7 @@ async function uploadAsset(upload, route, dbManager, dbRemote, auth) {
451
449
  // logger.debug('dbAsset.content length ' + dbAsset.content.length)
452
450
  if (dbAsset.id === undefined) {
453
451
  dbAsset.id = await dbManager?.dbAssetInsert(dbAsset);
454
- logger.info('inserted asset ' + dbAsset.id + ' route ' + dbAsset.route);
452
+ logger.info('inserted asset ' + dbAsset.route);
455
453
  }
456
454
  else {
457
455
  await dbManager?.dbAssetUpdate(dbAsset);
@@ -486,7 +484,7 @@ function mimetypeLookup(filename) {
486
484
  * @param dbRemote
487
485
  */
488
486
  async function uploadAssetContent(dbAsset, fileName, dbRemote) {
489
- logger.debug('uploadAssetContent file ' + fileName + ' to path ' + path_1.default);
487
+ // logger.debug('uploadAssetContent file ' + fileName + ' to path ' + path)
490
488
  try {
491
489
  const file = fs.createReadStream(fileName);
492
490
  const form = new form_data_1.default();
@@ -72,7 +72,7 @@ async function installPackage(node_package, dbManager, dbRemote) {
72
72
  /**
73
73
  * install the Node Package
74
74
  */
75
- await installNodePackage(node_package, dbManager);
75
+ await installNodePackage(node_package, dbManager, dbRemote);
76
76
  const installScript = await lookupInstallScript(node_package);
77
77
  if (installScript) {
78
78
  /**
@@ -117,8 +117,6 @@ async function uploadPackageAssets(node_package, dbManager, dbRemote) {
117
117
  }
118
118
  console.log();
119
119
  console.log('upload assets to server ...');
120
- if (!dbManager)
121
- throw 'dbManager undefined';
122
120
  const items = fs.readdirSync(assetFolder);
123
121
  for (let ind = 0; ind < items.length; ind++) {
124
122
  const item = items[ind];
@@ -168,7 +166,7 @@ async function uploadPackageModules(node_package, dbManager) {
168
166
  * method installNodePackage
169
167
  * @param node_package
170
168
  */
171
- async function installNodePackage(node_package, dbManager) {
169
+ async function installNodePackage(node_package, dbManager, dbRemote) {
172
170
  try {
173
171
  const packageJson = await (0, Cmd_1.readPackageJson)();
174
172
  if (packageJson.devDependencies && packageJson.devDependencies[node_package]
@@ -176,7 +174,7 @@ async function installNodePackage(node_package, dbManager) {
176
174
  console.log(node_package + ' already installed. We uninstall it first');
177
175
  if (!dbManager)
178
176
  throw 'dbManager undefined';
179
- await (0, UninstallCommand_1.uninstallPackage)(node_package, dbManager);
177
+ await (0, UninstallCommand_1.uninstallPackage)(node_package, dbManager, dbRemote);
180
178
  }
181
179
  await (0, Cmd_1.runShellCommand)('npm', ['install', '--save-dev', node_package]);
182
180
  }
@@ -1,5 +1,5 @@
1
1
  import { Cmd } from "./Cmd";
2
- import { DBManager } from "@cyklang/core";
2
+ import { DBManager, DBRemote } from "@cyklang/core";
3
3
  export declare class UninstallCommand extends Cmd {
4
4
  /**
5
5
  * constructor
@@ -17,4 +17,4 @@ export declare class UninstallCommand extends Cmd {
17
17
  * function uninstallPackage
18
18
  * @param node_package
19
19
  */
20
- export declare function uninstallPackage(node_package: string, dbManager: DBManager): Promise<void>;
20
+ export declare function uninstallPackage(node_package: string, dbManager: DBManager, dbRemote: DBRemote): Promise<void>;
@@ -56,9 +56,9 @@ class UninstallCommand extends Cmd_1.Cmd {
56
56
  async uninstall(node_package, options) {
57
57
  try {
58
58
  await this.prologue(options);
59
- if (this.dbManager === undefined)
60
- throw 'dbManager undefined';
61
- await uninstallPackage(node_package, this.dbManager);
59
+ if (!this.dbManager || !this.dbRemote)
60
+ throw 'dbManager or dbRemote undefined';
61
+ await uninstallPackage(node_package, this.dbManager, this.dbRemote);
62
62
  }
63
63
  catch (err) {
64
64
  logger.error(err);
@@ -70,7 +70,7 @@ exports.UninstallCommand = UninstallCommand;
70
70
  * function uninstallPackage
71
71
  * @param node_package
72
72
  */
73
- async function uninstallPackage(node_package, dbManager) {
73
+ async function uninstallPackage(node_package, dbManager, dbRemote) {
74
74
  const uninstallScript = await lookupUninstallScript(node_package);
75
75
  if (uninstallScript) {
76
76
  /**
@@ -83,7 +83,7 @@ async function uninstallPackage(node_package, dbManager) {
83
83
  /**
84
84
  * default uninstall :
85
85
  */
86
- await defaultUninstallScript(node_package, dbManager);
86
+ await defaultUninstallScript(node_package, dbManager, dbRemote);
87
87
  }
88
88
  /**
89
89
  * uninstall the node package
@@ -95,13 +95,60 @@ exports.uninstallPackage = uninstallPackage;
95
95
  * method defaultUninstallScript
96
96
  * @param node_package
97
97
  */
98
- async function defaultUninstallScript(node_package, dbManager) {
98
+ async function defaultUninstallScript(node_package, dbManager, dbRemote) {
99
99
  console.log();
100
100
  console.log('Default uninstall script');
101
101
  /**
102
102
  * delete package modules from server
103
103
  */
104
104
  await deletePackageModules(node_package, dbManager);
105
+ /**
106
+ * delete package assets from server
107
+ */
108
+ await deletePackageAssets(node_package, dbManager, dbRemote);
109
+ }
110
+ /**
111
+ * function deletePackageAssets
112
+ * @param node_package
113
+ * @param dbManager
114
+ * @param dbRemote
115
+ */
116
+ async function deletePackageAssets(node_package, dbManager, dbRemote) {
117
+ const assetFolder = path.join('node_modules', node_package, 'asset');
118
+ if (!fs.existsSync(assetFolder) || !fs.statSync(assetFolder).isDirectory()) {
119
+ return;
120
+ }
121
+ console.log();
122
+ console.log('delete assets from server ...');
123
+ await browseFolder(assetFolder, async (filePath) => {
124
+ const route = '/' + path.relative(assetFolder, filePath);
125
+ const dbAsset = await dbManager.dbAssetExist(route);
126
+ if (!dbAsset) {
127
+ logger.info('asset ' + route + ' not found');
128
+ return;
129
+ }
130
+ await dbManager.dbAssetDelete(dbAsset);
131
+ logger.info('asset ' + route + ' deleted');
132
+ });
133
+ console.log((0, kolorist_1.green)('*') + ' delete assets from server');
134
+ }
135
+ /**
136
+ * browseFolder
137
+ * @param folder
138
+ * @param treatment
139
+ */
140
+ async function browseFolder(folder, treatment) {
141
+ const files = fs.readdirSync(folder);
142
+ for (let ind = 0; ind < files.length; ind++) {
143
+ const file = files[ind];
144
+ const pathName = folder + '/' + file;
145
+ if (fs.statSync(pathName).isDirectory()) {
146
+ await browseFolder(pathName, treatment);
147
+ }
148
+ else {
149
+ await treatment(pathName);
150
+ }
151
+ }
105
152
  }
106
153
  /**
107
154
  * function deletePackageModules
package/build/index.js CHANGED
@@ -20,7 +20,7 @@ const logger = loglevel_1.default.getLogger("index.ts");
20
20
  logger.setLevel("debug");
21
21
  const program = new commander_1.Command();
22
22
  program.name('cyk').description('cyklang CLI')
23
- .version('0.5.5');
23
+ .version('0.5.6');
24
24
  program.addCommand(new InstallCommand_1.InstallCommand('install'));
25
25
  program.addCommand(new InstallCommand_1.InstallCommand('i'));
26
26
  program.addCommand(new UninstallCommand_1.UninstallCommand('uninstall'));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyklang/cli",
3
- "version": "0.5.5",
3
+ "version": "0.5.6",
4
4
  "description": "cyklang CLI",
5
5
  "main": "build/index.js",
6
6
  "scripts": {
@@ -366,9 +366,9 @@ function buildUploadList(dirName: string, dest: string, localList: FileDescripto
366
366
  const remoteDesc = remoteMap.get(route)
367
367
 
368
368
  if (remoteDesc === undefined || remoteDesc.mtime.getTime() + 1000 < localDesc.mtime.getTime()) {
369
- if (remoteDesc === undefined) logger.debug('remoteDesc undefined')
370
- else logger.debug('remoteDesc.mtime ' + remoteDesc.mtime.getTime(), 'localDesc.mtime ' + localDesc.mtime.getTime())
371
- logger.info(localDesc.path)
369
+ // if (remoteDesc === undefined) logger.debug('remoteDesc undefined')
370
+ // else logger.debug('remoteDesc.mtime ' + remoteDesc.mtime.getTime(), 'localDesc.mtime ' + localDesc.mtime.getTime())
371
+ // logger.info(localDesc.path)
372
372
  result.push(localDesc)
373
373
  }
374
374
  }
@@ -426,7 +426,7 @@ async function uploadFiles(dirName: string, uploadList: FileDescriptor[], dest:
426
426
  for (let ind = 0; ind < uploadList.length; ind++) {
427
427
  const upload = uploadList[ind]
428
428
  const route = dest + upload.path.substring(dirName.length)
429
- logger.debug('upload ' + upload.path + ' to ' + route)
429
+ // logger.debug('upload ' + upload.path + ' to ' + route)
430
430
  await uploadAsset(upload, route, dbManager, dbRemote, auth)
431
431
  }
432
432
  }
@@ -463,7 +463,7 @@ export async function uploadAsset(upload: FileDescriptor, route: string, dbManag
463
463
 
464
464
  if (dbAsset.id === undefined) {
465
465
  dbAsset.id = await dbManager?.dbAssetInsert(dbAsset)
466
- logger.info('inserted asset ' + dbAsset.id + ' route ' + dbAsset.route)
466
+ logger.info('inserted asset ' + dbAsset.route)
467
467
  }
468
468
  else {
469
469
  await dbManager?.dbAssetUpdate(dbAsset)
@@ -500,7 +500,7 @@ function mimetypeLookup(filename: string): string | false {
500
500
  * @param dbRemote
501
501
  */
502
502
  async function uploadAssetContent(dbAsset: DBAsset, fileName: string, dbRemote: DBRemote | undefined) {
503
- logger.debug('uploadAssetContent file ' + fileName + ' to path ' + path)
503
+ // logger.debug('uploadAssetContent file ' + fileName + ' to path ' + path)
504
504
  try {
505
505
  const file = fs.createReadStream(fileName)
506
506
  const form = new FormData()
@@ -48,7 +48,7 @@ export async function installPackage(node_package: string, dbManager: DBManager,
48
48
  /**
49
49
  * install the Node Package
50
50
  */
51
- await installNodePackage(node_package, dbManager)
51
+ await installNodePackage(node_package, dbManager, dbRemote)
52
52
 
53
53
  const installScript = await lookupInstallScript(node_package)
54
54
 
@@ -100,7 +100,6 @@ async function uploadPackageAssets(node_package: string, dbManager: DBManager, d
100
100
  console.log()
101
101
  console.log('upload assets to server ...')
102
102
 
103
- if (!dbManager) throw 'dbManager undefined'
104
103
  const items = fs.readdirSync(assetFolder)
105
104
  for (let ind = 0; ind < items.length; ind++) {
106
105
  const item = items[ind]
@@ -153,7 +152,7 @@ async function uploadPackageModules(node_package: string, dbManager: DBManager)
153
152
  * method installNodePackage
154
153
  * @param node_package
155
154
  */
156
- async function installNodePackage(node_package: string, dbManager: DBManager) {
155
+ async function installNodePackage(node_package: string, dbManager: DBManager, dbRemote: DBRemote) {
157
156
 
158
157
  try {
159
158
  const packageJson = await readPackageJson()
@@ -161,7 +160,7 @@ async function installNodePackage(node_package: string, dbManager: DBManager) {
161
160
  || packageJson.dependencies && packageJson.dependencies[node_package]) {
162
161
  console.log(node_package + ' already installed. We uninstall it first')
163
162
  if (!dbManager) throw 'dbManager undefined'
164
- await uninstallPackage(node_package, dbManager)
163
+ await uninstallPackage(node_package, dbManager, dbRemote)
165
164
  }
166
165
 
167
166
  await runShellCommand('npm', ['install', '--save-dev', node_package])
@@ -5,7 +5,7 @@ import { green, red, bold } from 'kolorist'
5
5
 
6
6
  import loglevel from 'loglevel'
7
7
  import { deleteModule } from "./ModuleCommand";
8
- import { DBManager } from "@cyklang/core";
8
+ import { DBManager, DBRemote } from "@cyklang/core";
9
9
  const logger = loglevel.getLogger('UninstallCommand.ts')
10
10
  logger.setLevel('debug')
11
11
 
@@ -31,9 +31,9 @@ export class UninstallCommand extends Cmd {
31
31
  async uninstall(node_package: string, options: any) {
32
32
  try {
33
33
  await this.prologue(options)
34
- if (this.dbManager === undefined) throw 'dbManager undefined'
34
+ if (! this.dbManager || ! this.dbRemote) throw 'dbManager or dbRemote undefined'
35
35
 
36
- await uninstallPackage(node_package, this.dbManager)
36
+ await uninstallPackage(node_package, this.dbManager, this.dbRemote)
37
37
  }
38
38
  catch (err) {
39
39
  logger.error(err)
@@ -45,7 +45,7 @@ export class UninstallCommand extends Cmd {
45
45
  * function uninstallPackage
46
46
  * @param node_package
47
47
  */
48
- export async function uninstallPackage(node_package: string, dbManager: DBManager) {
48
+ export async function uninstallPackage(node_package: string, dbManager: DBManager, dbRemote: DBRemote) {
49
49
 
50
50
  const uninstallScript = await lookupUninstallScript(node_package)
51
51
  if (uninstallScript) {
@@ -59,7 +59,7 @@ export async function uninstallPackage(node_package: string, dbManager: DBManage
59
59
  /**
60
60
  * default uninstall :
61
61
  */
62
- await defaultUninstallScript(node_package, dbManager)
62
+ await defaultUninstallScript(node_package, dbManager, dbRemote)
63
63
  }
64
64
 
65
65
  /**
@@ -72,14 +72,65 @@ export async function uninstallPackage(node_package: string, dbManager: DBManage
72
72
  * method defaultUninstallScript
73
73
  * @param node_package
74
74
  */
75
- async function defaultUninstallScript(node_package: string, dbManager: DBManager) {
75
+ async function defaultUninstallScript(node_package: string, dbManager: DBManager, dbRemote: DBRemote) {
76
76
  console.log()
77
77
  console.log('Default uninstall script')
78
78
  /**
79
79
  * delete package modules from server
80
80
  */
81
81
  await deletePackageModules(node_package, dbManager)
82
+ /**
83
+ * delete package assets from server
84
+ */
85
+ await deletePackageAssets(node_package, dbManager, dbRemote)
86
+
87
+ }
88
+
89
+ /**
90
+ * function deletePackageAssets
91
+ * @param node_package
92
+ * @param dbManager
93
+ * @param dbRemote
94
+ */
95
+ async function deletePackageAssets(node_package: string, dbManager: DBManager, dbRemote: DBRemote) {
96
+ const assetFolder = path.join('node_modules', node_package, 'asset')
97
+ if (!fs.existsSync(assetFolder) || !fs.statSync(assetFolder).isDirectory()) {
98
+ return
99
+ }
100
+ console.log()
101
+ console.log('delete assets from server ...')
102
+
103
+ await browseFolder(assetFolder, async (filePath: string) => {
104
+ const route = '/' + path.relative(assetFolder, filePath)
105
+ const dbAsset = await dbManager.dbAssetExist(route)
106
+ if (!dbAsset) {
107
+ logger.info('asset ' + route + ' not found')
108
+ return
109
+ }
110
+ await dbManager.dbAssetDelete(dbAsset)
111
+ logger.info('asset ' + route + ' deleted')
112
+ })
82
113
 
114
+ console.log(green('*') + ' delete assets from server')
115
+ }
116
+
117
+ /**
118
+ * browseFolder
119
+ * @param folder
120
+ * @param treatment
121
+ */
122
+ async function browseFolder(folder: string, treatment: (filePath: string) => Promise<void>) {
123
+ const files = fs.readdirSync(folder)
124
+ for(let ind = 0; ind < files.length; ind++) {
125
+ const file = files[ind]
126
+ const pathName = folder + '/' + file
127
+ if (fs.statSync(pathName).isDirectory()) {
128
+ await browseFolder(pathName, treatment)
129
+ }
130
+ else {
131
+ await treatment(pathName)
132
+ }
133
+ }
83
134
  }
84
135
 
85
136
  /**
package/src/index.ts CHANGED
@@ -16,7 +16,7 @@ logger.setLevel("debug")
16
16
 
17
17
  const program = new Command()
18
18
  program.name('cyk').description('cyklang CLI')
19
- .version('0.5.5')
19
+ .version('0.5.6')
20
20
 
21
21
  program.addCommand(new InstallCommand('install'))
22
22
  program.addCommand(new InstallCommand('i'))