@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 CHANGED
@@ -9,5 +9,5 @@ export declare const updateTypes: (fns: ({
9
9
  })[], opts?: {
10
10
  extraImports?: string[];
11
11
  basedPath?: string;
12
- }) => Promise<boolean>;
12
+ }) => Promise<string | void>;
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -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,OAAO,CA8FjB,CAAA"}
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 || require.resolve('@based/client');
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 true;
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@based/type-gen",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
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<boolean> => {
13
+ ): Promise<string | void> => {
14
14
  // check if client is correct version
15
15
 
16
- const basedClientPath = opts.basedPath || require.resolve('@based/client')
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 true
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('Generare types file from examples', async (t) => {
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.true(result)
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'))