merge-graphql-schemas
Advanced tools
Comparing version 1.6.0 to 1.6.1
@@ -1,2 +0,2 @@ | ||
declare const fileLoader: (folderPath: string | string[], { recursive, extensions, globOptions, ignoreIndex, }?: { | ||
declare const fileLoader: (path: string, { recursive, extensions, globOptions, ignoreIndex, }?: { | ||
recursive?: boolean; | ||
@@ -6,3 +6,3 @@ extensions?: string[]; | ||
ignoreIndex?: boolean; | ||
}) => any[]; | ||
}) => string[]; | ||
export default fileLoader; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const fs_1 = require("fs"); | ||
const path_1 = require("path"); | ||
const is_glob_1 = require("is-glob"); | ||
const globs_1 = require("globs"); | ||
const recursiveReadDirSync = (dir) => fs_1.default | ||
.readdirSync(dir) | ||
.reduce((files, file) => (fs_1.default.statSync(path_1.default.join(dir, file)).isDirectory() | ||
? files.concat(recursiveReadDirSync(path_1.default.join(dir, file))) | ||
: files.concat(path_1.default.join(dir, file))), []); | ||
const readDirSync = (dir) => fs_1.default | ||
.readdirSync(dir) | ||
.reduce((files, file) => (fs_1.default.statSync(path_1.default.join(dir, file)).isDirectory() | ||
? files | ||
: files.concat(path_1.default.join(dir, file))), []); | ||
const readGlobSync = (pattern, options) => globs_1.default.sync(pattern, options); | ||
const getSchemaFiles = (dir, recursive, globOptions) => { | ||
if (is_glob_1.default(dir)) { | ||
return readGlobSync(dir, globOptions); | ||
} | ||
if (recursive === true) { | ||
return recursiveReadDirSync(dir); | ||
} | ||
return readDirSync(dir); | ||
const graphql_toolkit_1 = require("graphql-toolkit"); | ||
const DEFAULT_EXTENSIONS = ['ts', 'js', 'gql', 'graphql', 'graphqls']; | ||
const fileLoader = (path, { recursive = false, extensions = DEFAULT_EXTENSIONS, globOptions = {}, ignoreIndex = true, } = {}) => { | ||
return graphql_toolkit_1.loadSchemaFiles(path, { | ||
globOptions, | ||
extensions: extensions.map(e => e.startsWith('.') ? e.substr(1, e.length - 1) : e).filter(e => DEFAULT_EXTENSIONS.includes(e)), | ||
recursive, | ||
ignoreIndex, | ||
}); | ||
}; | ||
const DEFAULT_EXTENSIONS = ['.ts', '.js', '.gql', '.graphql', '.graphqls']; | ||
const fileLoader = (folderPath, { recursive = false, extensions = DEFAULT_EXTENSIONS, globOptions = {}, ignoreIndex = true, } = {}) => { | ||
const dir = folderPath; | ||
const schemafiles = getSchemaFiles(dir, recursive, globOptions); | ||
const files = schemafiles | ||
.map(f => ({ f, pathObj: path_1.default.parse(f) })) | ||
.filter(({ pathObj }) => (ignoreIndex ? pathObj.name.toLowerCase() !== 'index' : true)) | ||
.filter(({ pathObj }) => extensions.includes(pathObj.ext)) | ||
.map(({ f, pathObj }) => { | ||
let returnVal; | ||
switch (pathObj.ext) { | ||
case '.ts': | ||
case '.js': { | ||
const file = eval(`require('${f}')`); // eslint-disable-line | ||
returnVal = file.default || file; | ||
break; | ||
} | ||
case '.graphqls': | ||
case '.gql': | ||
case '.graphql': { | ||
const file = fs_1.default.readFileSync(f, 'utf8'); | ||
returnVal = file; | ||
break; | ||
} | ||
default: | ||
// we don't know how to handle other extensions | ||
} | ||
return returnVal; | ||
}) | ||
.filter(v => !!v); // filter files that we don't know how to handle | ||
return files; | ||
}; | ||
exports.default = fileLoader; | ||
//# sourceMappingURL=file_loader.js.map |
@@ -1,2 +0,2 @@ | ||
declare const fileLoader: (folderPath: string | string[], { recursive, extensions, globOptions, ignoreIndex, }?: { | ||
declare const fileLoader: (path: string, { recursive, extensions, globOptions, ignoreIndex, }?: { | ||
recursive?: boolean; | ||
@@ -6,3 +6,3 @@ extensions?: string[]; | ||
ignoreIndex?: boolean; | ||
}) => any[]; | ||
}) => string[]; | ||
export default fileLoader; |
@@ -1,58 +0,12 @@ | ||
import fs from 'fs'; | ||
import path from 'path'; | ||
import isGlob from 'is-glob'; | ||
import Glob from 'globs'; | ||
const recursiveReadDirSync = (dir) => fs | ||
.readdirSync(dir) | ||
.reduce((files, file) => (fs.statSync(path.join(dir, file)).isDirectory() | ||
? files.concat(recursiveReadDirSync(path.join(dir, file))) | ||
: files.concat(path.join(dir, file))), []); | ||
const readDirSync = (dir) => fs | ||
.readdirSync(dir) | ||
.reduce((files, file) => (fs.statSync(path.join(dir, file)).isDirectory() | ||
? files | ||
: files.concat(path.join(dir, file))), []); | ||
const readGlobSync = (pattern, options) => Glob.sync(pattern, options); | ||
const getSchemaFiles = (dir, recursive, globOptions) => { | ||
if (isGlob(dir)) { | ||
return readGlobSync(dir, globOptions); | ||
} | ||
if (recursive === true) { | ||
return recursiveReadDirSync(dir); | ||
} | ||
return readDirSync(dir); | ||
import { loadSchemaFiles } from 'graphql-toolkit'; | ||
const DEFAULT_EXTENSIONS = ['ts', 'js', 'gql', 'graphql', 'graphqls']; | ||
const fileLoader = (path, { recursive = false, extensions = DEFAULT_EXTENSIONS, globOptions = {}, ignoreIndex = true, } = {}) => { | ||
return loadSchemaFiles(path, { | ||
globOptions, | ||
extensions: extensions.map(e => e.startsWith('.') ? e.substr(1, e.length - 1) : e).filter(e => DEFAULT_EXTENSIONS.includes(e)), | ||
recursive, | ||
ignoreIndex, | ||
}); | ||
}; | ||
const DEFAULT_EXTENSIONS = ['.ts', '.js', '.gql', '.graphql', '.graphqls']; | ||
const fileLoader = (folderPath, { recursive = false, extensions = DEFAULT_EXTENSIONS, globOptions = {}, ignoreIndex = true, } = {}) => { | ||
const dir = folderPath; | ||
const schemafiles = getSchemaFiles(dir, recursive, globOptions); | ||
const files = schemafiles | ||
.map(f => ({ f, pathObj: path.parse(f) })) | ||
.filter(({ pathObj }) => (ignoreIndex ? pathObj.name.toLowerCase() !== 'index' : true)) | ||
.filter(({ pathObj }) => extensions.includes(pathObj.ext)) | ||
.map(({ f, pathObj }) => { | ||
let returnVal; | ||
switch (pathObj.ext) { | ||
case '.ts': | ||
case '.js': { | ||
const file = eval(`require('${f}')`); // eslint-disable-line | ||
returnVal = file.default || file; | ||
break; | ||
} | ||
case '.graphqls': | ||
case '.gql': | ||
case '.graphql': { | ||
const file = fs.readFileSync(f, 'utf8'); | ||
returnVal = file; | ||
break; | ||
} | ||
default: | ||
// we don't know how to handle other extensions | ||
} | ||
return returnVal; | ||
}) | ||
.filter(v => !!v); // filter files that we don't know how to handle | ||
return files; | ||
}; | ||
export default fileLoader; | ||
//# sourceMappingURL=file_loader.js.map |
{ | ||
"name": "merge-graphql-schemas", | ||
"author": "OK GROW!", | ||
"version": "1.6.0", | ||
"version": "1.6.1", | ||
"description": "A utility library to facilitate merging of modularized GraphQL schemas and resolver objects.", | ||
@@ -21,2 +21,3 @@ "repository": { | ||
"test": "jest --forceExit && yarn bundlesize", | ||
"ci:release:canary": "node bump.js && npm publish --tag alpha", | ||
"bundlesize": "yarn build && cd bundle-test/ && yarn && yarn test" | ||
@@ -35,6 +36,4 @@ }, | ||
"dependencies": { | ||
"deepmerge": "2.2.1", | ||
"globs": "0.1.4", | ||
"graphql-toolkit": "0.3.5", | ||
"is-glob": "4.0.0" | ||
"graphql-toolkit": "0.4.1", | ||
"tslib": "1.10.0" | ||
}, | ||
@@ -45,6 +44,3 @@ "peerDependencies": { | ||
"devDependencies": { | ||
"@types/deepmerge": "2.2.0", | ||
"@types/graphql": "14.2.2", | ||
"@types/is-glob": "4.0.1", | ||
"@types/glob": "7.1.1", | ||
"@types/jest": "24.0.15", | ||
@@ -51,0 +47,0 @@ "graphql": "14.4.2", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
3
6
0
0
34214
112
+ Addedtslib@1.10.0
+ Addedgraphql-toolkit@0.4.1(transitive)
+ Addedlodash@4.17.15(transitive)
+ Addedtslib@1.10.0(transitive)
- Removeddeepmerge@2.2.1
- Removedglobs@0.1.4
- Removedis-glob@4.0.0
- Removeddeepmerge@2.2.1(transitive)
- Removedglob@7.2.3(transitive)
- Removedglobs@0.1.4(transitive)
- Removedgraphql-toolkit@0.3.5(transitive)
- Removedis-glob@4.0.0(transitive)
- Removedlodash@4.17.14(transitive)
- Removedtslib@1.14.1(transitive)
Updatedgraphql-toolkit@0.4.1