stepzen 0.26.0 → 0.27.0-beta.1
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 +35 -9
- package/lib/commands/import.d.ts +88 -94
- package/lib/commands/import.d.ts.map +1 -1
- package/lib/commands/import.js +191 -140
- package/lib/commands/import.js.map +1 -1
- package/lib/commands/request.d.ts +4 -1
- package/lib/commands/request.d.ts.map +1 -1
- package/lib/commands/request.js +39 -26
- package/lib/commands/request.js.map +1 -1
- package/lib/generate/helpers.d.ts +1 -12
- package/lib/generate/helpers.d.ts.map +1 -1
- package/lib/generate/helpers.js +1 -149
- package/lib/generate/helpers.js.map +1 -1
- package/lib/generate/index.d.ts +0 -8
- package/lib/generate/index.d.ts.map +1 -1
- package/lib/generate/index.js +0 -100
- package/lib/generate/index.js.map +1 -1
- package/lib/generate/sql2sdl.d.ts +29 -7
- package/lib/generate/sql2sdl.d.ts.map +1 -1
- package/lib/generate/sql2sdl.js +95 -32
- package/lib/generate/sql2sdl.js.map +1 -1
- package/lib/shared/constants.d.ts +0 -3
- package/lib/shared/constants.d.ts.map +1 -1
- package/lib/shared/constants.js +2 -8
- package/lib/shared/constants.js.map +1 -1
- package/lib/shared/inquirer.d.ts +1 -1
- package/lib/shared/inquirer.d.ts.map +1 -1
- package/lib/shared/inquirer.js.map +1 -1
- package/lib/shared/request-variables-parser.d.ts +1 -1
- package/lib/shared/request-variables-parser.d.ts.map +1 -1
- package/lib/shared/request-variables-parser.js +27 -20
- package/lib/shared/request-variables-parser.js.map +1 -1
- package/lib/shared/types.d.ts +6 -0
- package/lib/shared/types.d.ts.map +1 -1
- package/lib/shared/zen-command.d.ts +3 -1
- package/lib/shared/zen-command.d.ts.map +1 -1
- package/lib/shared/zen-command.js +38 -9
- package/lib/shared/zen-command.js.map +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -30,7 +30,7 @@ $ npm install -g stepzen
|
|
|
30
30
|
$ stepzen COMMAND
|
|
31
31
|
running command...
|
|
32
32
|
$ stepzen (-v|--version|version)
|
|
33
|
-
stepzen/0.
|
|
33
|
+
stepzen/0.27.0-beta.1 linux-x64 node-v14.21.2
|
|
34
34
|
$ stepzen --help [COMMAND]
|
|
35
35
|
USAGE
|
|
36
36
|
$ stepzen COMMAND
|
|
@@ -148,6 +148,11 @@ USAGE
|
|
|
148
148
|
[--db-database=DB-DATABASE] [--db-link-types] [--db-include=DB-INCLUDE] [--db-schema=DB-SCHEMA]
|
|
149
149
|
$ stepzen import postgresql://[USER:PASSWORD@]HOST[:PORT][/DATABASE] [--db-link-types] [--db-include=DB-INCLUDE]
|
|
150
150
|
[--db-schema=DB-SCHEMA]
|
|
151
|
+
$ stepzen import snowflake [--db-user=DB-USER] [--db-password=DB-PASSWORD] [--db-database=DB-DATABASE]
|
|
152
|
+
[--db-link-types] [--db-include=DB-INCLUDE] [--db-schema=DB-SCHEMA] [--snowflake-account-id=SNOWFLAKE-ACCOUNT-ID]
|
|
153
|
+
[--snowflake-warehouse=SNOWFLAKE-WAREHOUSE]
|
|
154
|
+
$ stepzen import snowflake://[USER[:PASSWORD]@]ACCOUNT_IDENTIFIER[/DATABASE][?schema=<SCHEMA>[&warehouse=<WAREHOUSE>]]
|
|
155
|
+
[--db-link-types] [--db-include=DB-INCLUDE]
|
|
151
156
|
|
|
152
157
|
OPTIONS
|
|
153
158
|
-H, --header=header
|
|
@@ -161,26 +166,36 @@ OPTIONS
|
|
|
161
166
|
Show CLI help
|
|
162
167
|
|
|
163
168
|
--db-database=db-database
|
|
164
|
-
[mysql, postgresql] Name of database to import
|
|
169
|
+
[mysql, postgresql, snowflake] Name of database to import
|
|
165
170
|
|
|
166
171
|
--db-host=db-host
|
|
167
172
|
[mysql, postgresql] Database host and optional port (as HOST[:PORT])
|
|
168
173
|
|
|
169
174
|
--db-include=tables-only|views-only|tables-and-views
|
|
170
|
-
[mysql, postgresql] Should the generated GraphQL schema be based only on database views, only on tables
|
|
175
|
+
[mysql, postgresql, snowflake] Should the generated GraphQL schema be based only on database views, only on tables
|
|
176
|
+
or on both
|
|
171
177
|
|
|
172
178
|
--db-link-types
|
|
173
|
-
[mysql, postgresql] Automatically link types based on foreign key relationships using @materializer
|
|
179
|
+
[mysql, postgresql, snowflake] Automatically link types based on foreign key relationships using @materializer
|
|
174
180
|
(https://stepzen.com/docs/features/linking-types)
|
|
175
181
|
|
|
176
182
|
--db-password=db-password
|
|
177
|
-
[mysql, postgresql] Database password
|
|
183
|
+
[mysql, postgresql, snowflake] Database password
|
|
178
184
|
|
|
179
185
|
--db-schema=db-schema
|
|
180
|
-
[postgresql]
|
|
186
|
+
[postgresql, snowflake] Database schema to import tables from (default: public)
|
|
187
|
+
|
|
188
|
+
--db-use-deprecated-2022-naming
|
|
189
|
+
[mysql, postgresql] Use the deprecated pre-2023 naming convention in the generated GraphQL schema:
|
|
190
|
+
- the generated type and property names are auto-capitalized into PascalCase
|
|
191
|
+
- the generated field names use the getCustomer and getCustomerList style.
|
|
192
|
+
|
|
193
|
+
On the other hand, when using the default naming convention:
|
|
194
|
+
- the generated type and property names match exactly the DB table and column names
|
|
195
|
+
- the generated field names use the customer and customerList style.
|
|
181
196
|
|
|
182
197
|
--db-user=db-user
|
|
183
|
-
[mysql, postgresql] Database user name
|
|
198
|
+
[mysql, postgresql, snowflake] Database user name
|
|
184
199
|
|
|
185
200
|
--dir=dir
|
|
186
201
|
Working directory
|
|
@@ -210,11 +225,18 @@ OPTIONS
|
|
|
210
225
|
[curl, graphql] Prefix to add to every type in the generated schema
|
|
211
226
|
|
|
212
227
|
--query-name=query-name
|
|
213
|
-
[curl] Property name to add to the Query type as a way to access the imported endpoint
|
|
228
|
+
[curl] [curl] Property name to add to the Query type as a way to access the imported endpoint
|
|
214
229
|
|
|
215
230
|
--query-type=query-type
|
|
216
231
|
[curl] Name for the type returned by the curl request in the generated schema. The name specified by --query-type is
|
|
217
232
|
not prefixed by --prefix if both flags are present.
|
|
233
|
+
|
|
234
|
+
--snowflake-account-id=snowflake-account-id
|
|
235
|
+
[snowflake] Snowflake account identifier in the orgname-accountname format. For more information, see the Snowflake
|
|
236
|
+
documentation at https://docs.snowflake.com/en/user-guide/admin-account-identifier.html.
|
|
237
|
+
|
|
238
|
+
--snowflake-warehouse=snowflake-warehouse
|
|
239
|
+
[snowflake] Snowflake warehouse
|
|
218
240
|
```
|
|
219
241
|
|
|
220
242
|
## `stepzen init`
|
|
@@ -304,6 +326,9 @@ OPTIONS
|
|
|
304
326
|
stepzen request '{ user(id: "u123") { email } }' \
|
|
305
327
|
-H "X-API-Token: SecretAPIToken"
|
|
306
328
|
|
|
329
|
+
Use the -H "Header-Name:" syntax to drop a default header, and the -H "Header-Name;" syntax to send a header with an
|
|
330
|
+
empty value.
|
|
331
|
+
|
|
307
332
|
-h, --help
|
|
308
333
|
Show CLI help
|
|
309
334
|
|
|
@@ -327,7 +352,8 @@ OPTIONS
|
|
|
327
352
|
--var limit=5
|
|
328
353
|
|
|
329
354
|
--var-file=var-file
|
|
330
|
-
Read request variables from a JSON file
|
|
355
|
+
Read request variables from a JSON file. In case when the same variable value is provided both via --var-file and
|
|
356
|
+
--var, the priority is given to the latter.
|
|
331
357
|
|
|
332
358
|
Example:
|
|
333
359
|
stepzen request 'query OrdersQuery($search: String!, $limit: Int) {
|
package/lib/commands/import.d.ts
CHANGED
|
@@ -1,128 +1,122 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
1
|
+
import * as Parser from '@oclif/parser';
|
|
2
|
+
import { IOptionFlag, IBooleanFlag } from '@oclif/parser/lib/flags';
|
|
3
3
|
import type { CommonImportOptions } from '../generate';
|
|
4
4
|
import ZenCommand from '../shared/zen-command';
|
|
5
|
-
import {
|
|
5
|
+
import { DBType, DBIntrospectionOptions } from '../generate/sql2sdl';
|
|
6
6
|
import { HeaderInput } from '../shared/header';
|
|
7
7
|
import { Workspace, Flags } from '../shared/types';
|
|
8
|
+
export declare type DataSourceType = 'curl' | 'graphql' | 'postgresql' | 'mysql' | 'snowflake';
|
|
9
|
+
declare type IOptionFlagWithDataSource<T> = IOptionFlag<T> & {
|
|
10
|
+
dataSources?: DataSourceType[];
|
|
11
|
+
};
|
|
12
|
+
declare type IBooleanFlagWithDataSource<T> = IBooleanFlag<T> & {
|
|
13
|
+
dataSources?: DataSourceType[];
|
|
14
|
+
};
|
|
15
|
+
declare type DefinitionWithDataSource<T> = {
|
|
16
|
+
(options: {
|
|
17
|
+
multiple: true;
|
|
18
|
+
} & Partial<IOptionFlagWithDataSource<T[]>>): IOptionFlagWithDataSource<T[]>;
|
|
19
|
+
(options: ({
|
|
20
|
+
required: true;
|
|
21
|
+
} | {
|
|
22
|
+
default: Parser.flags.Default<T>;
|
|
23
|
+
}) & Partial<IOptionFlagWithDataSource<T>>): IOptionFlagWithDataSource<T>;
|
|
24
|
+
(options?: Partial<IOptionFlagWithDataSource<T>>): IOptionFlagWithDataSource<T | undefined>;
|
|
25
|
+
};
|
|
26
|
+
declare const flags: {
|
|
27
|
+
string: DefinitionWithDataSource<string>;
|
|
28
|
+
boolean: <T = boolean>(options?: Partial<IBooleanFlagWithDataSource<T>>) => IBooleanFlagWithDataSource<T>;
|
|
29
|
+
};
|
|
8
30
|
export default class Import extends ZenCommand {
|
|
9
31
|
static description: string;
|
|
10
|
-
static commonIntrospectionFlags: {
|
|
11
|
-
prefix: flags.IOptionFlag<string | undefined>;
|
|
12
|
-
header: flags.IOptionFlag<string[]>;
|
|
13
|
-
'header-param': flags.IOptionFlag<string[]>;
|
|
14
|
-
};
|
|
15
|
-
static curlFlags: {
|
|
16
|
-
'query-name': flags.IOptionFlag<string | undefined>;
|
|
17
|
-
'query-type': flags.IOptionFlag<string | undefined>;
|
|
18
|
-
'path-params': flags.IOptionFlag<string | undefined>;
|
|
19
|
-
};
|
|
20
|
-
static sqlFlags: {
|
|
21
|
-
'db-host': flags.IOptionFlag<string | undefined>;
|
|
22
|
-
'db-user': flags.IOptionFlag<string | undefined>;
|
|
23
|
-
'db-password': flags.IOptionFlag<string | undefined>;
|
|
24
|
-
'db-database': flags.IOptionFlag<string | undefined>;
|
|
25
|
-
'db-link-types': import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
|
|
26
|
-
'db-include': flags.IOptionFlag<string | undefined>;
|
|
27
|
-
};
|
|
28
|
-
static postgresqlFlags: {
|
|
29
|
-
'db-schema': flags.IOptionFlag<string | undefined>;
|
|
30
|
-
};
|
|
31
|
-
static flagsForSources: ({
|
|
32
|
-
flags: {
|
|
33
|
-
prefix: flags.IOptionFlag<string | undefined>;
|
|
34
|
-
header: flags.IOptionFlag<string[]>;
|
|
35
|
-
'header-param': flags.IOptionFlag<string[]>;
|
|
36
|
-
};
|
|
37
|
-
sources: string[];
|
|
38
|
-
} | {
|
|
39
|
-
flags: {
|
|
40
|
-
'query-name': flags.IOptionFlag<string | undefined>;
|
|
41
|
-
'query-type': flags.IOptionFlag<string | undefined>;
|
|
42
|
-
'path-params': flags.IOptionFlag<string | undefined>;
|
|
43
|
-
};
|
|
44
|
-
sources: string[];
|
|
45
|
-
} | {
|
|
46
|
-
flags: {
|
|
47
|
-
'db-host': flags.IOptionFlag<string | undefined>;
|
|
48
|
-
'db-user': flags.IOptionFlag<string | undefined>;
|
|
49
|
-
'db-password': flags.IOptionFlag<string | undefined>;
|
|
50
|
-
'db-database': flags.IOptionFlag<string | undefined>;
|
|
51
|
-
'db-link-types': import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
|
|
52
|
-
'db-include': flags.IOptionFlag<string | undefined>;
|
|
53
|
-
};
|
|
54
|
-
sources: string[];
|
|
55
|
-
} | {
|
|
56
|
-
flags: {
|
|
57
|
-
'db-schema': flags.IOptionFlag<string | undefined>;
|
|
58
|
-
};
|
|
59
|
-
sources: string[];
|
|
60
|
-
})[];
|
|
61
|
-
static flagHelpForSource: (source: string, exclude?: string[]) => string;
|
|
62
|
-
static usage: string[];
|
|
63
32
|
static flags: {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
'
|
|
71
|
-
'query-name':
|
|
72
|
-
'query-type':
|
|
73
|
-
'path-params':
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
'
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
'
|
|
33
|
+
dir: IOptionFlagWithDataSource<string | undefined>;
|
|
34
|
+
silent: IBooleanFlagWithDataSource<boolean>;
|
|
35
|
+
name: IOptionFlagWithDataSource<string | undefined>;
|
|
36
|
+
overwrite: IBooleanFlagWithDataSource<boolean>;
|
|
37
|
+
prefix: IOptionFlagWithDataSource<string | undefined>;
|
|
38
|
+
header: IOptionFlagWithDataSource<string[]>;
|
|
39
|
+
'header-param': IOptionFlagWithDataSource<string[]>;
|
|
40
|
+
'query-name': IOptionFlagWithDataSource<string | undefined>;
|
|
41
|
+
'query-type': IOptionFlagWithDataSource<string | undefined>;
|
|
42
|
+
'path-params': IOptionFlagWithDataSource<string | undefined>;
|
|
43
|
+
'db-host': IOptionFlagWithDataSource<string | undefined>;
|
|
44
|
+
'db-user': IOptionFlagWithDataSource<string | undefined>;
|
|
45
|
+
'db-password': IOptionFlagWithDataSource<string | undefined>;
|
|
46
|
+
'db-database': IOptionFlagWithDataSource<string | undefined>;
|
|
47
|
+
'db-link-types': IBooleanFlagWithDataSource<boolean>;
|
|
48
|
+
'db-include': IOptionFlagWithDataSource<string | undefined>;
|
|
49
|
+
'db-schema': IOptionFlagWithDataSource<string | undefined>;
|
|
50
|
+
'db-use-deprecated-2022-naming': IBooleanFlagWithDataSource<boolean>;
|
|
51
|
+
'snowflake-account-id': IOptionFlagWithDataSource<string | undefined>;
|
|
52
|
+
'snowflake-warehouse': IOptionFlagWithDataSource<string | undefined>;
|
|
53
|
+
help: Parser.flags.IBooleanFlag<void>;
|
|
54
|
+
'non-interactive': Parser.flags.IBooleanFlag<boolean>;
|
|
83
55
|
};
|
|
84
56
|
static args: {
|
|
85
57
|
name: string;
|
|
86
58
|
required: boolean;
|
|
87
59
|
}[];
|
|
60
|
+
static flagHelpForSource: (source: DataSourceType, exclude?: Array<keyof typeof Import.flags>) => string;
|
|
61
|
+
static usage: string[];
|
|
88
62
|
static strict: boolean;
|
|
89
63
|
run(): Promise<void>;
|
|
90
64
|
importCurl(argv: string[], flags: Flags<typeof Import>, commonOptions: CommonImportOptions): Promise<string>;
|
|
91
65
|
importGraphQL(argv: string[], flags: Flags<typeof Import>, commonOptions: CommonImportOptions): Promise<string>;
|
|
92
|
-
importSql(source:
|
|
93
|
-
importFromGeneratorEngines(schema: string, flags: any, fixedOptions: CommonImportOptions): Promise<string>;
|
|
66
|
+
importSql(source: DBType, dsn: string | undefined, flags: Flags<typeof Import>, fixedOptions: CommonImportOptions): Promise<string>;
|
|
94
67
|
ensureOnConflictBehavior(workspace: Workspace, source: string, flags: ReturnType<Import['parseWorkaround']>['flags']): Promise<"overwrite" | "append">;
|
|
95
|
-
warnAboutIgnoredFlags(source: string, usedFlags:
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
68
|
+
warnAboutIgnoredFlags(source: string, usedFlags: Flags<typeof Import>): void;
|
|
69
|
+
parseWorkaround(): Parser.Output<{
|
|
70
|
+
dir: string | undefined;
|
|
71
|
+
silent: boolean;
|
|
72
|
+
name: string | undefined;
|
|
73
|
+
overwrite: boolean;
|
|
74
|
+
prefix: string | undefined;
|
|
75
|
+
header: string[];
|
|
76
|
+
'header-param': string[];
|
|
77
|
+
'query-name': string | undefined;
|
|
78
|
+
'query-type': string | undefined;
|
|
79
|
+
'path-params': string | undefined;
|
|
100
80
|
'db-host': string | undefined;
|
|
101
81
|
'db-user': string | undefined;
|
|
102
82
|
'db-password': string | undefined;
|
|
103
83
|
'db-database': string | undefined;
|
|
104
84
|
'db-link-types': boolean;
|
|
105
85
|
'db-include': string | undefined;
|
|
106
|
-
'
|
|
107
|
-
'
|
|
108
|
-
'
|
|
109
|
-
|
|
110
|
-
header: string[];
|
|
111
|
-
'header-param': string[];
|
|
112
|
-
dir: string | undefined;
|
|
113
|
-
silent: boolean;
|
|
114
|
-
name: string | undefined;
|
|
115
|
-
overwrite: boolean;
|
|
86
|
+
'db-schema': string | undefined;
|
|
87
|
+
'db-use-deprecated-2022-naming': boolean;
|
|
88
|
+
'snowflake-account-id': string | undefined;
|
|
89
|
+
'snowflake-warehouse': string | undefined;
|
|
116
90
|
help: void;
|
|
117
91
|
'non-interactive': boolean;
|
|
118
92
|
}, {
|
|
119
93
|
[name: string]: any;
|
|
120
94
|
}>;
|
|
121
95
|
parseHeaderFlags(headerFlagValues?: string[], headerParamFlagValues?: string[]): HeaderInput[];
|
|
122
|
-
getSqlOptionsFromFlags(flags: Flags<typeof Import>):
|
|
123
|
-
|
|
96
|
+
getSqlOptionsFromFlags(flags: Flags<typeof Import>): {
|
|
97
|
+
host: string | undefined;
|
|
98
|
+
user: string | undefined;
|
|
99
|
+
password: string | undefined;
|
|
100
|
+
database: string | undefined;
|
|
101
|
+
linkTypes: boolean;
|
|
102
|
+
schema: string | undefined;
|
|
103
|
+
include: "tables-only" | "views-only" | "tables-and-views" | undefined;
|
|
104
|
+
introspectionOptions: DBIntrospectionOptions;
|
|
105
|
+
accountId: string | undefined;
|
|
106
|
+
warehouse: string | undefined;
|
|
107
|
+
};
|
|
108
|
+
getSqlOptionsFromDSN(possibleDsn: string): {
|
|
109
|
+
host: string | undefined;
|
|
110
|
+
accountId: string | undefined;
|
|
111
|
+
user: string | undefined;
|
|
112
|
+
password: string | undefined;
|
|
113
|
+
database: string | undefined;
|
|
114
|
+
schema: string | undefined;
|
|
115
|
+
warehouse: string | undefined;
|
|
116
|
+
};
|
|
124
117
|
runImportAndExitOnError(importFn: () => Promise<{
|
|
125
118
|
error: string;
|
|
126
119
|
} | any>, ctaOnError?: string): Promise<any>;
|
|
127
120
|
}
|
|
121
|
+
export {};
|
|
128
122
|
//# sourceMappingURL=import.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"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"}
|