@jackchuka/sdl-decompose 1.2.0 → 1.3.0
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 +15 -9
- package/bin/cli.js +3 -3
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -7
- package/dist/index.js.map +1 -1
- package/package.json +36 -30
package/README.md
CHANGED
|
@@ -65,6 +65,7 @@ Options:
|
|
|
65
65
|
#### Example 1: Basic Query Decomposition
|
|
66
66
|
|
|
67
67
|
Given this schema:
|
|
68
|
+
|
|
68
69
|
```graphql
|
|
69
70
|
type Query {
|
|
70
71
|
getUser(id: ID!): User
|
|
@@ -87,11 +88,13 @@ type Post {
|
|
|
87
88
|
```
|
|
88
89
|
|
|
89
90
|
Running:
|
|
91
|
+
|
|
90
92
|
```bash
|
|
91
93
|
npx @jackchuka/sdl-decompose --sdl schema.graphql --operation getUser
|
|
92
94
|
```
|
|
93
95
|
|
|
94
96
|
Outputs:
|
|
97
|
+
|
|
95
98
|
```graphql
|
|
96
99
|
type Query {
|
|
97
100
|
getUser(id: ID!): User
|
|
@@ -155,7 +158,7 @@ npm install @jackchuka/sdl-decompose
|
|
|
155
158
|
### Usage
|
|
156
159
|
|
|
157
160
|
```typescript
|
|
158
|
-
import { decomposeGraphQL } from
|
|
161
|
+
import { decomposeGraphQL } from "@jackchuka/sdl-decompose";
|
|
159
162
|
|
|
160
163
|
const fullSDL = `
|
|
161
164
|
type Query {
|
|
@@ -176,15 +179,15 @@ const fullSDL = `
|
|
|
176
179
|
}
|
|
177
180
|
`;
|
|
178
181
|
|
|
179
|
-
const result = decomposeGraphQL(fullSDL,
|
|
182
|
+
const result = decomposeGraphQL(fullSDL, "getUser", "query", {
|
|
180
183
|
includeBuiltinScalars: false,
|
|
181
184
|
excludeComments: true,
|
|
182
|
-
includeDeprecated: false
|
|
185
|
+
includeDeprecated: false,
|
|
183
186
|
});
|
|
184
187
|
|
|
185
188
|
console.log(result.sdl);
|
|
186
|
-
console.log(
|
|
187
|
-
console.log(
|
|
189
|
+
console.log("Collected types:", Array.from(result.collectedTypes));
|
|
190
|
+
console.log("Operation found:", result.operationFound);
|
|
188
191
|
```
|
|
189
192
|
|
|
190
193
|
### API Reference
|
|
@@ -192,22 +195,25 @@ console.log('Operation found:', result.operationFound);
|
|
|
192
195
|
#### `decomposeGraphQL(fullSDL, operationName, operationType?, options?)`
|
|
193
196
|
|
|
194
197
|
**Parameters:**
|
|
198
|
+
|
|
195
199
|
- `fullSDL` (string): The complete GraphQL SDL
|
|
196
200
|
- `operationName` (string): Name of the operation to decompose
|
|
197
201
|
- `operationType` (string, optional): Type of operation - `'query'`, `'mutation'`, or `'subscription'`. Defaults to `'query'`
|
|
198
202
|
- `options` (object, optional): Configuration options
|
|
199
203
|
|
|
200
204
|
**Options:**
|
|
205
|
+
|
|
201
206
|
- `includeBuiltinScalars` (boolean): Include built-in scalar types (String, Int, Float, Boolean, ID) in the output. Defaults to `false`
|
|
202
207
|
- `excludeComments` (boolean): Remove comments and descriptions from the output SDL. Defaults to `false`
|
|
203
208
|
- `includeDeprecated` (boolean): Include deprecated fields in the output SDL. Defaults to `false`
|
|
204
209
|
|
|
205
210
|
**Returns:**
|
|
211
|
+
|
|
206
212
|
```typescript
|
|
207
213
|
interface DecomposeResult {
|
|
208
|
-
sdl: string;
|
|
209
|
-
collectedTypes: Set<string>;
|
|
210
|
-
operationFound: boolean;
|
|
214
|
+
sdl: string; // The decomposed SDL
|
|
215
|
+
collectedTypes: Set<string>; // Set of type names that were collected
|
|
216
|
+
operationFound: boolean; // Whether the operation was found
|
|
211
217
|
}
|
|
212
218
|
```
|
|
213
219
|
|
|
@@ -226,7 +232,7 @@ interface DecomposeResult {
|
|
|
226
232
|
operationFound: boolean;
|
|
227
233
|
}
|
|
228
234
|
|
|
229
|
-
type OperationType =
|
|
235
|
+
type OperationType = "query" | "mutation" | "subscription";
|
|
230
236
|
```
|
|
231
237
|
|
|
232
238
|
## Use Cases
|
package/bin/cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var g=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports);var
|
|
2
|
+
var g=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports);var m=g((W,C)=>{C.exports={name:"@jackchuka/sdl-decompose",version:"1.3.0",description:"Decompose GraphQL SDL by operation name to produce partial SDL",keywords:["decompose","graphql","schema","sdl"],license:"MIT",author:"jackchuka",repository:{type:"git",url:"https://github.com/jackchuka/sdl-decompose.git"},bin:{"sdl-decompose":"bin/cli.js"},files:["bin/**/*","dist/**/*"],type:"module",main:"dist/index.js",types:"dist/index.d.ts",scripts:{lint:"oxlint --type-aware --tsconfig ./tsconfig.json","lint:fix":"oxlint --fix --type-aware --tsconfig ./tsconfig.json",fmt:"oxfmt",build:"tsc","build:cli":"node esbuild.config.js",dev:"tsc --watch",test:"jest",prepublishOnly:"npm run build && npm run build:cli"},dependencies:{commander:"^14.0.2",graphql:"^16.12.0"},devDependencies:{"@types/jest":"^30.0.0","@types/node":"^25.0.6",esbuild:"^0.27.2",jest:"^30.2.0",oxfmt:"^0.24.0",oxlint:"^1.39.0","oxlint-tsgolint":"^0.11.0","ts-jest":"^29.4.6",typescript:"^5.9.3"},packageManager:"pnpm@8.14.1"}});import{Command as G}from"commander";import{readFileSync as N,writeFileSync as $,existsSync as q}from"fs";import{resolve as I}from"path";import{buildASTSchema as D,parse as T,visit as h,isObjectType as S,isInputObjectType as b,isInterfaceType as L,isUnionType as x,getNamedType as d,printType as O}from"graphql";var j=new Set(["String","Int","Float","Boolean","ID"]);function v(n,t){return t.excludeComments||!t.includeDeprecated?h(n,{FieldDefinition(e){return!t.includeDeprecated&&e.directives&&e.directives.some(s=>s.name.value==="deprecated")?null:t.excludeComments&&e.description?{...e,description:void 0}:e},Directive(e){return e.name.value==="deprecated"&&!t.includeDeprecated?null:e},ObjectTypeDefinition(e){return t.excludeComments&&e.description?{...e,description:void 0}:e},InputObjectTypeDefinition(e){return t.excludeComments&&e.description?{...e,description:void 0}:e},InterfaceTypeDefinition(e){return t.excludeComments&&e.description?{...e,description:void 0}:e},UnionTypeDefinition(e){return t.excludeComments&&e.description?{...e,description:void 0}:e},EnumTypeDefinition(e){return t.excludeComments&&e.description?{...e,description:void 0}:e},ScalarTypeDefinition(e){return t.excludeComments&&e.description?{...e,description:void 0}:e}}):n}function l(n,t,i="query",e={}){try{let r=T(n),s=v(r,e),o=D(s),c={collected:new Set,typeNames:new Set},p=f(o,i);if(!p)return{sdl:"",collectedTypes:new Set,operationFound:!1};let a=p.getFields()[t];return a?(F(a,c,e),{sdl:Q(o,c,i,t),collectedTypes:c.typeNames,operationFound:!0}):{sdl:"",collectedTypes:new Set,operationFound:!1}}catch(r){throw new Error(`Failed to decompose GraphQL: ${r instanceof Error?r.message:String(r)}`)}}function f(n,t){switch(t){case"query":return n.getQueryType();case"mutation":return n.getMutationType();case"subscription":return n.getSubscriptionType();default:return null}}function F(n,t,i){let e=d(n.type);if(u(e,t,i),n.args)for(let r of n.args){let s=d(r.type);u(s,t,i)}}function u(n,t,i){if(!(!n||t.collected.has(n))&&!(!i.includeBuiltinScalars&&j.has(n.name))){if(t.collected.add(n),t.typeNames.add(n.name),S(n)||b(n)){let e=n.getFields();for(let r of Object.values(e)){let s=d(r.type);if(u(s,t,i),"args"in r&&r.args)for(let o of r.args){let c=d(o.type);u(c,t,i)}}}else if(L(n)){let e=n.getFields();for(let r of Object.values(e)){let s=d(r.type);if(u(s,t,i),r.args)for(let o of r.args){let c=d(o.type);u(c,t,i)}}}else if(x(n))for(let e of n.getTypes())u(e,t,i)}}function Q(n,t,i,e){let r=[],s=f(n,i);if(s){let o=s.getFields()[e];if(o){let c=i==="query"?"Query":i==="mutation"?"Mutation":"Subscription";r.push(`type ${c} {
|
|
3
3
|
${e}${w(o)}
|
|
4
|
-
}`)}}for(let o of t.collected)o.name==="Query"||o.name==="Mutation"||o.name==="Subscription"||
|
|
4
|
+
}`)}}for(let o of t.collected)o.name==="Query"||o.name==="Mutation"||o.name==="Subscription"||r.push(O(o));return r.join(`
|
|
5
5
|
|
|
6
|
-
`)}function w(n){return`${n.args&&n.args.length>0?`(${n.args.map(
|
|
6
|
+
`)}function w(n){return`${n.args&&n.args.length>0?`(${n.args.map(i=>`${i.name}: ${String(i.type)}`).join(", ")})`:""}: ${String(n.type)}`}var y=new G;async function E(n){if(n){let i=I(n);if(!q(i))throw new Error(`SDL file not found: ${i}`);return N(i,"utf8")}let t=[];return new Promise((i,e)=>{process.stdin.on("data",r=>{if(typeof r=="string"){t.push(Buffer.from(r,"utf8"));return}t.push(r)}),process.stdin.on("end",()=>{let r=Buffer.concat(t).toString("utf8");r.trim()?i(r):e(new Error("No SDL content provided via stdin"))}),process.stdin.on("error",e)})}y.name("sdl-decompose").description("Decompose GraphQL SDL by operation name to produce partial SDL").version(m().version).option("-s, --sdl <file>","Path to SDL file (optional, reads from stdin if not provided)").requiredOption("-o, --operation <name>","Operation name to decompose").option("-t, --type <type>","Operation type: query, mutation, subscription","query").option("--output <file>","Output file path (optional, prints to stdout if not provided)").option("--include-builtins","Include builtin scalar types in output",!1).option("--exclude-comments","Remove comments and descriptions from output SDL",!1).option("--include-deprecated","Include deprecated fields in output",!1).action(async n=>{let{sdl:t,operation:i,type:e,output:r,includeBuiltins:s,excludeComments:o,includeDeprecated:c}=n;["query","mutation","subscription"].includes(e)||(console.error("Error: --type must be one of: query, mutation, subscription"),process.exit(1));try{let p=await E(t),a=l(p,i,e,{includeBuiltinScalars:s,excludeComments:o,includeDeprecated:c});a.operationFound||(console.error(`Error: Operation '${i}' not found in ${e} type`),process.exit(1)),r?($(r,a.sdl),console.log(`Decomposed SDL written to: ${r}`),console.log(`Collected types: ${Array.from(a.collectedTypes).join(", ")}`)):console.log(a.sdl)}catch(p){console.error(`Error: ${p instanceof Error?p.message:String(p)}`),process.exit(1)}});y.parse();
|
package/dist/cli.js
CHANGED
|
@@ -17,6 +17,10 @@ async function readSDL(sdlFile) {
|
|
|
17
17
|
const chunks = [];
|
|
18
18
|
return new Promise((resolve, reject) => {
|
|
19
19
|
process.stdin.on("data", (chunk) => {
|
|
20
|
+
if (typeof chunk === "string") {
|
|
21
|
+
chunks.push(Buffer.from(chunk, "utf8"));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
20
24
|
chunks.push(chunk);
|
|
21
25
|
});
|
|
22
26
|
process.stdin.on("end", () => {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AAAA,yCAAoC;AACpC,2BAA6D;AAC7D,+BAA+B;AAC/B,mCAA0D;AAE1D,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,KAAK,UAAU,OAAO,CAAC,OAAgB;IACrC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAA,iBAAY,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,kBAAkB;IAClB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;KAC3C,MAAM,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAiB,MAAM,SAAS,CAAC;AA0G1F,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,aAAa,GAAE,aAAuB,EACtC,OAAO,GAAE,gBAAqB,GAC7B,eAAe,CA+CjB;AAyHD,cAAc,SAAS,CAAC;AACxB,eAAe,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -134,7 +134,7 @@ function decomposeGraphQL(fullSDL, operationName, operationType = "query", optio
|
|
|
134
134
|
};
|
|
135
135
|
}
|
|
136
136
|
collectTypesFromField(field, collector, options);
|
|
137
|
-
const partialSDL = reconstructSDL(schema, collector, operationType, operationName
|
|
137
|
+
const partialSDL = reconstructSDL(schema, collector, operationType, operationName);
|
|
138
138
|
return {
|
|
139
139
|
sdl: partialSDL,
|
|
140
140
|
collectedTypes: collector.typeNames,
|
|
@@ -207,7 +207,7 @@ function collectTypes(type, collector, options) {
|
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
|
-
function reconstructSDL(schema, collector, operationType, operationName
|
|
210
|
+
function reconstructSDL(schema, collector, operationType, operationName) {
|
|
211
211
|
const typeDefs = [];
|
|
212
212
|
const rootType = getRootType(schema, operationType);
|
|
213
213
|
if (rootType) {
|
|
@@ -224,9 +224,7 @@ function reconstructSDL(schema, collector, operationType, operationName, options
|
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
226
|
for (const type of collector.collected) {
|
|
227
|
-
if (type.name === "Query" ||
|
|
228
|
-
type.name === "Mutation" ||
|
|
229
|
-
type.name === "Subscription") {
|
|
227
|
+
if (type.name === "Query" || type.name === "Mutation" || type.name === "Subscription") {
|
|
230
228
|
continue;
|
|
231
229
|
}
|
|
232
230
|
typeDefs.push((0, graphql_1.printType)(type));
|
|
@@ -236,10 +234,10 @@ function reconstructSDL(schema, collector, operationType, operationName, options
|
|
|
236
234
|
function printFieldSignature(field) {
|
|
237
235
|
const args = field.args && field.args.length > 0
|
|
238
236
|
? `(${field.args
|
|
239
|
-
.map((arg) => `${arg.name}: ${arg.type}`)
|
|
237
|
+
.map((arg) => `${arg.name}: ${String(arg.type)}`)
|
|
240
238
|
.join(", ")})`
|
|
241
239
|
: "";
|
|
242
|
-
return `${args}: ${field.type}`;
|
|
240
|
+
return `${args}: ${String(field.type)}`;
|
|
243
241
|
}
|
|
244
242
|
__exportStar(require("./types"), exports);
|
|
245
243
|
exports.default = decomposeGraphQL;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,46 +1,52 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jackchuka/sdl-decompose",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Decompose GraphQL SDL by operation name to produce partial SDL",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"types": "dist/index.d.ts",
|
|
8
|
-
"scripts": {
|
|
9
|
-
"build": "tsc",
|
|
10
|
-
"build:cli": "node esbuild.config.js",
|
|
11
|
-
"dev": "tsc --watch",
|
|
12
|
-
"test": "jest",
|
|
13
|
-
"prepublishOnly": "npm run build && npm run build:cli"
|
|
14
|
-
},
|
|
15
5
|
"keywords": [
|
|
16
|
-
"graphql",
|
|
17
|
-
"sdl",
|
|
18
6
|
"decompose",
|
|
19
|
-
"
|
|
7
|
+
"graphql",
|
|
8
|
+
"schema",
|
|
9
|
+
"sdl"
|
|
20
10
|
],
|
|
21
|
-
"author": "jackchuka",
|
|
22
11
|
"license": "MIT",
|
|
12
|
+
"author": "jackchuka",
|
|
23
13
|
"repository": {
|
|
24
14
|
"type": "git",
|
|
25
15
|
"url": "https://github.com/jackchuka/sdl-decompose.git"
|
|
26
16
|
},
|
|
17
|
+
"bin": {
|
|
18
|
+
"sdl-decompose": "bin/cli.js"
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"bin/**/*",
|
|
22
|
+
"dist/**/*"
|
|
23
|
+
],
|
|
24
|
+
"type": "module",
|
|
25
|
+
"main": "dist/index.js",
|
|
26
|
+
"types": "dist/index.d.ts",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"commander": "^14.0.
|
|
29
|
-
"graphql": "^16.
|
|
28
|
+
"commander": "^14.0.2",
|
|
29
|
+
"graphql": "^16.12.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/jest": "^30.0.0",
|
|
33
|
-
"@types/node": "^
|
|
34
|
-
"esbuild": "^0.
|
|
35
|
-
"jest": "^30.0
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"
|
|
33
|
+
"@types/node": "^25.0.6",
|
|
34
|
+
"esbuild": "^0.27.2",
|
|
35
|
+
"jest": "^30.2.0",
|
|
36
|
+
"oxfmt": "^0.24.0",
|
|
37
|
+
"oxlint": "^1.39.0",
|
|
38
|
+
"oxlint-tsgolint": "^0.11.0",
|
|
39
|
+
"ts-jest": "^29.4.6",
|
|
40
|
+
"typescript": "^5.9.3"
|
|
41
41
|
},
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
"packageManager": "pnpm@8.14.1",
|
|
43
|
+
"scripts": {
|
|
44
|
+
"lint": "oxlint --type-aware --tsconfig ./tsconfig.json",
|
|
45
|
+
"lint:fix": "oxlint --fix --type-aware --tsconfig ./tsconfig.json",
|
|
46
|
+
"fmt": "oxfmt",
|
|
47
|
+
"build": "tsc",
|
|
48
|
+
"build:cli": "node esbuild.config.js",
|
|
49
|
+
"dev": "tsc --watch",
|
|
50
|
+
"test": "jest"
|
|
51
|
+
}
|
|
52
|
+
}
|