react-query-lightbase-codegen 1.0.6 → 1.1.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.
- package/README.md +1 -1
- package/dist/importSpecs.js +11 -4
- package/dist/importSpecs.js.map +1 -1
- package/package.json +3 -3
- package/src/importSpecs.ts +13 -5
package/README.md
CHANGED
|
@@ -53,7 +53,7 @@ importSpecs({
|
|
|
53
53
|
To generate the code generated scheme and react query hooks run the above script
|
|
54
54
|
|
|
55
55
|
```bash
|
|
56
|
-
node scripts/generateQueries.mjs
|
|
56
|
+
node scripts/generateQueries.mjs
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
## Configuration Options
|
package/dist/importSpecs.js
CHANGED
|
@@ -6,13 +6,14 @@ import { convertSwaggerFile } from './convertSwaggerFile.js';
|
|
|
6
6
|
import { createHook } from './generateHooks.js';
|
|
7
7
|
import { generateImports } from './generateImports.js';
|
|
8
8
|
import { generateSchemas } from './generateSchemas.js';
|
|
9
|
+
import execa from 'execa';
|
|
9
10
|
export function importSpecs({ sourceDirectory, exportDirectory, apiDirectory, queryClientDir, headerFilters, overrides, }) {
|
|
10
|
-
readdir(sourceDirectory,
|
|
11
|
+
readdir(sourceDirectory, async (err, filenames) => {
|
|
11
12
|
if (err) {
|
|
12
13
|
console.log(err);
|
|
13
14
|
throw err;
|
|
14
15
|
}
|
|
15
|
-
filenames.
|
|
16
|
+
filenames.forEach(async (filename) => {
|
|
16
17
|
try {
|
|
17
18
|
const data = readFileSync(join(process.cwd(), sourceDirectory + '/' + filename), 'utf-8');
|
|
18
19
|
const { ext } = parse(sourceDirectory + '/' + filename);
|
|
@@ -66,9 +67,15 @@ export function importSpecs({ sourceDirectory, exportDirectory, apiDirectory, qu
|
|
|
66
67
|
queryImports: collectedQueryImports,
|
|
67
68
|
});
|
|
68
69
|
writeFileSync(join(process.cwd(), `${exportDirectory}/${name}/${hooksName}.tsx`), imports + hooks);
|
|
69
|
-
|
|
70
|
-
writeFileSync(join(process.cwd(), `${exportDirectory}/${name}/${schemaName}.tsx`), schemas);
|
|
70
|
+
writeFileSync(join(process.cwd(), `${exportDirectory}/${name}/${schemaName}.tsx`), generateSchemas({ spec }));
|
|
71
71
|
console.log(chalk.green(`🎉 [${filename}] Your OpenAPI spec has been converted into react query hooks`));
|
|
72
|
+
try {
|
|
73
|
+
execa.sync('prettier', ['--write', `./${exportDirectory}/${name}/*.tsx`]);
|
|
74
|
+
console.log(chalk.blue(`⚙️ Running prettier`));
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
console.log(chalk.yellow(`⚠️ Prettier not found`));
|
|
78
|
+
}
|
|
72
79
|
}
|
|
73
80
|
catch (error) {
|
|
74
81
|
if (error.code === 'EISDIR') {
|
package/dist/importSpecs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importSpecs.js","sourceRoot":"","sources":["../src/importSpecs.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAErE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"importSpecs.js","sourceRoot":"","sources":["../src/importSpecs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-query-lightbase-codegen",
|
|
3
3
|
"description": "Fully typed react query code generation tool based on openApi specifications",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.1.2",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"exports": "./dist/index.js",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
"repository": {
|
|
31
31
|
"type": "git",
|
|
32
|
-
"url": "https://github.com/
|
|
32
|
+
"url": "https://github.com/lightbasenl/react-query-codegen"
|
|
33
33
|
},
|
|
34
34
|
"engines": {
|
|
35
35
|
"node": ">=14.16"
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"scripts": {
|
|
38
38
|
"lint": "eslint . --ext .js,.jsx,.ts,.tsx",
|
|
39
39
|
"tsc": "tsc -p tsconfig.json",
|
|
40
|
-
"test": "yarn tsc && node test/script.mjs
|
|
40
|
+
"test": "yarn tsc && node test/script.mjs",
|
|
41
41
|
"deploy": "tsc && semantic-release --no-ci",
|
|
42
42
|
"prepare": "husky install"
|
|
43
43
|
},
|
package/src/importSpecs.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { convertSwaggerFile } from './convertSwaggerFile.js';
|
|
|
7
7
|
import { createHook } from './generateHooks.js';
|
|
8
8
|
import { generateImports } from './generateImports.js';
|
|
9
9
|
import { generateSchemas } from './generateSchemas.js';
|
|
10
|
+
import execa from 'execa';
|
|
10
11
|
|
|
11
12
|
export function importSpecs({
|
|
12
13
|
sourceDirectory,
|
|
@@ -26,12 +27,12 @@ export function importSpecs({
|
|
|
26
27
|
{ type: 'query' } | { type: 'mutation' } | { type: 'infiniteQuery'; infiniteQueryParm: string }
|
|
27
28
|
>;
|
|
28
29
|
}) {
|
|
29
|
-
readdir(sourceDirectory,
|
|
30
|
+
readdir(sourceDirectory, async (err, filenames) => {
|
|
30
31
|
if (err) {
|
|
31
32
|
console.log(err);
|
|
32
33
|
throw err;
|
|
33
34
|
}
|
|
34
|
-
filenames.
|
|
35
|
+
filenames.forEach(async (filename) => {
|
|
35
36
|
try {
|
|
36
37
|
const data = readFileSync(join(process.cwd(), sourceDirectory + '/' + filename), 'utf-8');
|
|
37
38
|
const { ext } = parse(sourceDirectory + '/' + filename);
|
|
@@ -94,12 +95,19 @@ export function importSpecs({
|
|
|
94
95
|
|
|
95
96
|
writeFileSync(join(process.cwd(), `${exportDirectory}/${name}/${hooksName}.tsx`), imports + hooks);
|
|
96
97
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
writeFileSync(
|
|
99
|
+
join(process.cwd(), `${exportDirectory}/${name}/${schemaName}.tsx`),
|
|
100
|
+
generateSchemas({ spec })
|
|
101
|
+
);
|
|
100
102
|
console.log(
|
|
101
103
|
chalk.green(`🎉 [${filename}] Your OpenAPI spec has been converted into react query hooks`)
|
|
102
104
|
);
|
|
105
|
+
try {
|
|
106
|
+
execa.sync('prettier', ['--write', `./${exportDirectory}/${name}/*.tsx`]);
|
|
107
|
+
console.log(chalk.blue(`⚙️ Running prettier`));
|
|
108
|
+
} catch (e) {
|
|
109
|
+
console.log(chalk.yellow(`⚠️ Prettier not found`));
|
|
110
|
+
}
|
|
103
111
|
} catch (error) {
|
|
104
112
|
if ((error as any).code === 'EISDIR') {
|
|
105
113
|
console.log(chalk.red('nested folder structure not supported'));
|