b-gsdk 0.0.7 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.js +6 -6
- package/package.json +4 -2
- package/src/bin.ts +17 -2
- package/src/index.ts +11 -7
- package/src/util/get-b-gsdk-config.ts +20 -0
- package/src/util/get-b-gsdk-directory-path.ts +2 -3
- package/tsconfig.json +2 -1
package/dist/index.js
CHANGED
@@ -7,18 +7,18 @@ exports.main = void 0;
|
|
7
7
|
const cli_1 = require("@graphql-codegen/cli");
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
9
9
|
const path_1 = __importDefault(require("path"));
|
10
|
+
const get_b_gsdk_config_1 = require("./util/get-b-gsdk-config");
|
10
11
|
const get_b_gsdk_directory_path_1 = require("./util/get-b-gsdk-directory-path");
|
11
|
-
async function main() {
|
12
|
-
const bgsdkDirectoryPath = (0, get_b_gsdk_directory_path_1.getBGsdkDirectoryPath)(process.cwd());
|
12
|
+
async function main(args) {
|
13
|
+
const bgsdkDirectoryPath = (0, get_b_gsdk_directory_path_1.getBGsdkDirectoryPath)(process.cwd(), args["--dir"]);
|
13
14
|
if (!bgsdkDirectoryPath) {
|
14
15
|
throw new Error("Make sure you have a b-gsdk directory in the root of your project.");
|
15
16
|
}
|
17
|
+
const config = (0, get_b_gsdk_config_1.getBGsdkConfig)(bgsdkDirectoryPath);
|
16
18
|
const [schemaCodegen, sdkCodegen] = await (0, cli_1.generate)({
|
17
19
|
schema: {
|
18
|
-
|
19
|
-
headers:
|
20
|
-
"x-shopify-storefront-access-token": "374a3639228aeb7798d99d88002c4b2e",
|
21
|
-
},
|
20
|
+
[config.schemaURL]: {
|
21
|
+
headers: config.headers,
|
22
22
|
},
|
23
23
|
},
|
24
24
|
generates: {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "b-gsdk",
|
3
|
-
"version": "0.0
|
3
|
+
"version": "0.1.0",
|
4
4
|
"description": "A GraphQL Codegen that outputs a TypeScript SDK.",
|
5
5
|
"author": "Julian Benegas",
|
6
6
|
"license": "MIT",
|
@@ -15,7 +15,9 @@
|
|
15
15
|
"@graphql-codegen/introspection": "^2.1.0",
|
16
16
|
"@graphql-codegen/typescript": "^2.4.1",
|
17
17
|
"@graphql-codegen/typescript-graphql-request": "^4.3.2",
|
18
|
-
"@graphql-codegen/typescript-operations": "^2.2.1"
|
18
|
+
"@graphql-codegen/typescript-operations": "^2.2.1",
|
19
|
+
"arg": "^5.0.1",
|
20
|
+
"zod": "^3.14.4"
|
19
21
|
},
|
20
22
|
"peerDependencies": {
|
21
23
|
"graphql": "*",
|
package/src/bin.ts
CHANGED
@@ -2,11 +2,14 @@
|
|
2
2
|
|
3
3
|
import { main } from ".";
|
4
4
|
import { formatError } from "./util/format-error";
|
5
|
+
import arg from "arg";
|
5
6
|
|
6
7
|
// Show usage and exit with code
|
7
8
|
function help(code: number) {
|
8
9
|
console.log(`Usage:
|
10
|
+
|
9
11
|
b-gsdk generate
|
12
|
+
|
10
13
|
`);
|
11
14
|
process.exit(code);
|
12
15
|
}
|
@@ -14,16 +17,28 @@ function help(code: number) {
|
|
14
17
|
// Get CLI arguments
|
15
18
|
const [, , cmd] = process.argv;
|
16
19
|
|
20
|
+
const args = arg(
|
21
|
+
{
|
22
|
+
// types
|
23
|
+
"--dir": String,
|
24
|
+
// aliases
|
25
|
+
"-d": "--dir",
|
26
|
+
},
|
27
|
+
{ permissive: true }
|
28
|
+
);
|
29
|
+
|
17
30
|
// CLI commands
|
18
|
-
const cmds: { [key: string]: () => void } = {
|
31
|
+
const cmds: { [key: string]: (args: Args) => void } = {
|
19
32
|
generate: main,
|
20
33
|
};
|
21
34
|
|
22
35
|
// Run CLI
|
23
36
|
try {
|
24
37
|
// Run command or show usage for unknown command
|
25
|
-
cmds[cmd] ? cmds[cmd]() : help(0);
|
38
|
+
cmds[cmd] ? cmds[cmd](args) : help(0);
|
26
39
|
} catch (e) {
|
27
40
|
console.error(formatError(e).message);
|
28
41
|
process.exit(1);
|
29
42
|
}
|
43
|
+
|
44
|
+
export type Args = typeof args;
|
package/src/index.ts
CHANGED
@@ -1,10 +1,15 @@
|
|
1
1
|
import { generate } from "@graphql-codegen/cli";
|
2
2
|
import fs from "fs";
|
3
3
|
import path from "path";
|
4
|
+
import { Args } from "./bin";
|
5
|
+
import { getBGsdkConfig } from "./util/get-b-gsdk-config";
|
4
6
|
import { getBGsdkDirectoryPath } from "./util/get-b-gsdk-directory-path";
|
5
7
|
|
6
|
-
export async function main() {
|
7
|
-
const bgsdkDirectoryPath = getBGsdkDirectoryPath(
|
8
|
+
export async function main(args: Args) {
|
9
|
+
const bgsdkDirectoryPath = getBGsdkDirectoryPath(
|
10
|
+
process.cwd(),
|
11
|
+
args["--dir"]
|
12
|
+
);
|
8
13
|
|
9
14
|
if (!bgsdkDirectoryPath) {
|
10
15
|
throw new Error(
|
@@ -12,14 +17,13 @@ export async function main() {
|
|
12
17
|
);
|
13
18
|
}
|
14
19
|
|
20
|
+
const config = getBGsdkConfig(bgsdkDirectoryPath);
|
21
|
+
|
15
22
|
const [schemaCodegen, sdkCodegen] = await generate(
|
16
23
|
{
|
17
24
|
schema: {
|
18
|
-
|
19
|
-
headers:
|
20
|
-
"x-shopify-storefront-access-token":
|
21
|
-
"374a3639228aeb7798d99d88002c4b2e",
|
22
|
-
},
|
25
|
+
[config.schemaURL]: {
|
26
|
+
headers: config.headers,
|
23
27
|
},
|
24
28
|
},
|
25
29
|
generates: {
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import fs from "fs";
|
2
|
+
import path from "path";
|
3
|
+
import { z } from "zod";
|
4
|
+
|
5
|
+
const configSchema = z.object({
|
6
|
+
schemaURL: z.string(),
|
7
|
+
headers: z.record(z.string()),
|
8
|
+
});
|
9
|
+
|
10
|
+
export const getBGsdkConfig = (directoryPath: string) => {
|
11
|
+
const bgsdkConfigPath = path.join(directoryPath, "config.json");
|
12
|
+
if (!fs.existsSync(bgsdkConfigPath)) {
|
13
|
+
throw new Error(
|
14
|
+
`Could not find config.json in ${directoryPath}! Please create one.`
|
15
|
+
);
|
16
|
+
}
|
17
|
+
const rawConfig = JSON.parse(fs.readFileSync(bgsdkConfigPath, "utf8"));
|
18
|
+
const parsedConfig = configSchema.parse(rawConfig);
|
19
|
+
return parsedConfig;
|
20
|
+
};
|
@@ -1,9 +1,8 @@
|
|
1
1
|
import fs from "fs";
|
2
2
|
import path from "path";
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
const schemaPath = path.join(cwd, "b-gsdk");
|
4
|
+
export const getBGsdkDirectoryPath = (cwd: string, customDir?: string) => {
|
5
|
+
const schemaPath = path.join(cwd, customDir || "b-gsdk");
|
7
6
|
if (fs.existsSync(schemaPath)) {
|
8
7
|
return schemaPath;
|
9
8
|
}
|