sinto 1.4.0 → 1.5.0

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.
@@ -3,18 +3,19 @@ const puppeteerTestContent = require('./testPupContent');
3
3
  const jsonfile = require('jsonfile');
4
4
  const path = require('path');
5
5
  const { exec } = require('child_process');
6
+ const { addDevDep } = require('../tools/dep.js');
6
7
 
7
- const createPuppeteerTest = () => {
8
+ const createPuppeteerTest = async () => {
8
9
  const dir = process.cwd();
9
10
  createDirectory(`${dir}/test`);
10
11
  createFile(`${dir}/test/apptest.js`, puppeteerTestContent);
11
12
 
12
- writeTestScript();
13
+ await writeTestScriptInPackageJson();
13
14
  }
14
15
 
15
- async function writeTestScript() {
16
- const currentDirectory = process.cwd();
17
- const filePath = currentDirectory + '/package.json'
16
+ async function writeTestScriptInPackageJson() {
17
+ const dir = process.cwd();
18
+ const filePath = dir + '/package.json'
18
19
  jsonfile.readFile(filePath, async (err, obj) => {
19
20
  if(err) {
20
21
  console.error('Error! Failed to read package.json file.', err);
@@ -34,54 +35,10 @@ async function writeTestScript() {
34
35
  });
35
36
  }
36
37
 
37
- async function addDependency(packageName) {
38
- return new Promise((resolve, reject) => {
39
- exec(`npm view ${packageName} version`, (err, stdout, stderr) => {
40
- if (err) {
41
- reject(`Error! Retrieving the version of package named ${packageName} failed: ${stderr}`);
42
- } else {
43
- const version = stdout.trim();
44
- resolve({ [packageName]: `^${version}` });
45
- }
46
- });
47
- });
48
- }
49
-
50
- async function writePuppeteerDependencies(packageNames) {
51
- const currentDirectory = process.cwd();
52
- const filePath = currentDirectory + '/package.json';
53
-
54
- jsonfile.readFile(filePath, async (err, obj) => {
55
- if (err) {
56
- console.error('Error! Failed to read package.json file:', err);
57
- return;
58
- }
59
-
60
- try {
61
- obj.dependencies = obj.dependencies || {};
62
-
63
- for(const packageName of packageNames) {
64
- try {
65
- const newDependency = await addDependency(packageName);
66
- Object.assign(obj.devDependencies, newDependency);
67
- }catch(error) {
68
- console.error(error);
69
- return;
70
- }
71
- }
72
-
73
- jsonfile.writeFile(filePath, obj, { spaces: 2 }, (err) => {
74
- if (err) {
75
- console.error('Error! Failed to write package.json:', err);
76
- } else {
77
- console.log(`Added new depencies`);
78
- }
79
- });
80
- } catch (error) {
81
- console.error(error);
82
- }
83
- });
84
-
38
+ const writePuppeteerDependencies = async (packageNames) => {
39
+ const dir = process.cwd();
40
+ const filePath = dir + '/package.json';
41
+ await addDevDep(filePath, packageNames);
85
42
  }
86
43
 
87
44
  module.exports.createPuppeteerTest = createPuppeteerTest;
package/gents/gents.js ADDED
@@ -0,0 +1,36 @@
1
+ const tsconfigContent = require('./tsconfigContent');
2
+ const { createFile } = require('../tools/tools.js');
3
+ const jsonfile = require('jsonfile');
4
+ const { addDevDep } = require('../tools/dep.js');
5
+
6
+ const supplementTypescript = () => {
7
+ writeConfigFile();
8
+ showMsg();
9
+ addDependencies();
10
+ }
11
+
12
+ const writeConfigFile = () => {
13
+ const dir = process.cwd();
14
+ const path = `${dir}/tsconfig.json`;
15
+ jsonfile.writeFileSync(path, tsconfigContent, { spaces: 2 });
16
+ }
17
+
18
+ const showMsg = () => {
19
+ console.log(`
20
+ Proposal:
21
+ In the tsconfig.json file, leave the module value
22
+ at commonjs for a NodeJS project. In the case of
23
+ an ES project, rewrite it to, for example, ES6.
24
+
25
+ Install dependencies:
26
+ pnpm install
27
+ `);
28
+ }
29
+
30
+ const addDependencies = () => {
31
+ const dir = process.cwd();
32
+ const path = `${dir}/package.json`;
33
+ addDevDep(path, ['typescript']);
34
+ }
35
+
36
+ module.exports.supplementTypescript = supplementTypescript;
@@ -0,0 +1,14 @@
1
+
2
+ const tsconfigContent =
3
+ {
4
+ "compilerOptions": {
5
+ "target": "ES6",
6
+ "module": "commonjs",
7
+ "outDir": "./app",
8
+ "strict": true,
9
+ "esModuleInterop": true
10
+ }
11
+ }
12
+
13
+
14
+ module.exports = tsconfigContent;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sinto",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Website project development manager",
5
5
  "bin": {
6
6
  "sin": "sin.js"
package/sin.js CHANGED
@@ -7,14 +7,15 @@ const { build } = require('./build/build');
7
7
  const { rmno } = require('./rmno/rmno');
8
8
  const { createApi } = require('./haiserver/apigen');
9
9
  const { createWebpack } = require('./webpack/generate');
10
- const { createPuppeteerTest } = require('./gentest/generate')
10
+ const { createPuppeteerTest } = require('./gentest/generate');
11
+ const { supplementTypescript } = require('./gents/gents');
11
12
 
12
13
  const program = new Command();
13
14
 
14
15
  program
15
16
  .name('sin')
16
17
  .description('Project handler')
17
- .version('1.4.0');
18
+ .version('1.5.0');
18
19
 
19
20
  program
20
21
  .command('init')
@@ -62,8 +63,16 @@ program
62
63
  program
63
64
  .command('pup')
64
65
  .description('Puppeteer test')
66
+ .action(async () => {
67
+ await createPuppeteerTest();
68
+ })
69
+
70
+ program
71
+ .command('ts')
72
+ .description('Supplement with TypeScript')
65
73
  .action(() => {
66
- createPuppeteerTest();
74
+ supplementTypescript();
67
75
  })
68
76
 
77
+
69
78
  program.parse();
package/tools/dep.js ADDED
@@ -0,0 +1,77 @@
1
+ const {debug} = require('../config.json');
2
+ const jsonfile = require('jsonfile');
3
+ const util = require('util');
4
+ const exec = util.promisify(require('child_process').exec);
5
+
6
+ const addDep = async (filePath, packageNames) => {
7
+ await writeDependencies(filePath, packageNames, false);
8
+ }
9
+
10
+ const addDevDep = async (filePath, packageNames) => {
11
+ await writeDependencies(filePath, packageNames, true);
12
+ }
13
+
14
+ async function writeDependencies(filePath, packageNames, devDep) {
15
+ var obj = await readJsonFile(filePath);
16
+ obj = await addDependencies(obj, packageNames, devDep);
17
+ await writeJsonFile(filePath, obj);
18
+ }
19
+
20
+ async function readJsonFile(filePath) {
21
+ try {
22
+ const obj = await jsonfile.readFile(filePath);
23
+ if(debug) {
24
+ console.log(`Readed JSON file`);
25
+ }
26
+ return obj;
27
+ } catch (err) {
28
+ console.error(`Error! Failed to read ${filePath}`);
29
+ console.error(err);
30
+ }
31
+ }
32
+
33
+ async function addDependencies(obj, packageNames, devDep) {
34
+ for(const packageName of packageNames) {
35
+ try {
36
+ const newDependency = await getPackageInfo(packageName);
37
+ if(devDep) {
38
+ await Object.assign(obj.devDependencies, newDependency);
39
+ }else {
40
+ await Object.assign(obj.dependencies, newDependency);
41
+ }
42
+
43
+ } catch (err) {
44
+ console.error(`Error! Failed add packages!`);
45
+ console.error(err);
46
+ }
47
+ }
48
+ return obj;
49
+ }
50
+
51
+ async function getPackageInfo(packageName) {
52
+ try {
53
+ const { stdout, stderr } = await exec(`npm view ${packageName} version`);
54
+ if (stderr) {
55
+ throw new Error(`Error! Retrieving the version of package named ${packageName} failed: ${stderr}`);
56
+ }
57
+ const version = stdout.trim();
58
+ return { [packageName]: `^${version}` };
59
+ } catch (err) {
60
+ throw new Error(err.message);
61
+ }
62
+ }
63
+
64
+ async function writeJsonFile(path, obj) {
65
+ try {
66
+ await jsonfile.writeFile(path, obj, { spaces: 2});
67
+ if(debug) {
68
+ console.log(`Added new depencies`);
69
+ }
70
+ } catch (err) {
71
+ console.error('Error! Failed to write package.json:');
72
+ console.error(err);
73
+ }
74
+ }
75
+
76
+ module.exports.addDep = addDep;
77
+ module.exports.addDevDep = addDevDep;
@@ -1,5 +0,0 @@
1
-
2
-
3
- function egy() {
4
- console.log('Egy...')
5
- }
package/cli.js DELETED
@@ -1,7 +0,0 @@
1
-
2
- const yargs = require('yargs/yargs')
3
- const { hideBin } = require('yargs/helpers')
4
-
5
- const cli = yargs(hideBin(process.argv));
6
-
7
- module.exports = cli;