@eddeee888/gcg-typescript-resolver-files 0.18.0 → 0.18.2
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/dist/defineConfig.d.ts +1 -1
- package/dist/defineConfig.js +8 -0
- package/package.json +7 -3
- package/CHANGELOG.md +0 -816
- package/DEVELOPMENT.md +0 -49
- package/dist/tsconfig.lib.tsbuildinfo +0 -1
- package/eslint.config.mjs +0 -22
- package/project.json +0 -8
- package/src/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.ts +0 -109
- package/src/addVirtualTypesFileToTsMorphProject/index.ts +0 -1
- package/src/defineConfig.spec.ts +0 -76
- package/src/defineConfig.ts +0 -37
- package/src/generateResolverFiles/addExternalResolverImport.ts +0 -185
- package/src/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.spec.ts +0 -1174
- package/src/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.ts +0 -144
- package/src/generateResolverFiles/addResolverMainFiles.ts +0 -343
- package/src/generateResolverFiles/ensureEnumTypeResolversAreGenerated.ts +0 -51
- package/src/generateResolverFiles/generateResolverFiles.ts +0 -148
- package/src/generateResolverFiles/getImportStatementWithExpectedNamedImport.spec.ts +0 -127
- package/src/generateResolverFiles/getImportStatementWithExpectedNamedImport.ts +0 -25
- package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.spec.ts +0 -147
- package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.ts +0 -34
- package/src/generateResolverFiles/handleGraphQLEnumType.ts +0 -100
- package/src/generateResolverFiles/handleGraphQLInterfaceType.ts +0 -70
- package/src/generateResolverFiles/handleGraphQLObjectType.ts +0 -171
- package/src/generateResolverFiles/handleGraphQLRootObjectTypeField.ts +0 -105
- package/src/generateResolverFiles/handleGraphQLScalarType.ts +0 -81
- package/src/generateResolverFiles/handleGraphQLUnionType.ts +0 -68
- package/src/generateResolverFiles/index.ts +0 -2
- package/src/generateResolverFiles/postProcessFiles.ts +0 -287
- package/src/generateResolverFiles/types.ts +0 -203
- package/src/generateResolverFiles/visitNamedType.ts +0 -66
- package/src/generateTypeDefsFiles/generateTypeDefsContent.ts +0 -15
- package/src/generateTypeDefsFiles/generateTypeDefsFiles.ts +0 -100
- package/src/generateTypeDefsFiles/index.ts +0 -1
- package/src/getGraphQLObjectTypeResolversToGenerate/getGraphQLObjectTypeResolversToGenerate.ts +0 -361
- package/src/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.spec.ts +0 -115
- package/src/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.ts +0 -88
- package/src/getGraphQLObjectTypeResolversToGenerate/index.ts +0 -1
- package/src/index.ts +0 -3
- package/src/normalizeAddConfigPath/index.ts +0 -1
- package/src/normalizeAddConfigPath/normalizeAddConfigPath.ts +0 -29
- package/src/parseGraphQLSchema/index.ts +0 -2
- package/src/parseGraphQLSchema/normalizeResolverName.ts +0 -28
- package/src/parseGraphQLSchema/parseGraphQLSchema.ts +0 -531
- package/src/parseGraphQLSchema/parseLocationForOutputDir.ts +0 -76
- package/src/parseSources/index.ts +0 -1
- package/src/parseSources/parseSources.ts +0 -83
- package/src/parseTypeMappers/collectTypeMappersFromSourceFile.spec.ts +0 -789
- package/src/parseTypeMappers/collectTypeMappersFromSourceFile.ts +0 -197
- package/src/parseTypeMappers/index.ts +0 -1
- package/src/parseTypeMappers/parseTypeMappers.ts +0 -75
- package/src/preset.ts +0 -317
- package/src/utils/cwd.ts +0 -8
- package/src/utils/fmt.ts +0 -16
- package/src/utils/index.ts +0 -12
- package/src/utils/isMatchResolverNamePattern.ts +0 -27
- package/src/utils/isNativeNamedType.ts +0 -21
- package/src/utils/isRootObjectType.ts +0 -8
- package/src/utils/isWhitelistedModule.spec.ts +0 -71
- package/src/utils/isWhitelistedModule.ts +0 -21
- package/src/utils/logger.ts +0 -14
- package/src/utils/normalizeImportExtension.spec.ts +0 -42
- package/src/utils/normalizeImportExtension.ts +0 -16
- package/src/utils/normalizeRelativePath.ts +0 -6
- package/src/utils/parseLocationForWhitelistedModule.spec.ts +0 -130
- package/src/utils/parseLocationForWhitelistedModule.ts +0 -38
- package/src/utils/printImportLine.spec.ts +0 -150
- package/src/utils/printImportLine.ts +0 -78
- package/src/utils/relativeModulePath.ts +0 -7
- package/src/validateAndMergeParsedConfigs/index.ts +0 -1
- package/src/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.spec.ts +0 -211
- package/src/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.ts +0 -92
- package/src/validatePresetConfig/index.ts +0 -1
- package/src/validatePresetConfig/validatePresetConfig.spec.ts +0 -706
- package/src/validatePresetConfig/validatePresetConfig.ts +0 -571
- package/tsconfig.json +0 -14
- package/tsconfig.lib.json +0 -18
- package/tsconfig.spec.json +0 -20
- package/vite.config.ts +0 -24
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import type { SourceFile, Project } from 'ts-morph';
|
|
2
|
-
import type * as typeScriptResolversPlugin from '@graphql-codegen/typescript-resolvers';
|
|
3
|
-
import type { GraphQLObjectTypeResolversToGenerate } from '../getGraphQLObjectTypeResolversToGenerate/index.js';
|
|
4
|
-
import type { TypeMappersMap } from '../parseTypeMappers/index.js';
|
|
5
|
-
import type {
|
|
6
|
-
ImportExtension,
|
|
7
|
-
ImportLineMeta,
|
|
8
|
-
RootObjectType,
|
|
9
|
-
} from '../utils/index.js';
|
|
10
|
-
import type { ParsedPresetConfig } from '../validatePresetConfig/index.js';
|
|
11
|
-
import type { NormalizedResolverName } from '../parseGraphQLSchema/index.js';
|
|
12
|
-
import type { ParsedGraphQLSchemaMeta } from '../parseGraphQLSchema/index.js';
|
|
13
|
-
|
|
14
|
-
export type GeneratedTypesFileMeta = {
|
|
15
|
-
generatedResolverTypes: NonNullable<
|
|
16
|
-
Awaited<ReturnType<typeof typeScriptResolversPlugin.plugin>>['meta']
|
|
17
|
-
>['generatedResolverTypes'];
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
interface BaseVirtualFile {
|
|
21
|
-
__filetype: string;
|
|
22
|
-
filesystem: {
|
|
23
|
-
type: 'virtual' | 'filesystem';
|
|
24
|
-
contentUpdated: boolean;
|
|
25
|
-
};
|
|
26
|
-
content: string;
|
|
27
|
-
mainImportIdentifier: string;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export interface StandardFile extends BaseVirtualFile {
|
|
31
|
-
__filetype: 'file';
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export interface InterfacelResolverFile extends BaseVirtualFile {
|
|
35
|
-
__filetype: 'interfaceResolver';
|
|
36
|
-
meta: {
|
|
37
|
-
moduleName: string;
|
|
38
|
-
relativePathFromBaseToModule: string[];
|
|
39
|
-
resolverTypeImportDeclaration: string;
|
|
40
|
-
variableStatement: string;
|
|
41
|
-
resolverType: {
|
|
42
|
-
baseImport: string; // e.g. `NodeResolvers`
|
|
43
|
-
final: string;
|
|
44
|
-
};
|
|
45
|
-
normalizedResolverName: NormalizedResolverName;
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export interface UnionResolverFile extends BaseVirtualFile {
|
|
50
|
-
__filetype: 'unionResolver';
|
|
51
|
-
meta: {
|
|
52
|
-
moduleName: string;
|
|
53
|
-
relativePathFromBaseToModule: string[];
|
|
54
|
-
resolverTypeImportDeclaration: string;
|
|
55
|
-
variableStatement: string;
|
|
56
|
-
resolverType: {
|
|
57
|
-
baseImport: string; // e.g. `NodeResolvers`
|
|
58
|
-
final: string;
|
|
59
|
-
};
|
|
60
|
-
normalizedResolverName: NormalizedResolverName;
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export interface ScalarResolverFile extends BaseVirtualFile {
|
|
65
|
-
__filetype: 'scalarResolver';
|
|
66
|
-
meta: {
|
|
67
|
-
moduleName: string;
|
|
68
|
-
relativePathFromBaseToModule: string[];
|
|
69
|
-
resolverTypeImportDeclaration: string;
|
|
70
|
-
variableStatement: string;
|
|
71
|
-
resolverType: {
|
|
72
|
-
baseImport: string; // e.g. `NodeResolvers`
|
|
73
|
-
final: string;
|
|
74
|
-
};
|
|
75
|
-
normalizedResolverName: NormalizedResolverName;
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export interface EnumResolverFile extends BaseVirtualFile {
|
|
80
|
-
__filetype: 'enumResolver';
|
|
81
|
-
meta: {
|
|
82
|
-
moduleName: string;
|
|
83
|
-
relativePathFromBaseToModule: string[];
|
|
84
|
-
resolverTypeImportDeclaration: string;
|
|
85
|
-
variableStatement: string;
|
|
86
|
-
resolverType: {
|
|
87
|
-
baseImport: string; // e.g. `NodeResolvers`
|
|
88
|
-
final: string;
|
|
89
|
-
};
|
|
90
|
-
normalizedResolverName: NormalizedResolverName;
|
|
91
|
-
allowedValues: string[];
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export interface RootObjectTypeFieldResolverFile extends BaseVirtualFile {
|
|
96
|
-
__filetype: 'rootObjectTypeFieldResolver';
|
|
97
|
-
meta: {
|
|
98
|
-
moduleName: string;
|
|
99
|
-
relativePathFromBaseToModule: string[];
|
|
100
|
-
belongsToRootObject: RootObjectType;
|
|
101
|
-
resolverTypeImportDeclaration: string;
|
|
102
|
-
variableStatement: string;
|
|
103
|
-
resolverType: {
|
|
104
|
-
baseImport: string; // e.g. `QueryResolvers`
|
|
105
|
-
resolver: string; // e.g. `QueryResolvers['user']`
|
|
106
|
-
final: string; // e.g. `NonNullable<<QueryResolvers['user']>`
|
|
107
|
-
};
|
|
108
|
-
normalizedResolverName: NormalizedResolverName;
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
export interface ObjectTypeFile extends BaseVirtualFile {
|
|
113
|
-
__filetype: 'objectType';
|
|
114
|
-
meta: {
|
|
115
|
-
moduleName: string;
|
|
116
|
-
relativePathFromBaseToModule: string[];
|
|
117
|
-
resolverTypeImportDeclaration: string;
|
|
118
|
-
variableStatement: string;
|
|
119
|
-
resolverType: {
|
|
120
|
-
baseImport: string; // e.g. `UserResolvers`
|
|
121
|
-
final: string; // e.g. `UserResolvers`, `Pick<UserResolvers, 'id'|'name'>`
|
|
122
|
-
otherVariants: string[]; // e.g. `Pick<UserResolvers, |'id'|'name'>`
|
|
123
|
-
};
|
|
124
|
-
normalizedResolverName: NormalizedResolverName;
|
|
125
|
-
resolversToGenerate?: GraphQLObjectTypeResolversToGenerate[number];
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
export type ResolverFile =
|
|
130
|
-
| RootObjectTypeFieldResolverFile
|
|
131
|
-
| ObjectTypeFile
|
|
132
|
-
| InterfacelResolverFile
|
|
133
|
-
| UnionResolverFile
|
|
134
|
-
| ScalarResolverFile
|
|
135
|
-
| EnumResolverFile;
|
|
136
|
-
|
|
137
|
-
export interface GenerateResolverFilesContext {
|
|
138
|
-
config: {
|
|
139
|
-
baseOutputDir: string;
|
|
140
|
-
resolverTypesPath: string;
|
|
141
|
-
resolverRelativeTargetDir: string;
|
|
142
|
-
resolverMainFile: string;
|
|
143
|
-
resolverMainFileMode: ParsedPresetConfig['resolverMainFileMode'];
|
|
144
|
-
resolverGeneration: ParsedPresetConfig['resolverGeneration'];
|
|
145
|
-
unmanagedResolvers: Record<string, string>;
|
|
146
|
-
tsMorph: {
|
|
147
|
-
project: Project;
|
|
148
|
-
typesSourceFile: SourceFile;
|
|
149
|
-
};
|
|
150
|
-
typeMappersMap: TypeMappersMap;
|
|
151
|
-
parsedGraphQLSchemaMeta: ParsedGraphQLSchemaMeta;
|
|
152
|
-
graphQLObjectTypeResolversToGenerate: GraphQLObjectTypeResolversToGenerate;
|
|
153
|
-
fixObjectTypeResolvers: ParsedPresetConfig['fixObjectTypeResolvers'];
|
|
154
|
-
emitLegacyCommonJSImports: boolean;
|
|
155
|
-
importExtension: ImportExtension;
|
|
156
|
-
generatedTypesFileMeta: GeneratedTypesFileMeta;
|
|
157
|
-
};
|
|
158
|
-
result: {
|
|
159
|
-
files: Record<string, StandardFile | ResolverFile>;
|
|
160
|
-
externalImports: Record<
|
|
161
|
-
string,
|
|
162
|
-
{
|
|
163
|
-
moduleName: string;
|
|
164
|
-
relativePathFromBaseToModule: string[];
|
|
165
|
-
importLineMeta: ImportLineMeta;
|
|
166
|
-
identifierUsages: {
|
|
167
|
-
identifierName: string;
|
|
168
|
-
normalizedResolverName: string;
|
|
169
|
-
}[];
|
|
170
|
-
}
|
|
171
|
-
>;
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
export interface GraphQLTypeHandlerParams<BelongsToRootObject = null> {
|
|
176
|
-
moduleName: string;
|
|
177
|
-
relativePathFromBaseToModule: string[];
|
|
178
|
-
fieldFilePath: string;
|
|
179
|
-
resolverName: string;
|
|
180
|
-
isFileAlreadyOnFilesystem: boolean;
|
|
181
|
-
belongsToRootObject: BelongsToRootObject;
|
|
182
|
-
normalizedResolverName: NormalizedResolverName;
|
|
183
|
-
resolversTypeMeta: {
|
|
184
|
-
// typeNamedImport: name of the type to be imported from `module`.
|
|
185
|
-
// If it's a root object type field, this is the root type (e.g. Query, Mutation, Subscription).
|
|
186
|
-
// Otherwise, it's the object type e.g. User, Profile, etc.
|
|
187
|
-
typeNamedImport: string;
|
|
188
|
-
// path to typescript-resolvers file
|
|
189
|
-
module: ImportLineMeta['module'];
|
|
190
|
-
moduleType: ImportLineMeta['moduleType'];
|
|
191
|
-
// typeString: valid type specified for a field or object type
|
|
192
|
-
typeString: string;
|
|
193
|
-
};
|
|
194
|
-
generatedTypesFileMeta: GeneratedTypesFileMeta;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
export type GraphQLTypeHandler<
|
|
198
|
-
BelongsToRootObject = null,
|
|
199
|
-
ExtraParams = Record<string, unknown>
|
|
200
|
-
> = (
|
|
201
|
-
params: GraphQLTypeHandlerParams<BelongsToRootObject> & ExtraParams,
|
|
202
|
-
ctx: GenerateResolverFilesContext
|
|
203
|
-
) => void;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
GraphQLTypeHandler,
|
|
3
|
-
GenerateResolverFilesContext,
|
|
4
|
-
} from './types.js';
|
|
5
|
-
import { addExternalResolverImport } from './addExternalResolverImport.js';
|
|
6
|
-
import type { ResolverDetails } from '../parseGraphQLSchema/index.js';
|
|
7
|
-
|
|
8
|
-
export const visitNamedType = <T = null>(
|
|
9
|
-
{
|
|
10
|
-
moduleName,
|
|
11
|
-
relativePathFromBaseToModule,
|
|
12
|
-
normalizedResolverName,
|
|
13
|
-
resolverFile,
|
|
14
|
-
relativePathToResolverTypesFile,
|
|
15
|
-
typeNamedImport,
|
|
16
|
-
typeString,
|
|
17
|
-
belongsToRootObject,
|
|
18
|
-
visitor,
|
|
19
|
-
}: ResolverDetails & {
|
|
20
|
-
belongsToRootObject: T;
|
|
21
|
-
visitor: GraphQLTypeHandler<T>;
|
|
22
|
-
},
|
|
23
|
-
ctx: GenerateResolverFilesContext
|
|
24
|
-
): void => {
|
|
25
|
-
const unmanagedResolversImportSyntax =
|
|
26
|
-
ctx.config.unmanagedResolvers[normalizedResolverName.base];
|
|
27
|
-
if (unmanagedResolversImportSyntax) {
|
|
28
|
-
addExternalResolverImport(
|
|
29
|
-
{
|
|
30
|
-
moduleName,
|
|
31
|
-
relativePathFromBaseToModule,
|
|
32
|
-
normalizedResolverName: normalizedResolverName.base,
|
|
33
|
-
configImportSyntax: unmanagedResolversImportSyntax,
|
|
34
|
-
},
|
|
35
|
-
ctx
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (ctx.result.files[resolverFile.path]) {
|
|
42
|
-
throw new Error(
|
|
43
|
-
`Unexpected duplication in field filename. Type: ${resolverFile.name}, file: ${resolverFile.path}`
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
visitor(
|
|
48
|
-
{
|
|
49
|
-
belongsToRootObject,
|
|
50
|
-
fieldFilePath: resolverFile.path,
|
|
51
|
-
isFileAlreadyOnFilesystem: resolverFile.isOnFilesystem,
|
|
52
|
-
moduleName,
|
|
53
|
-
normalizedResolverName,
|
|
54
|
-
relativePathFromBaseToModule,
|
|
55
|
-
resolverName: resolverFile.name,
|
|
56
|
-
resolversTypeMeta: {
|
|
57
|
-
module: relativePathToResolverTypesFile,
|
|
58
|
-
moduleType: 'file',
|
|
59
|
-
typeNamedImport: typeNamedImport(ctx.config.generatedTypesFileMeta),
|
|
60
|
-
typeString: typeString(ctx.config.generatedTypesFileMeta),
|
|
61
|
-
},
|
|
62
|
-
generatedTypesFileMeta: ctx.config.generatedTypesFileMeta,
|
|
63
|
-
},
|
|
64
|
-
ctx
|
|
65
|
-
);
|
|
66
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { mergeTypeDefs } from '@graphql-tools/merge';
|
|
2
|
-
|
|
3
|
-
interface GenerateTypeDefsContentParams {
|
|
4
|
-
mergedSDL: string;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export const generateTypeDefsContent = ({
|
|
8
|
-
mergedSDL,
|
|
9
|
-
}: GenerateTypeDefsContentParams): string => {
|
|
10
|
-
const documentNode = mergeTypeDefs(mergedSDL, { noLocation: true });
|
|
11
|
-
const documentNodeString = JSON.stringify(documentNode);
|
|
12
|
-
|
|
13
|
-
return `import type { DocumentNode } from 'graphql';
|
|
14
|
-
export const typeDefs = ${documentNodeString} as unknown as DocumentNode`;
|
|
15
|
-
};
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import * as path from 'path';
|
|
2
|
-
import type { StandardFile } from '../generateResolverFiles/index.js';
|
|
3
|
-
import type { ParseSourcesResult } from '../parseSources/index.js';
|
|
4
|
-
import { cwd, isWhitelistedModule } from '../utils/index.js';
|
|
5
|
-
import type { TypeDefsFileMode } from '../validatePresetConfig/index.js';
|
|
6
|
-
import { generateTypeDefsContent } from './generateTypeDefsContent.js';
|
|
7
|
-
|
|
8
|
-
interface GenerateTypeDefsFilesParams {
|
|
9
|
-
baseOutputDir: string;
|
|
10
|
-
typeDefsFilePath: string;
|
|
11
|
-
typeDefsFileMode: TypeDefsFileMode;
|
|
12
|
-
sourceMap: ParseSourcesResult['sourceMap'];
|
|
13
|
-
whitelistedModules: string[];
|
|
14
|
-
blacklistedModules: string[];
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export const generateTypeDefsFiles = ({
|
|
18
|
-
baseOutputDir,
|
|
19
|
-
typeDefsFilePath,
|
|
20
|
-
typeDefsFileMode,
|
|
21
|
-
sourceMap,
|
|
22
|
-
blacklistedModules,
|
|
23
|
-
whitelistedModules,
|
|
24
|
-
}: GenerateTypeDefsFilesParams): Record<string, StandardFile> => {
|
|
25
|
-
const filesContent: Record<string, string> = {};
|
|
26
|
-
Object.values(sourceMap).forEach(({ moduleName, source, sourcePath }) => {
|
|
27
|
-
const isWhitelisted = isWhitelistedModule({
|
|
28
|
-
moduleName,
|
|
29
|
-
whitelistedModules,
|
|
30
|
-
blacklistedModules,
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
if (typeDefsFileMode === 'merged') {
|
|
34
|
-
appendSDLToFile({
|
|
35
|
-
filesContent,
|
|
36
|
-
filePath: path.posix.join(baseOutputDir, typeDefsFilePath),
|
|
37
|
-
rawSDL: source.rawSDL,
|
|
38
|
-
});
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (isWhitelisted && typeDefsFileMode === 'mergedWhitelisted') {
|
|
43
|
-
appendSDLToFile({
|
|
44
|
-
filesContent,
|
|
45
|
-
filePath: path.posix.join(baseOutputDir, typeDefsFilePath),
|
|
46
|
-
rawSDL: source.rawSDL,
|
|
47
|
-
});
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
if (isWhitelisted && typeDefsFileMode === 'modules') {
|
|
52
|
-
// sourcePath.dir is absolute which does not work well to use as filenames for Windows
|
|
53
|
-
// example of cases where it does not work:
|
|
54
|
-
// - when `prettier` is run in afterAllFileWrite hooks with absolute Windows path
|
|
55
|
-
const relativeSourcePathDir = path.posix.relative(cwd(), sourcePath.dir);
|
|
56
|
-
appendSDLToFile({
|
|
57
|
-
filesContent,
|
|
58
|
-
filePath: path.posix.join(relativeSourcePathDir, typeDefsFilePath),
|
|
59
|
-
rawSDL: source.rawSDL,
|
|
60
|
-
});
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
const result: Record<string, StandardFile> = {};
|
|
66
|
-
Object.entries(filesContent).forEach(([filePath, content]) => {
|
|
67
|
-
result[filePath] = {
|
|
68
|
-
__filetype: 'file',
|
|
69
|
-
// TODO: this is virtual so it will always re-generate
|
|
70
|
-
// In the future, if no schema file changes, then we don't need to re-generate this file
|
|
71
|
-
filesystem: {
|
|
72
|
-
type: 'virtual',
|
|
73
|
-
contentUpdated: false,
|
|
74
|
-
},
|
|
75
|
-
content: generateTypeDefsContent({ mergedSDL: content }),
|
|
76
|
-
mainImportIdentifier: 'typeDefs',
|
|
77
|
-
};
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
return result;
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
const appendSDLToFile = ({
|
|
84
|
-
rawSDL,
|
|
85
|
-
filePath,
|
|
86
|
-
filesContent,
|
|
87
|
-
}: {
|
|
88
|
-
rawSDL: string | undefined;
|
|
89
|
-
filePath: string;
|
|
90
|
-
filesContent: Record<string, string>;
|
|
91
|
-
}): void => {
|
|
92
|
-
if (!rawSDL) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
if (!filesContent[filePath]) {
|
|
97
|
-
filesContent[filePath] = '';
|
|
98
|
-
}
|
|
99
|
-
filesContent[filePath] += `${rawSDL}\n`;
|
|
100
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './generateTypeDefsFiles.js';
|