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 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!
@@ -44,6 +44,7 @@ export class StoreMigrator {
44
44
  }
45
45
  dropTable(tableName) {
46
46
  this.addQuery(`DROP TABLE ${tableName}`);
47
+ this.tables = this.tables.filter(it => it.tableName !== tableName);
47
48
  return this;
48
49
  }
49
50
  sql(sql) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sasat",
3
- "version": "0.19.14",
3
+ "version": "0.19.15",
4
4
  "repository": "https://github.com/nin138/sasat.git",
5
5
  "author": "nin138 <ninian138@gmail.com>",
6
6
  "license": "MIT",