zenstack 0.1.26 → 0.1.28

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.
@@ -47,93 +47,11 @@ class ReactHooksGenerator {
47
47
  const project = new ts_morph_1.Project();
48
48
  const models = (0, utils_1.extractDataModelsWithAllowRules)(context.schema);
49
49
  this.generateIndex(project, context, models);
50
- this.generateRequestRuntime(project, context);
51
50
  models.forEach((d) => this.generateModelHooks(project, context, d));
52
51
  yield project.save();
53
52
  console.log(colors_1.default.blue(' ✔️ React hooks generated'));
54
53
  });
55
54
  }
56
- generateRequestRuntime(project, context) {
57
- const content = `
58
- import useSWR, { useSWRConfig } from 'swr';
59
- import type { ScopedMutator } from 'swr/dist/types';
60
-
61
- const fetcher = async (url: string, options?: RequestInit) => {
62
- const res = await fetch(url, options);
63
- if (!res.ok) {
64
- const error: Error & { info?: any; status?: number } = new Error(
65
- 'An error occurred while fetching the data.'
66
- );
67
- error.info = await res.json();
68
- error.status = res.status;
69
- throw error;
70
- }
71
- return res.json();
72
- };
73
-
74
- function makeUrl(url: string, args: unknown) {
75
- return args ? url + \`?q=\${encodeURIComponent(JSON.stringify(args))}\` : url;
76
- }
77
-
78
- export function get<Data, Error = any>(url: string, args?: unknown) {
79
- return useSWR<Data, Error>(makeUrl(url, args), fetcher);
80
- }
81
-
82
- export async function post<Data, Result>(
83
- url: string,
84
- data: Data,
85
- mutate: ScopedMutator<any>
86
- ) {
87
- const r: Result = await fetcher(url, {
88
- method: 'POST',
89
- headers: {
90
- 'content-type': 'application/json',
91
- },
92
- body: JSON.stringify(data),
93
- });
94
- mutate(url);
95
- return r;
96
- }
97
-
98
- export async function put<Data, Result>(
99
- url: string,
100
- data: Data,
101
- mutate: ScopedMutator<any>
102
- ) {
103
- const r: Result = await fetcher(url, {
104
- method: 'PUT',
105
- headers: {
106
- 'content-type': 'application/json',
107
- },
108
- body: JSON.stringify(data),
109
- });
110
- mutate(url, r);
111
- return r;
112
- }
113
-
114
- export async function del<Result>(
115
- url: string,
116
- args: unknown,
117
- mutate: ScopedMutator<any>
118
- ) {
119
- const reqUrl = makeUrl(url, args);
120
- const r: Result = await fetcher(reqUrl, {
121
- method: 'DELETE',
122
- });
123
- const path = url.split('/');
124
- path.pop();
125
- mutate(path.join('/'));
126
- return r;
127
- }
128
-
129
- export function getMutate() {
130
- const { mutate } = useSWRConfig();
131
- return mutate;
132
- }
133
- `;
134
- const sf = project.createSourceFile(path.join(context.outDir, `src/hooks/request.ts`), content, { overwrite: true });
135
- sf.formatText();
136
- }
137
55
  generateModelHooks(project, context, model) {
138
56
  const fileName = (0, change_case_1.paramCase)(model.name);
139
57
  const sf = project.createSourceFile(path.join(context.outDir, `src/hooks/${fileName}.ts`), undefined, { overwrite: true });
@@ -142,6 +60,10 @@ class ReactHooksGenerator {
142
60
  isTypeOnly: true,
143
61
  moduleSpecifier: '../../.prisma',
144
62
  });
63
+ sf.addImportDeclaration({
64
+ namedImports: ['get', 'post', 'put', 'del', 'getMutate'],
65
+ moduleSpecifier: constants_1.INTERNAL_PACKAGE,
66
+ });
145
67
  sf.addStatements([`import * as request from './request';`]);
146
68
  sf.addStatements(`const endpoint = '/api/${constants_1.API_ROUTE_NAME}/data/${model.name}';`);
147
69
  const useFuncBody = sf
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/react-hooks/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/react-hooks/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "zenstack",
3
3
  "displayName": "ZenStack CLI and Language Tools",
4
4
  "description": "ZenStack CLI and Language Tools",
5
- "version": "0.1.26",
5
+ "version": "0.1.28",
6
6
  "engines": {
7
7
  "vscode": "^1.56.0"
8
8
  },
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "main": "./out/extension.js",
49
49
  "dependencies": {
50
- "@zenstackhq/internal": "0.1.6",
50
+ "@zenstackhq/internal": "0.1.8",
51
51
  "change-case": "^4.1.2",
52
52
  "chevrotain": "^9.1.0",
53
53
  "colors": "^1.4.0",