sasat 0.19.14 → 0.19.15
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 +98 -0
- package/lib/migration/front/storeMigrator.js +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,2 +1,100 @@
|
|
|
1
1
|
# Sasat
|
|
2
|
+
rdb migration based graphql source code generator.
|
|
3
|
+
resolve relations without N + 1.
|
|
2
4
|
|
|
5
|
+
## getting stared
|
|
6
|
+
```sh
|
|
7
|
+
$ npm i sasat
|
|
8
|
+
$ npm run sasat init
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## commands
|
|
12
|
+
```sh
|
|
13
|
+
# make migration file
|
|
14
|
+
$ npm sasat migration:create ${migration name}
|
|
15
|
+
|
|
16
|
+
# generate file
|
|
17
|
+
$ npm sasat generate
|
|
18
|
+
|
|
19
|
+
# migrate
|
|
20
|
+
$ npm sasat migrate
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## config file
|
|
24
|
+
`projectroot/sasat.yml`
|
|
25
|
+
```yml
|
|
26
|
+
migration:
|
|
27
|
+
dir: # migration file dir
|
|
28
|
+
table: # migration table name
|
|
29
|
+
out: # generate file output dir
|
|
30
|
+
generator:
|
|
31
|
+
addJsExtToImportStatement: # add `.js` ext to import statement when this value is true
|
|
32
|
+
db:
|
|
33
|
+
host: # if value starts with `$` read from environment variable. (e.g. $DB_HOST => process.env.DB_HOST)
|
|
34
|
+
port:
|
|
35
|
+
user:
|
|
36
|
+
password:
|
|
37
|
+
database:
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## migration
|
|
41
|
+
- 1_ create migration file `$npm sasat migration:create ${migration name}
|
|
42
|
+
- 2_ edit migration file
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
// sample migraiton
|
|
46
|
+
import {
|
|
47
|
+
Queries,
|
|
48
|
+
SasatMigration,
|
|
49
|
+
MigrationStore,
|
|
50
|
+
Conditions,
|
|
51
|
+
Mutations,
|
|
52
|
+
} from '../../src/index.js';
|
|
53
|
+
|
|
54
|
+
export default class CreateUser implements SasatMigration {
|
|
55
|
+
up: (store: MigrationStore) => void = store => {
|
|
56
|
+
return store.createTable('user' /* tableName */, table => {
|
|
57
|
+
table.autoIncrementHashId('userId'); // create userId column primary key
|
|
58
|
+
table
|
|
59
|
+
.column('name')
|
|
60
|
+
.varchar(20)
|
|
61
|
+
.default('no name')
|
|
62
|
+
.notNull();
|
|
63
|
+
table
|
|
64
|
+
.column('nickName')
|
|
65
|
+
.varchar(20)
|
|
66
|
+
.nullable()
|
|
67
|
+
.unique();
|
|
68
|
+
table.createdAt().updatedAt();
|
|
69
|
+
table.enableGQL(); // enable Graphql
|
|
70
|
+
table.addGQLQuery(
|
|
71
|
+
Queries.primary(), // add query
|
|
72
|
+
);
|
|
73
|
+
table.addGQLMutation(
|
|
74
|
+
Mutations.create(), // add create mutation
|
|
75
|
+
);
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
down: (store: MigrationStore) => void = store => {
|
|
79
|
+
store.dropTable('user');
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
- 3_ run `$ npm run sasat migrate -g`
|
|
84
|
+
- 4_ add server file
|
|
85
|
+
```typescript
|
|
86
|
+
import { ApolloServer } from '@apollo/server';
|
|
87
|
+
import { resolvers } from './out/__generated__/resolver.js';
|
|
88
|
+
import { inputs, typeDefs } from './out/__generated__/typeDefs.js';
|
|
89
|
+
import { createTypeDef } from 'sasat';
|
|
90
|
+
import { startStandaloneServer } from '@apollo/server/standalone';
|
|
91
|
+
|
|
92
|
+
const server = new ApolloServer<Context>({
|
|
93
|
+
typeDefs: createTypeDef(typeDefs, inputs),
|
|
94
|
+
resolvers,
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
const { url } = await startStandaloneServer(server, { listen: { port: 4000 } });
|
|
98
|
+
console.log(`🚀 Server ready at ${url}`);
|
|
99
|
+
```
|
|
100
|
+
- 5_ run server!
|