@7nohe/openapi-react-query-codegen 0.5.1 → 0.5.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/dist/package.json +1 -1
- package/dist/src/createExports.js +17 -3
- package/dist/src/createUseMutation.js +23 -26
- package/dist/src/createUseQuery.js +60 -57
- package/dist/src/util.js +35 -0
- package/package.json +1 -1
package/dist/package.json
CHANGED
|
@@ -13,7 +13,7 @@ const createUseMutation_1 = require("./createUseMutation");
|
|
|
13
13
|
const createExports = (generatedClientsPath) => {
|
|
14
14
|
const services = (0, glob_1.sync)((0, path_1.join)(generatedClientsPath, "services", "*.ts").replace(/\\/g, "/"));
|
|
15
15
|
const nodes = services.map((servicePath) => typescript_1.default.createSourceFile(servicePath, // fileName
|
|
16
|
-
fs_1.default.readFileSync((0, path_1.join)(process.cwd(), servicePath), "utf8"), typescript_1.default.ScriptTarget.Latest //
|
|
16
|
+
fs_1.default.readFileSync((0, path_1.join)(process.cwd(), servicePath), "utf8"), typescript_1.default.ScriptTarget.Latest // languageVersion
|
|
17
17
|
));
|
|
18
18
|
return [
|
|
19
19
|
...nodes
|
|
@@ -35,9 +35,23 @@ const createExports = (generatedClientsPath) => {
|
|
|
35
35
|
const httpMethodName = properties
|
|
36
36
|
.find((p) => p.name?.getText(node) === "method")
|
|
37
37
|
?.initializer?.getText(node);
|
|
38
|
+
const getAllChildren = (tsNode) => {
|
|
39
|
+
const childItems = tsNode.getChildren(node);
|
|
40
|
+
if (childItems.length) {
|
|
41
|
+
const allChildren = childItems.map(getAllChildren);
|
|
42
|
+
return [tsNode].concat(allChildren.flat());
|
|
43
|
+
}
|
|
44
|
+
return [tsNode];
|
|
45
|
+
};
|
|
46
|
+
const children = getAllChildren(method);
|
|
47
|
+
const jsDoc = children.filter((c) => c.kind === typescript_1.default.SyntaxKind.JSDoc).map((c) => {
|
|
48
|
+
return c.comment;
|
|
49
|
+
});
|
|
50
|
+
const hasDeprecated = children
|
|
51
|
+
.some((c) => c.kind === typescript_1.default.SyntaxKind.JSDocDeprecatedTag);
|
|
38
52
|
return httpMethodName === "'GET'"
|
|
39
|
-
? (0, createUseQuery_1.createUseQuery)(node, className, method)
|
|
40
|
-
: (0, createUseMutation_1.createUseMutation)(node, className, method);
|
|
53
|
+
? (0, createUseQuery_1.createUseQuery)(node, className, method, jsDoc, hasDeprecated)
|
|
54
|
+
: (0, createUseMutation_1.createUseMutation)(node, className, method, jsDoc, hasDeprecated);
|
|
41
55
|
})
|
|
42
56
|
.flat();
|
|
43
57
|
})
|
|
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.createUseMutation = void 0;
|
|
7
7
|
const typescript_1 = __importDefault(require("typescript"));
|
|
8
8
|
const common_1 = require("./common");
|
|
9
|
-
const
|
|
9
|
+
const util_1 = require("./util");
|
|
10
|
+
const createUseMutation = (node, className, method, jsDoc = [], deprecated = false) => {
|
|
10
11
|
const methodName = method.name?.getText(node);
|
|
11
12
|
// Awaited<ReturnType<typeof myClass.myMethod>>
|
|
12
13
|
const awaitedResponseDataType = typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("Awaited"), [
|
|
@@ -14,7 +15,11 @@ const createUseMutation = (node, className, method) => {
|
|
|
14
15
|
typescript_1.default.factory.createTypeQueryNode(typescript_1.default.factory.createQualifiedName(typescript_1.default.factory.createIdentifier(className), typescript_1.default.factory.createIdentifier(methodName)), undefined),
|
|
15
16
|
]),
|
|
16
17
|
]);
|
|
17
|
-
const
|
|
18
|
+
const TData = typescript_1.default.factory.createIdentifier("TData");
|
|
19
|
+
const TError = typescript_1.default.factory.createIdentifier("TError");
|
|
20
|
+
const TContext = typescript_1.default.factory.createIdentifier("TContext");
|
|
21
|
+
const mutationResult = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], typescript_1.default.factory.createIdentifier(`${className}${methodName}MutationResult`), undefined, awaitedResponseDataType);
|
|
22
|
+
const responseDataType = typescript_1.default.factory.createTypeParameterDeclaration(undefined, TData, undefined, typescript_1.default.factory.createTypeReferenceNode(mutationResult.name));
|
|
18
23
|
const methodParameters = method.parameters.length !== 0
|
|
19
24
|
? typescript_1.default.factory.createTypeLiteralNode(method.parameters.map((param) => {
|
|
20
25
|
return typescript_1.default.factory.createPropertySignature(undefined, typescript_1.default.factory.createIdentifier(param.name.getText(node)), param.questionToken ?? param.initializer
|
|
@@ -22,22 +27,27 @@ const createUseMutation = (node, className, method) => {
|
|
|
22
27
|
: param.questionToken, param.type);
|
|
23
28
|
}))
|
|
24
29
|
: typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.VoidKeyword);
|
|
25
|
-
|
|
30
|
+
const exportHook = typescript_1.default.factory.createVariableStatement([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], typescript_1.default.factory.createVariableDeclarationList([
|
|
26
31
|
typescript_1.default.factory.createVariableDeclaration(typescript_1.default.factory.createIdentifier(`use${className}${(0, common_1.capitalizeFirstLetter)(methodName)}`), undefined, undefined, typescript_1.default.factory.createArrowFunction(undefined, typescript_1.default.factory.createNodeArray([
|
|
27
32
|
responseDataType,
|
|
28
|
-
typescript_1.default.factory.createTypeParameterDeclaration(undefined,
|
|
29
|
-
typescript_1.default.factory.createTypeParameterDeclaration(undefined,
|
|
33
|
+
typescript_1.default.factory.createTypeParameterDeclaration(undefined, TError, undefined, typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword)),
|
|
34
|
+
typescript_1.default.factory.createTypeParameterDeclaration(undefined, TContext, undefined, typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword)),
|
|
30
35
|
]), [
|
|
31
36
|
typescript_1.default.factory.createParameterDeclaration(undefined, undefined, typescript_1.default.factory.createIdentifier("options"), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken), typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("Omit"), [
|
|
32
37
|
typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("UseMutationOptions"), [
|
|
33
|
-
|
|
34
|
-
typescript_1.default.factory.
|
|
38
|
+
typescript_1.default.factory.createTypeReferenceNode(TData),
|
|
39
|
+
typescript_1.default.factory.createTypeReferenceNode(TError),
|
|
35
40
|
methodParameters,
|
|
36
|
-
typescript_1.default.factory.
|
|
41
|
+
typescript_1.default.factory.createTypeReferenceNode(TContext),
|
|
37
42
|
]),
|
|
38
43
|
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("mutationFn")),
|
|
39
44
|
]), undefined),
|
|
40
|
-
], undefined, typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsGreaterThanToken), typescript_1.default.factory.
|
|
45
|
+
], undefined, typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsGreaterThanToken), typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("useMutation"), [
|
|
46
|
+
typescript_1.default.factory.createTypeReferenceNode(TData),
|
|
47
|
+
typescript_1.default.factory.createTypeReferenceNode(TError),
|
|
48
|
+
methodParameters,
|
|
49
|
+
typescript_1.default.factory.createTypeReferenceNode(TContext),
|
|
50
|
+
], [
|
|
41
51
|
typescript_1.default.factory.createObjectLiteralExpression([
|
|
42
52
|
typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("mutationFn"), typescript_1.default.factory.createArrowFunction(undefined, undefined, method.parameters.length !== 0
|
|
43
53
|
? [
|
|
@@ -45,25 +55,12 @@ const createUseMutation = (node, className, method) => {
|
|
|
45
55
|
return typescript_1.default.factory.createBindingElement(undefined, undefined, typescript_1.default.factory.createIdentifier(param.name.getText(node)), undefined);
|
|
46
56
|
})), undefined, undefined, undefined),
|
|
47
57
|
]
|
|
48
|
-
: [], undefined, typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsGreaterThanToken), typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier(className), typescript_1.default.factory.createIdentifier(methodName)), undefined, method.parameters.map((params) => typescript_1.default.factory.createIdentifier(params.name.getText(node)))))),
|
|
58
|
+
: [], undefined, typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsGreaterThanToken), typescript_1.default.factory.createAsExpression(typescript_1.default.factory.createAsExpression(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier(className), typescript_1.default.factory.createIdentifier(methodName)), undefined, method.parameters.map((params) => typescript_1.default.factory.createIdentifier(params.name.getText(node)))), typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword)), typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("Promise"), [typescript_1.default.factory.createTypeReferenceNode(TData)])))),
|
|
49
59
|
typescript_1.default.factory.createSpreadAssignment(typescript_1.default.factory.createIdentifier("options")),
|
|
50
60
|
]),
|
|
51
|
-
]),
|
|
52
|
-
// Omit<UseMutationResult<Awaited<ReturnType<typeof myClass.myMethod>>, TError, params, TContext>, 'data'> & { data: TData };
|
|
53
|
-
typescript_1.default.factory.createIntersectionTypeNode([
|
|
54
|
-
typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("Omit"), [
|
|
55
|
-
typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("UseMutationResult"), [
|
|
56
|
-
awaitedResponseDataType,
|
|
57
|
-
typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("TError"), undefined),
|
|
58
|
-
methodParameters,
|
|
59
|
-
typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("TContext"), undefined),
|
|
60
|
-
]),
|
|
61
|
-
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("data")),
|
|
62
|
-
]),
|
|
63
|
-
typescript_1.default.factory.createTypeLiteralNode([
|
|
64
|
-
typescript_1.default.factory.createPropertySignature(undefined, typescript_1.default.factory.createIdentifier("data"), undefined, typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("TData"), undefined)),
|
|
65
|
-
]),
|
|
66
|
-
])))),
|
|
61
|
+
]))),
|
|
67
62
|
], typescript_1.default.NodeFlags.Const));
|
|
63
|
+
const hookWithJsDoc = (0, util_1.addJSDocToNode)(exportHook, node, deprecated, jsDoc);
|
|
64
|
+
return [mutationResult, hookWithJsDoc];
|
|
68
65
|
};
|
|
69
66
|
exports.createUseMutation = createUseMutation;
|
|
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.createUseQuery = void 0;
|
|
7
7
|
const typescript_1 = __importDefault(require("typescript"));
|
|
8
8
|
const common_1 = require("./common");
|
|
9
|
-
const
|
|
9
|
+
const util_1 = require("./util");
|
|
10
|
+
const createUseQuery = (node, className, method, jsDoc = [], deprecated = false) => {
|
|
10
11
|
const methodName = method.name?.getText(node);
|
|
11
12
|
let requestParam = [];
|
|
12
13
|
if (method.parameters.length !== 0) {
|
|
@@ -16,7 +17,7 @@ const createUseQuery = (node, className, method) => {
|
|
|
16
17
|
}
|
|
17
18
|
const customHookName = `use${className}${(0, common_1.capitalizeFirstLetter)(methodName)}`;
|
|
18
19
|
const queryKey = `${customHookName}Key`;
|
|
19
|
-
const queryKeyGenericType = typescript_1.default.factory.createTypeReferenceNode("TQueryKey"
|
|
20
|
+
const queryKeyGenericType = typescript_1.default.factory.createTypeReferenceNode("TQueryKey");
|
|
20
21
|
const queryKeyConstraint = typescript_1.default.factory.createTypeReferenceNode("Array", [
|
|
21
22
|
typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword),
|
|
22
23
|
]);
|
|
@@ -26,62 +27,64 @@ const createUseQuery = (node, className, method) => {
|
|
|
26
27
|
typescript_1.default.factory.createTypeQueryNode(typescript_1.default.factory.createQualifiedName(typescript_1.default.factory.createIdentifier(className), typescript_1.default.factory.createIdentifier(methodName)), undefined),
|
|
27
28
|
]),
|
|
28
29
|
]);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
typescript_1.default.factory.
|
|
59
|
-
typescript_1.default.factory.
|
|
60
|
-
|
|
61
|
-
typescript_1.default.factory.createSpreadElement(typescript_1.default.factory.createParenthesizedExpression(typescript_1.default.factory.createBinaryExpression(typescript_1.default.factory.createIdentifier("queryKey"), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionQuestionToken), method.parameters.length
|
|
62
|
-
? typescript_1.default.factory.createArrayLiteralExpression([
|
|
63
|
-
typescript_1.default.factory.createObjectLiteralExpression(method.parameters.map((param) => typescript_1.default.factory.createShorthandPropertyAssignment(typescript_1.default.factory.createIdentifier(param.name.getText(node))))),
|
|
64
|
-
])
|
|
65
|
-
: typescript_1.default.factory.createArrayLiteralExpression([])))),
|
|
66
|
-
], false)),
|
|
67
|
-
typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("queryFn"), typescript_1.default.factory.createArrowFunction(undefined, undefined, [], undefined, typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsGreaterThanToken), typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier(className), typescript_1.default.factory.createIdentifier(methodName)), undefined, method.parameters.map((param) => typescript_1.default.factory.createIdentifier(param.name.getText(node)))))),
|
|
68
|
-
typescript_1.default.factory.createSpreadAssignment(typescript_1.default.factory.createIdentifier("options")),
|
|
30
|
+
// DefaultResponseDataType
|
|
31
|
+
// export type MyClassMethodDefaultResponse = Awaited<ReturnType<typeof myClass.myMethod>>
|
|
32
|
+
const defaultApiResponse = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], typescript_1.default.factory.createIdentifier(`${(0, common_1.capitalizeFirstLetter)(className)}${(0, common_1.capitalizeFirstLetter)(methodName)}DefaultResponse`), undefined, awaitedResponseDataType);
|
|
33
|
+
const TData = typescript_1.default.factory.createIdentifier("TData");
|
|
34
|
+
const TError = typescript_1.default.factory.createIdentifier("TError");
|
|
35
|
+
const responseDataType = typescript_1.default.factory.createTypeParameterDeclaration(undefined, TData.text, undefined, typescript_1.default.factory.createTypeReferenceNode(defaultApiResponse.name));
|
|
36
|
+
// Return Type
|
|
37
|
+
// export const classNameMethodNameQueryResult<TData = MyClassMethodDefaultResponse, TError = unknown> = UseQueryResult<TData, TError>;
|
|
38
|
+
const returnTypeExport = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], typescript_1.default.factory.createIdentifier(`${(0, common_1.capitalizeFirstLetter)(className)}${(0, common_1.capitalizeFirstLetter)(methodName)}QueryResult`), [
|
|
39
|
+
typescript_1.default.factory.createTypeParameterDeclaration(undefined, TData, undefined, typescript_1.default.factory.createTypeReferenceNode(defaultApiResponse.name)),
|
|
40
|
+
typescript_1.default.factory.createTypeParameterDeclaration(undefined, TError, undefined, typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword)),
|
|
41
|
+
], typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("UseQueryResult"), [
|
|
42
|
+
typescript_1.default.factory.createTypeReferenceNode(TData),
|
|
43
|
+
typescript_1.default.factory.createTypeReferenceNode(TError),
|
|
44
|
+
]));
|
|
45
|
+
// QueryKey
|
|
46
|
+
const queryKeyExport = typescript_1.default.factory.createVariableStatement([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], typescript_1.default.factory.createVariableDeclarationList([
|
|
47
|
+
typescript_1.default.factory.createVariableDeclaration(typescript_1.default.factory.createIdentifier(queryKey), undefined, undefined, typescript_1.default.factory.createStringLiteral(`${className}${(0, common_1.capitalizeFirstLetter)(methodName)}`)),
|
|
48
|
+
], typescript_1.default.NodeFlags.Const));
|
|
49
|
+
// Custom hook
|
|
50
|
+
const hookExport = typescript_1.default.factory.createVariableStatement([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], typescript_1.default.factory.createVariableDeclarationList([
|
|
51
|
+
typescript_1.default.factory.createVariableDeclaration(typescript_1.default.factory.createIdentifier(customHookName), undefined, undefined, typescript_1.default.factory.createArrowFunction(undefined, typescript_1.default.factory.createNodeArray([
|
|
52
|
+
responseDataType,
|
|
53
|
+
typescript_1.default.factory.createTypeParameterDeclaration(undefined, TError, undefined, typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword)),
|
|
54
|
+
typescript_1.default.factory.createTypeParameterDeclaration(undefined, "TQueryKey", queryKeyConstraint, typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword))),
|
|
55
|
+
]), [
|
|
56
|
+
...requestParam,
|
|
57
|
+
typescript_1.default.factory.createParameterDeclaration(undefined, undefined, typescript_1.default.factory.createIdentifier("queryKey"), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken), queryKeyGenericType),
|
|
58
|
+
typescript_1.default.factory.createParameterDeclaration(undefined, undefined, typescript_1.default.factory.createIdentifier("options"), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken), typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("Omit"), [
|
|
59
|
+
typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("UseQueryOptions"), [
|
|
60
|
+
typescript_1.default.factory.createTypeReferenceNode(TData),
|
|
61
|
+
typescript_1.default.factory.createTypeReferenceNode(TError),
|
|
69
62
|
]),
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("UseQueryResult"), [
|
|
75
|
-
awaitedResponseDataType,
|
|
76
|
-
typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("TError"), undefined),
|
|
77
|
-
]),
|
|
78
|
-
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("data")),
|
|
63
|
+
typescript_1.default.factory.createUnionTypeNode([
|
|
64
|
+
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("queryKey")),
|
|
65
|
+
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("queryFn")),
|
|
66
|
+
typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("initialData")),
|
|
79
67
|
]),
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
],
|
|
85
|
-
|
|
68
|
+
])),
|
|
69
|
+
], undefined, typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsGreaterThanToken), typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("useQuery"), [
|
|
70
|
+
typescript_1.default.factory.createTypeReferenceNode(TData),
|
|
71
|
+
typescript_1.default.factory.createTypeReferenceNode(TError),
|
|
72
|
+
], [
|
|
73
|
+
typescript_1.default.factory.createObjectLiteralExpression([
|
|
74
|
+
typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("queryKey"), typescript_1.default.factory.createArrayLiteralExpression([
|
|
75
|
+
typescript_1.default.factory.createIdentifier(queryKey),
|
|
76
|
+
typescript_1.default.factory.createSpreadElement(typescript_1.default.factory.createParenthesizedExpression(typescript_1.default.factory.createBinaryExpression(typescript_1.default.factory.createIdentifier("queryKey"), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionQuestionToken), method.parameters.length
|
|
77
|
+
? typescript_1.default.factory.createArrayLiteralExpression([
|
|
78
|
+
typescript_1.default.factory.createObjectLiteralExpression(method.parameters.map((param) => typescript_1.default.factory.createShorthandPropertyAssignment(typescript_1.default.factory.createIdentifier(param.name.getText(node))))),
|
|
79
|
+
])
|
|
80
|
+
: typescript_1.default.factory.createArrayLiteralExpression([])))),
|
|
81
|
+
], false)),
|
|
82
|
+
typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("queryFn"), typescript_1.default.factory.createArrowFunction(undefined, undefined, [], undefined, typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsGreaterThanToken), typescript_1.default.factory.createAsExpression(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier(className), typescript_1.default.factory.createIdentifier(methodName)), undefined, method.parameters.map((param) => typescript_1.default.factory.createIdentifier(param.name.getText(node)))), typescript_1.default.factory.createTypeReferenceNode(TData)))),
|
|
83
|
+
typescript_1.default.factory.createSpreadAssignment(typescript_1.default.factory.createIdentifier("options")),
|
|
84
|
+
]),
|
|
85
|
+
]))),
|
|
86
|
+
], typescript_1.default.NodeFlags.Const));
|
|
87
|
+
const hookWithJsDoc = (0, util_1.addJSDocToNode)(hookExport, node, deprecated, jsDoc);
|
|
88
|
+
return [defaultApiResponse, returnTypeExport, queryKeyExport, hookWithJsDoc];
|
|
86
89
|
};
|
|
87
90
|
exports.createUseQuery = createUseQuery;
|
package/dist/src/util.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.addJSDocToNode = void 0;
|
|
7
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
8
|
+
function addJSDocToNode(node, sourceFile, deprecated, jsDoc = []) {
|
|
9
|
+
const deprecatedString = deprecated ? "@deprecated" : "";
|
|
10
|
+
const jsDocString = [deprecatedString]
|
|
11
|
+
.concat(jsDoc.map((comment) => {
|
|
12
|
+
if (typeof comment === "string") {
|
|
13
|
+
return comment;
|
|
14
|
+
}
|
|
15
|
+
if (Array.isArray(comment)) {
|
|
16
|
+
return comment.map((c) => c.getText(sourceFile)).join("\n");
|
|
17
|
+
}
|
|
18
|
+
return "";
|
|
19
|
+
}))
|
|
20
|
+
// remove empty lines
|
|
21
|
+
.filter(Boolean)
|
|
22
|
+
// trim
|
|
23
|
+
.map((comment) => comment.trim())
|
|
24
|
+
// add * to each line
|
|
25
|
+
.map((comment) => `* ${comment}`)
|
|
26
|
+
// join lines
|
|
27
|
+
.join("\n")
|
|
28
|
+
// replace new lines with \n *
|
|
29
|
+
.replace(/\n/g, "\n * ");
|
|
30
|
+
const nodeWithJSDoc = jsDocString
|
|
31
|
+
? typescript_1.default.addSyntheticLeadingComment(node, typescript_1.default.SyntaxKind.MultiLineCommentTrivia, `*\n ${jsDocString}\n `, true)
|
|
32
|
+
: node;
|
|
33
|
+
return nodeWithJSDoc;
|
|
34
|
+
}
|
|
35
|
+
exports.addJSDocToNode = addJSDocToNode;
|