1

I am using relay-compiler for compile my relay GraphQL queries.

I am also using flow for type checking.

My IDE does not understand flow comment style type checking. so I want to uncomment them.

I need a regex to find these comments and uncomments theme.

Here is one of my fragments:

/**
 * @flow
 */

/* eslint-disable */

'use strict';

/*::
import type { ReaderFragment } from 'relay-runtime';
import type { FragmentReference } from "relay-runtime";
declare export opaque type RegionHeaderRelay_data$ref: FragmentReference;
declare export opaque type RegionHeaderRelay_data$fragmentType: RegionHeaderRelay_data$ref;
export type RegionHeaderRelay_data = {|
  +title: string,
  +cover: $ReadOnlyArray<?{|
    +url: string,
    +photographer: string,
  |}>,
  +categoryVideoCount: number,
  +categoryVideoUrl: string,
  +$refType: RegionHeaderRelay_data$ref,
|};
export type RegionHeaderRelay_data$data = RegionHeaderRelay_data;
export type RegionHeaderRelay_data$key = {
  +$data?: RegionHeaderRelay_data$data,
  +$fragmentRefs: RegionHeaderRelay_data$ref,
};
*/

...

I want to convert the above code to this:

/**
 * @flow
 */

/* eslint-disable */

'use strict';

import type { ReaderFragment } from 'relay-runtime';
import type { FragmentReference } from "relay-runtime";
declare export opaque type RegionHeaderRelay_data$ref: FragmentReference;
declare export opaque type RegionHeaderRelay_data$fragmentType: RegionHeaderRelay_data$ref;
export type RegionHeaderRelay_data = {|
  +title: string,
  +cover: $ReadOnlyArray<?{|
    +url: string,
    +photographer: string,
  |}>,
  +categoryVideoCount: number,
  +categoryVideoUrl: string,
  +$refType: RegionHeaderRelay_data$ref,
|};
export type RegionHeaderRelay_data$data = RegionHeaderRelay_data;
export type RegionHeaderRelay_data$key = {
  +$data?: RegionHeaderRelay_data$data,
  +$fragmentRefs: RegionHeaderRelay_data$ref,
};

...

What regex should I use?

skyboyer
  • 22,209
  • 7
  • 57
  • 64
mohsen saremi
  • 685
  • 8
  • 22

1 Answers1

0

Here is the regex for finding that part of code

const regex = /\/\*\:\:([\s\S]*?)\*\//gm

And use $1 replacement to remove commenting part

code.replace(regex,`$1`);
mohsen saremi
  • 685
  • 8
  • 22