@based/type-gen 0.0.1 → 0.0.3
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/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +20 -5
- package/test/types.ts +2 -3
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAGtD,eAAO,MAAM,WAAW,QACjB,CACD;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CACnE,EAAE,SACG;IACJ,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,KACA,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAGtD,eAAO,MAAM,WAAW,QACjB,CACD;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CACnE,EAAE,SACG;IACJ,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,KACA,QAAQ,MAAM,GAAG,IAAI,CA6GvB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,8 @@ exports.updateTypes = void 0;
|
|
|
4
4
|
const fs_extra_1 = require("fs-extra");
|
|
5
5
|
const updateTypes = async (fns, opts = {}) => {
|
|
6
6
|
// check if client is correct version
|
|
7
|
-
const basedClientPath = opts.basedPath ||
|
|
7
|
+
const basedClientPath = opts.basedPath ||
|
|
8
|
+
require.resolve('@based/client', { paths: [process.cwd()] });
|
|
8
9
|
if (!basedClientPath) {
|
|
9
10
|
throw new Error('Cannot find basedClient');
|
|
10
11
|
}
|
|
@@ -23,6 +24,7 @@ const updateTypes = async (fns, opts = {}) => {
|
|
|
23
24
|
let queryFns = '\n';
|
|
24
25
|
let fnCnt = 0;
|
|
25
26
|
let queryCnt = 0;
|
|
27
|
+
let queryMap = '\n';
|
|
26
28
|
let needsParsing = opts.extraImports ?? false;
|
|
27
29
|
for (const fn of fns) {
|
|
28
30
|
if (fn.config.type === 'function') {
|
|
@@ -54,11 +56,13 @@ const updateTypes = async (fns, opts = {}) => {
|
|
|
54
56
|
if ('path' in fn) {
|
|
55
57
|
const name = 'Q_Type_' + queryCnt;
|
|
56
58
|
imports += `import type ${name} from '${fn.path}';\n`;
|
|
59
|
+
queryMap += `'${fn.config.name}': { payload: Parameters<typeof ${name}>[1], result: Parameters<Parameters<typeof ${name}>[2]>[0] },`;
|
|
57
60
|
queryFns += `
|
|
58
61
|
query(name: '${fn.config.name}', payload: Parameters<typeof ${name}>[1], opts?: QueryOptions): BasedQuery<Parameters<typeof ${name}>[1],Parameters<Parameters<typeof ${name}>[2]>[0]>;
|
|
59
62
|
`;
|
|
60
63
|
}
|
|
61
64
|
else {
|
|
65
|
+
queryMap += `'${fn.config.name}': { payload: ${fn.payload}, result: ${fn.result} },`;
|
|
62
66
|
queryFns += `
|
|
63
67
|
query(name: '${fn.config.name}', payload: ${fn.payload}, opts?: QueryOptions): BasedQuery<${fn.payload},${fn.result}>;
|
|
64
68
|
`;
|
|
@@ -72,11 +76,12 @@ const updateTypes = async (fns, opts = {}) => {
|
|
|
72
76
|
}
|
|
73
77
|
if (queryCnt > 0) {
|
|
74
78
|
x = x.replace(`query(name: string, payload?: any, opts?: QueryOptions): BasedQuery;`, queryFns);
|
|
79
|
+
console.info('fix');
|
|
80
|
+
x = x.replace(/export type QueryMap = ([^@]*?)\};([^@]*?)\};/, `export type QueryMap = {${queryMap}}`);
|
|
75
81
|
}
|
|
76
82
|
await (0, fs_extra_1.writeFile)(decPath, x);
|
|
77
|
-
return
|
|
83
|
+
return decPath;
|
|
78
84
|
}
|
|
79
|
-
return false;
|
|
80
85
|
};
|
|
81
86
|
exports.updateTypes = updateTypes;
|
|
82
87
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,uCAA8C;AAEvC,MAAM,WAAW,GAAG,KAAK,EAC9B,GAGG,EACH,OAGI,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -10,10 +10,12 @@ export const updateTypes = async (
|
|
|
10
10
|
extraImports?: string[]
|
|
11
11
|
basedPath?: string
|
|
12
12
|
} = {}
|
|
13
|
-
): Promise<
|
|
13
|
+
): Promise<string | void> => {
|
|
14
14
|
// check if client is correct version
|
|
15
15
|
|
|
16
|
-
const basedClientPath =
|
|
16
|
+
const basedClientPath =
|
|
17
|
+
opts.basedPath ||
|
|
18
|
+
require.resolve('@based/client', { paths: [process.cwd()] })
|
|
17
19
|
|
|
18
20
|
if (!basedClientPath) {
|
|
19
21
|
throw new Error('Cannot find basedClient')
|
|
@@ -44,6 +46,8 @@ export const updateTypes = async (
|
|
|
44
46
|
let fnCnt = 0
|
|
45
47
|
let queryCnt = 0
|
|
46
48
|
|
|
49
|
+
let queryMap = '\n'
|
|
50
|
+
|
|
47
51
|
let needsParsing = opts.extraImports ?? false
|
|
48
52
|
|
|
49
53
|
for (const fn of fns) {
|
|
@@ -71,13 +75,19 @@ export const updateTypes = async (
|
|
|
71
75
|
}
|
|
72
76
|
} else if (fn.config.type === 'query') {
|
|
73
77
|
queryCnt++
|
|
78
|
+
|
|
74
79
|
if ('path' in fn) {
|
|
75
80
|
const name = 'Q_Type_' + queryCnt
|
|
76
81
|
imports += `import type ${name} from '${fn.path}';\n`
|
|
82
|
+
|
|
83
|
+
queryMap += `'${fn.config.name}': { payload: Parameters<typeof ${name}>[1], result: Parameters<Parameters<typeof ${name}>[2]>[0] },`
|
|
84
|
+
|
|
77
85
|
queryFns += `
|
|
78
86
|
query(name: '${fn.config.name}', payload: Parameters<typeof ${name}>[1], opts?: QueryOptions): BasedQuery<Parameters<typeof ${name}>[1],Parameters<Parameters<typeof ${name}>[2]>[0]>;
|
|
79
87
|
`
|
|
80
88
|
} else {
|
|
89
|
+
queryMap += `'${fn.config.name}': { payload: ${fn.payload}, result: ${fn.result} },`
|
|
90
|
+
|
|
81
91
|
queryFns += `
|
|
82
92
|
query(name: '${fn.config.name}', payload: ${fn.payload}, opts?: QueryOptions): BasedQuery<${fn.payload},${fn.result}>;
|
|
83
93
|
`
|
|
@@ -98,10 +108,15 @@ export const updateTypes = async (
|
|
|
98
108
|
`query(name: string, payload?: any, opts?: QueryOptions): BasedQuery;`,
|
|
99
109
|
queryFns
|
|
100
110
|
)
|
|
111
|
+
|
|
112
|
+
console.info('fix')
|
|
113
|
+
|
|
114
|
+
x = x.replace(
|
|
115
|
+
/export type QueryMap = ([^@]*?)\};([^@]*?)\};/,
|
|
116
|
+
`export type QueryMap = {${queryMap}}`
|
|
117
|
+
)
|
|
101
118
|
}
|
|
102
119
|
await writeFile(decPath, x)
|
|
103
|
-
return
|
|
120
|
+
return decPath
|
|
104
121
|
}
|
|
105
|
-
|
|
106
|
-
return false
|
|
107
122
|
}
|
package/test/types.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import test from 'ava'
|
|
2
2
|
import { updateTypes } from '../src'
|
|
3
3
|
import { join } from 'path'
|
|
4
|
-
import based from '@based/client'
|
|
5
4
|
import { readFile } from 'fs-extra'
|
|
6
5
|
|
|
7
|
-
test.serial('
|
|
6
|
+
test.serial('Generate types file from examples', async (t) => {
|
|
8
7
|
const result = await updateTypes([
|
|
9
8
|
{
|
|
10
9
|
config: require('./examples/helloWorld/based.config.json'),
|
|
@@ -40,7 +39,7 @@ test.serial('Generare types file from examples', async (t) => {
|
|
|
40
39
|
encoding: 'utf-8',
|
|
41
40
|
})
|
|
42
41
|
|
|
43
|
-
t.
|
|
42
|
+
t.is(result, join(__dirname, '../../client/dist/index.d.ts'))
|
|
44
43
|
t.true(file.includes('counter'))
|
|
45
44
|
t.true(file.includes('db:schema'))
|
|
46
45
|
t.true(file.includes('db:update-schema'))
|