-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dependency: packages/data-context/package.json to reduce vulnerabilit…
…ies (#28063) Co-authored-by: snyk-bot <[email protected]> Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
- Loading branch information
1 parent
861474f
commit c8c5b51
Showing
12 changed files
with
551 additions
and
473 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,6 @@ import type { DataContext } from '..' | |
import { SpecOptions, codeGenerator } from '../codegen' | ||
import templates from '../codegen/templates' | ||
import type { CodeGenType } from '../gen/graphcache-config.gen' | ||
import { parse as parseReactComponent, resolver as reactDocgenResolvers } from 'react-docgen' | ||
import { visit } from 'ast-types' | ||
|
||
export interface ReactComponentDescriptor { | ||
|
@@ -16,12 +15,29 @@ export interface ReactComponentDescriptor { | |
export class CodegenActions { | ||
constructor (private ctx: DataContext) {} | ||
|
||
async getReactComponentsFromFile (filePath: string): Promise<{components: ReactComponentDescriptor[], errored?: boolean }> { | ||
async getReactComponentsFromFile (filePath: string, reactDocgen?: typeof import('react-docgen')): Promise<{components: ReactComponentDescriptor[], errored?: boolean }> { | ||
try { | ||
// this dance to get react-docgen is for now because react-docgen is a module and our typescript settings are set up to transpile to commonjs | ||
// which will require the module, which will fail because it's an es module. This is a temporary workaround. | ||
let actualReactDocgen = reactDocgen | ||
|
||
if (!actualReactDocgen) { | ||
actualReactDocgen = await import('react-docgen') | ||
} | ||
|
||
const { parse: parseReactComponent, builtinResolvers: reactDocgenResolvers } = actualReactDocgen | ||
|
||
const src = await this.ctx.fs.readFile(filePath, 'utf8') | ||
|
||
const exportResolver: ExportResolver = new Map() | ||
let result = parseReactComponent(src, findAllWithLink(exportResolver), undefined, { parserOptions: { plugins: ['typescript', 'jsx'] } }) | ||
let result = parseReactComponent(src, { | ||
resolver: findAllWithLink(exportResolver, reactDocgenResolvers), | ||
babelOptions: { | ||
parserOpts: { | ||
plugins: ['typescript', 'jsx'], | ||
}, | ||
}, | ||
}) | ||
|
||
// types appear to be incorrect in [email protected] | ||
// TODO: update when 6.0.0 stable is out for fixed types. | ||
|
@@ -166,9 +182,9 @@ export class CodegenActions { | |
|
||
type ExportResolver = Map<string, ReactComponentDescriptor> | ||
|
||
function findAllWithLink (exportResolver: ExportResolver) { | ||
return (ast: any, parser: any, importer: any) => { | ||
visit(ast, { | ||
function findAllWithLink (exportResolver: ExportResolver, reactDocgenResolvers: typeof import('react-docgen').builtinResolvers) { | ||
return (fileState: any) => { | ||
visit(fileState.ast, { | ||
// export const Foo, export { Foo, Bar }, export function FooBar () { ... } | ||
visitExportNamedDeclaration: (path) => { | ||
const declaration = path.node.declaration as any | ||
|
@@ -228,6 +244,8 @@ function findAllWithLink (exportResolver: ExportResolver) { | |
}, | ||
}) | ||
|
||
return reactDocgenResolvers.findAllExportedComponentDefinitions(ast, parser, importer) | ||
const exportedDefinitionsResolver = new reactDocgenResolvers.FindExportedDefinitionsResolver() | ||
|
||
return exportedDefinitionsResolver.resolve(fileState) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
c8c5b51
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Circle has built the
linux x64
version of the Test Runner.Learn more about this pre-release build at https://on.cypress.io/advanced-installation#Install-pre-release-version
Run this command to install the pre-release locally:
c8c5b51
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Circle has built the
linux arm64
version of the Test Runner.Learn more about this pre-release build at https://on.cypress.io/advanced-installation#Install-pre-release-version
Run this command to install the pre-release locally: