@eddeee888/gcg-typescript-resolver-files
Version:
This [GraphQL Code Generator](https://www.the-guild.dev/graphql/codegen) plugin creates resolvers given GraphQL schema.
38 lines • 1.57 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseSources = parseSources;
const tslib_1 = require("tslib");
const path = tslib_1.__importStar(require("path"));
function parseSources({ sources, baseOutputDir, moduleNamingMode, }) {
return sources.reduce((result, source) => {
if (!source.location) {
throw new Error('Missing source location');
}
const sourcePath = path.parse(source.location);
const relativePathFromBaseToModule = path
.relative(path.resolve(baseOutputDir), path.resolve(sourcePath.dir))
.split(path.sep);
const moduleName = selectModuleName({
moduleNamingMode,
relativePathFromBaseToModule,
});
result.sourceMap[source.location] = {
source,
sourcePath,
moduleName,
relativePathFromBaseToModule,
};
return result;
}, { sourceMap: {} });
}
const selectModuleName = ({ moduleNamingMode, relativePathFromBaseToModule, }) => {
const wrappedModuleNamingMode = moduleNamingMode >= 0
? moduleNamingMode
: relativePathFromBaseToModule.length + moduleNamingMode;
if (wrappedModuleNamingMode < 0 ||
wrappedModuleNamingMode >= relativePathFromBaseToModule.length) {
throw new Error(`"moduleNamingMode" ${moduleNamingMode} exceeds path ${relativePathFromBaseToModule.join('/')}`);
}
return relativePathFromBaseToModule[wrappedModuleNamingMode];
};
//# sourceMappingURL=parseSources.js.map
;