@benup/bensdk 1.7.0 → 1.8.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.
@@ -1,6 +1,8 @@
1
1
  import fs from 'fs';
2
+ import { promises as fsPromises } from 'fs';
2
3
  import { initialStates } from './lib/state-machine';
3
4
  import { validateBenefitDefinition } from './validate';
5
+ import inquirer from 'inquirer';
4
6
 
5
7
  async function main() {
6
8
  const benefitDefinition = (await import(`${process.cwd()}/src/benefit-definition.ts`)).default;
@@ -24,12 +26,12 @@ async function main() {
24
26
  {} as Record<string, string[]>
25
27
  );
26
28
 
27
- Object.keys(stateMachines).forEach((action) => {
29
+ for (const action of Object.keys(stateMachines)) {
28
30
  const states = stateMachines[action];
29
31
 
30
- states.forEach((state) => {
32
+ for (const state of states) {
31
33
  if (initialStates.includes(state)) {
32
- return;
34
+ continue;
33
35
  }
34
36
 
35
37
  const fileName = `${state.toLocaleLowerCase()}.handler.ts`;
@@ -85,8 +87,22 @@ async function main() {
85
87
  if (!fs.existsSync(handlersDir)) {
86
88
  fs.mkdirSync(handlersDir, { recursive: true });
87
89
  }
88
- fs.writeFileSync(`${handlersDir}/${fileName}`, stateHandler, 'utf-8');
89
- });
90
+
91
+ if (!fs.existsSync(`${handlersDir}/${fileName}`)) {
92
+ await fsPromises.writeFile(`${handlersDir}/${fileName}`, stateHandler, 'utf-8');
93
+ } else {
94
+ const answer = await inquirer.prompt({
95
+ type: 'list',
96
+ name: 'overwrite',
97
+ message: `The file ${fileName} already exists. Do you want to overwrite it?`,
98
+ choices: ['overwrite', 'skip']
99
+ });
100
+
101
+ if (answer.overwrite === 'overwrite') {
102
+ await fsPromises.writeFile(`${handlersDir}/${fileName}`, stateHandler, 'utf-8');
103
+ }
104
+ }
105
+ }
90
106
 
91
107
  const testsDir = `${process.cwd()}/__tests__`;
92
108
 
@@ -95,7 +111,7 @@ async function main() {
95
111
  }
96
112
 
97
113
  // Read the action test template
98
- let actionTestTemplate = fs.readFileSync(
114
+ let actionTestTemplate = await fsPromises.readFile(
99
115
  process.cwd() + '/bin/cli/templates/action.test.template.ts',
100
116
  'utf-8'
101
117
  );
@@ -103,20 +119,49 @@ async function main() {
103
119
  // Replaces the action placeholder with the current action name
104
120
  actionTestTemplate = actionTestTemplate.replaceAll('CHANGE_ACTION_NAME_PLACEHOLDER', action);
105
121
 
106
- fs.writeFileSync(`${testsDir}/${action.toLowerCase()}.test.ts`, actionTestTemplate, 'utf-8');
122
+ const testFileName = `${action.toLowerCase()}.test.ts`;
123
+ if (!fs.existsSync(`${testsDir}/${testFileName}`)) {
124
+ await fsPromises.writeFile(`${testsDir}/${testFileName}`, actionTestTemplate, 'utf-8');
125
+ } else {
126
+ const answer = await inquirer.prompt({
127
+ type: 'list',
128
+ name: 'overwrite',
129
+ message: `The test file ${testFileName} already exists. Do you want to overwrite it?`,
130
+ choices: ['overwrite', 'skip']
131
+ });
132
+
133
+ if (answer.overwrite === 'overwrite') {
134
+ await fsPromises.writeFile(`${testsDir}/${testFileName}`, actionTestTemplate, 'utf-8');
135
+ }
136
+ }
107
137
 
108
138
  /**
109
139
  * Creates the utils.ts for the tests if it doesn't exists
110
140
  */
111
141
  if (!fs.existsSync(`${testsDir}/utils.ts`)) {
112
- const utilsTestTemplate = fs.readFileSync(
142
+ const utilsTestTemplate = await fsPromises.readFile(
113
143
  process.cwd() + '/bin/cli/templates/utils.template.ts',
114
144
  'utf-8'
115
145
  );
116
146
 
117
- fs.writeFileSync(`${testsDir}/utils.ts`, utilsTestTemplate, 'utf-8');
147
+ await fsPromises.writeFile(`${testsDir}/utils.ts`, utilsTestTemplate, 'utf-8');
148
+ } else {
149
+ const answer = await inquirer.prompt({
150
+ type: 'list',
151
+ name: 'overwrite',
152
+ message: `The utils.ts file already exists. Do you want to overwrite it?`,
153
+ choices: ['overwrite', 'skip']
154
+ });
155
+
156
+ if (answer.overwrite === 'overwrite') {
157
+ const utilsTestTemplate = await fsPromises.readFile(
158
+ process.cwd() + '/bin/cli/templates/utils.template.ts',
159
+ 'utf-8'
160
+ );
161
+ await fsPromises.writeFile(`${testsDir}/utils.ts`, utilsTestTemplate, 'utf-8');
162
+ }
118
163
  }
119
- });
164
+ }
120
165
  }
121
166
 
122
167
  main();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@benup/bensdk",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "scripts": {