create-sip 1.0.0 → 1.0.2

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.
Files changed (3) hide show
  1. package/README.md +90 -0
  2. package/expressapi/op +21 -14
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -22,6 +22,22 @@ npm create sip@latest
22
22
  * Write project name.
23
23
  * Select project type.
24
24
 
25
+ Options:
26
+
27
+ ```txt
28
+ ✔ Project name: … vmi
29
+ ? Project type: › - Use arrow-keys. Return to submit.
30
+ Webpage
31
+ Web Bootstrap
32
+ JavaScript
33
+ Web Node.js
34
+ ESBuild JavaScript
35
+ ESBuild TypeScript
36
+ hai mock API
37
+ Express API
38
+ ❯ Cancel
39
+ ```
40
+
25
41
  ## Express API
26
42
 
27
43
  Key generation:
@@ -86,3 +102,77 @@ Generate admin user:
86
102
  ```bash
87
103
  node op admin:generate
88
104
  ```
105
+
106
+ ### Copy default config file
107
+
108
+ Copy **config/default.json.example** to **config/default.json** file.
109
+
110
+ Command:
111
+
112
+ ```bash
113
+ node op conf:generate
114
+ ```
115
+
116
+ ### Seed database
117
+
118
+ Load data from JSON or CSV file.
119
+
120
+ Examples:
121
+
122
+ ```bash
123
+ node op db:seed thing somethings.json
124
+ node op db:seed thing somethings.csv
125
+ ```
126
+
127
+ For example JSON file:
128
+
129
+ employees.json:
130
+
131
+ ```json
132
+ [
133
+ { "id": 1, "name": "Tom Large" },
134
+ { "id": 2, "name": "Jack Small" }
135
+ ]
136
+ ```
137
+
138
+ The default separator is comma.
139
+
140
+ ```cmd
141
+ node op db:seed employee employees.json
142
+ ```
143
+
144
+ For example CSV file:
145
+
146
+ employees.csv:
147
+
148
+ ```csv
149
+ id,name
150
+ 1,Joe Kitin
151
+ 2,Peter Fall
152
+ ```
153
+
154
+ If you have colon separator, use sep parameter.
155
+
156
+ ```csv
157
+ id:name
158
+ 1:Joe Kitin
159
+ 2:Peter Fall
160
+ ```
161
+
162
+ ```cmd
163
+ node op db:seed employee employees.csv --sep :
164
+ ```
165
+
166
+ If the file has semicolon separator, use sep parameter, for example:
167
+
168
+ ```csv
169
+ id;name
170
+ 1;Joe Kitin
171
+ 2;Peter Fall
172
+ ```
173
+
174
+ Use next command:
175
+
176
+ ```cmd
177
+ node op db:seed employee employees.csv --sep ";"
178
+ ```
package/expressapi/op CHANGED
@@ -1,11 +1,10 @@
1
- import replace from 'replace'
2
- import fse from 'fs-extra'
3
- import fsp from 'fs/promises'
4
- import { generateApiKey } from 'generate-api-key'
1
+ import replace from 'replace';
2
+ import fse from 'fs-extra';
3
+ import fsp from 'fs/promises';
4
+ import { generateApiKey } from 'generate-api-key';
5
5
  import bcrypt from 'bcryptjs';
6
6
  import path from 'path';
7
- import { read } from 'read'
8
- import { start } from 'repl';
7
+ import { read } from 'read';
9
8
 
10
9
  if(process.argv.length == 3 && process.argv[2] == 'help') {
11
10
  console.log('Usable commands:');
@@ -14,7 +13,7 @@ if(process.argv.length == 3 && process.argv[2] == 'help') {
14
13
  console.log(' node op key:generate');
15
14
  console.log(' node op conf:generate');
16
15
  console.log(' node op admin:generate');
17
- console.log(' node op db:seed <model> <filePath>');
16
+ console.log(' node op db:seed <model> <filePath> [sep]');
18
17
  process.exit(0);
19
18
  } else if(process.argv.length == 3 && process.argv[2] == 'key:generate') {
20
19
  startGenerateKey();
@@ -25,14 +24,23 @@ if(process.argv.length == 3 && process.argv[2] == 'help') {
25
24
  } else if(process.argv[2] === 'db:seed') {
26
25
  if(process.argv.length < 5) {
27
26
  console.log('Usage:');
28
- console.log('node op db:seed <model> <filePath>');
27
+ console.log('node op db:seed <model> <filePath> [sep]');
29
28
  console.log('Examples:');
30
29
  console.log('node op db:seed thing somethings.json');
31
30
  console.log('node op db:seed thing somethings.csv');
31
+ console.log('node op db:seed thing somethings.csv ,');
32
+ console.log('node op db:seed thing somethings.csv :');
33
+ console.log('node op db:seed thing somethings.csv ";"');
32
34
  }
33
35
  const model = process.argv[3];
34
36
  const filePath = process.argv[4];
35
- runSeed(model, filePath);
37
+ if(process.argv.length == 6) {
38
+ const sep = process.argv[5];
39
+ runSeed(model, filePath, sep);
40
+ }else {
41
+ runSeed(model, filePath);
42
+ }
43
+
36
44
  } else if(process.argv[2] === 'make:model') {
37
45
  if(process.argv.length < 4) {
38
46
  console.log('Usage:');
@@ -234,8 +242,7 @@ const seedFromJson = async (model, filePath) => {
234
242
  }
235
243
  }
236
244
 
237
- const seedFromCsv = async (model, filePath) => {
238
- const sep = ','
245
+ const seedFromCsv = async (model, filePath, sep) => {
239
246
  try {
240
247
  const data = await fsp.readFile(filePath, 'utf8')
241
248
  const clearData = data.replace(/"/g, '').trim()
@@ -260,10 +267,10 @@ const seedFromCsv = async (model, filePath) => {
260
267
  }
261
268
  }
262
269
 
263
- async function runSeed(model, filePath) {
270
+ async function runSeed(model, filePath, sep=',') {
264
271
 
265
272
  if(!filePath || !model) {
266
- console.log('Usage: node seed.js <modelName> <filePath>')
273
+ console.log('Usage: node seed.js <modelName> <filePath> [sep]')
267
274
  process.exit(1)
268
275
  }
269
276
 
@@ -299,7 +306,7 @@ async function runSeed(model, filePath) {
299
306
  await sequelize.sync({ force: true })
300
307
  await sequelize.authenticate()
301
308
  if(ext === '.csv') {
302
- await seedFromCsv(modelObject, filePath)
309
+ await seedFromCsv(modelObject, filePath, sep)
303
310
  }else {
304
311
  await seedFromJson(modelObject, filePath)
305
312
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-sip",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "main": "index.js",
5
5
  "bin": {
6
6
  "create-sip": "create-sip.js"