Skip to content

Commit d52890e

Browse files
committed
fixing the schema type error
1 parent c7a9499 commit d52890e

File tree

6 files changed

+41
-28
lines changed

6 files changed

+41
-28
lines changed

src/browser/components/ManualLink.tsx

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ import semver from 'semver'
2424
import { DrawerExternalLink } from './drawer/drawer-styled'
2525
import { formatDocVersion } from 'browser/modules/Sidebar/docsUtils'
2626
import { GlobalState } from 'project-root/src/shared/globalState'
27-
import { getRawVersion } from 'shared/modules/dbMeta/dbMetaDuck'
27+
import {
28+
getCleanedVersion,
29+
getRawVersion
30+
} from 'shared/modules/dbMeta/dbMetaDuck'
2831

2932
const oldPages: { [key: string]: { oldPage: string; oldContent: string } } = {
3033
'/administration/indexes-for-search-performance/': {
@@ -63,12 +66,8 @@ const isPageOld = (
6366
) => {
6467
if (chapter !== 'cypher-manual' || !oldPages[page] || !neo4jVersion)
6568
return false
66-
const cleanedVersion = semver.clean(neo4jVersion, true)
67-
return (
68-
cleanedVersion &&
69-
semver.valid(cleanedVersion) &&
70-
semver.satisfies(cleanedVersion, '<4.0.0-alpha.1')
71-
)
69+
const cleanedVersion = getCleanedVersion(neo4jVersion)
70+
return cleanedVersion && semver.satisfies(cleanedVersion, '<4.0.0-alpha.1')
7271
}
7372

7473
const isPageNew = (
@@ -77,11 +76,9 @@ const isPageNew = (
7776
neo4jVersion: string | null
7877
) => {
7978
if (chapter !== 'cypher-manual' || !newPages[page]) return false
80-
const cleanedVersion = semver.clean(neo4jVersion || '', true)
79+
const cleanedVersion = getCleanedVersion(neo4jVersion)
8180
return (
82-
(cleanedVersion &&
83-
semver.valid(cleanedVersion) &&
84-
semver.satisfies(cleanedVersion, '>=4.3')) ||
81+
(cleanedVersion && semver.satisfies(cleanedVersion, '>=4.3')) ||
8582
neo4jVersion === null
8683
)
8784
}

src/browser/components/VersionConditionalDoc.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ import { connect } from 'react-redux'
2222
import semver from 'semver'
2323

2424
import { GlobalState } from 'project-root/src/shared/globalState'
25-
import { getRawVersion } from 'shared/modules/dbMeta/dbMetaDuck'
25+
import {
26+
getCleanedVersion,
27+
getRawVersion
28+
} from 'shared/modules/dbMeta/dbMetaDuck'
2629

2730
export type VersionConditionalDocProps = {
2831
versionCondition: string
@@ -36,12 +39,10 @@ export function VersionConditionalDoc({
3639
neo4jVersion,
3740
includeCurrent = false
3841
}: VersionConditionalDocProps): JSX.Element {
39-
const cleanedVersion = semver.clean(neo4jVersion || '', true)
42+
const cleanedVersion = getCleanedVersion(neo4jVersion)
4043
if (
4144
(includeCurrent && neo4jVersion === null) ||
42-
(cleanedVersion &&
43-
semver.valid(cleanedVersion) &&
44-
semver.satisfies(cleanedVersion, versionCondition))
45+
(cleanedVersion && semver.satisfies(cleanedVersion, versionCondition))
4546
) {
4647
return <>{children}</>
4748
} else {

src/browser/modules/Stream/SchemaFrame.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,10 @@ import Directives from 'browser-components/Directives'
3636
import { GlobalState } from 'project-root/src/shared/globalState'
3737
import { NEO4J_BROWSER_USER_ACTION_QUERY } from 'services/bolt/txMetadata'
3838
import { CYPHER_REQUEST } from 'shared/modules/cypher/cypherDuck'
39-
import { getSemanticVersion } from 'shared/modules/dbMeta/dbMetaDuck'
39+
import {
40+
getCleanedVersion,
41+
getSemanticVersion
42+
} from 'shared/modules/dbMeta/dbMetaDuck'
4043

4144
type IndexesProps = {
4245
indexes: any
@@ -246,11 +249,10 @@ export class SchemaFrame extends Component<any, SchemaFrameState> {
246249
render(): JSX.Element {
247250
const { neo4jVersion } = this.props
248251
const { indexes, constraints } = this.state
249-
const cleanedVersion = semver.clean(neo4jVersion || '', true)
252+
const cleanedVersion =
253+
typeof neo4jVersion === 'string' ? getCleanedVersion(neo4jVersion) : null
250254
const schemaCommand =
251-
cleanedVersion &&
252-
semver.valid(cleanedVersion) &&
253-
semver.satisfies(cleanedVersion, '<=3.4.*')
255+
cleanedVersion && semver.satisfies(cleanedVersion, '<=3.4.*')
254256
? 'CALL db.schema()'
255257
: 'CALL db.schema.visualization'
256258

src/shared/modules/dbMeta/dbMetaDuck.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
*/
2020
import { uniq } from 'lodash-es'
2121
import { QueryResult } from 'neo4j-driver'
22-
import { SemVer, clean, coerce, gte } from 'semver'
22+
import { SemVer, clean, coerce, gte, valid } from 'semver'
2323
import { isConfigValFalsy } from 'services/bolt/boltHelpers'
2424
import { GlobalState } from 'shared/globalState'
2525
import { APP_START } from 'shared/modules/app/appDuck'
@@ -270,9 +270,18 @@ export function getUniqueDatbases(state: GlobalState): Database[] {
270270

271271
export const getRawVersion = (state: GlobalState): string | null =>
272272
(state[NAME] || {}).server ? (state[NAME] || {}).server.version : null
273+
273274
export const getSemanticVersion = (state: GlobalState): SemVer | null =>
274275
coerce(clean(getRawVersion(state) || '', true))
275276

277+
export const getCleanedVersion = (version: string | null): string | null => {
278+
const cleanedVersion = clean(version || '', true)
279+
if (valid(cleanedVersion)) {
280+
return cleanedVersion
281+
}
282+
return null
283+
}
284+
276285
export const supportsMultiDb = (state: GlobalState): boolean => {
277286
const version = getSemanticVersion(state)
278287
return version ? gte(version, FIRST_MULTI_DB_SUPPORT) : false

src/shared/modules/dbMeta/utils.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@ import { Integer, QueryResult } from 'neo4j-driver'
2121
import semver from 'semver'
2222

2323
import { guessSemverVersion } from '../features/featureDuck.utils'
24-
import { TrialStatus, VERSION_FOR_EDITOR_HISTORY_SETTING } from './dbMetaDuck'
24+
import {
25+
getCleanedVersion,
26+
TrialStatus,
27+
VERSION_FOR_EDITOR_HISTORY_SETTING
28+
} from './dbMetaDuck'
2529

2630
type ServerInfo = {
2731
version: string | null
@@ -52,7 +56,7 @@ export function extractServerInfo(res: QueryResult): ServerInfo {
5256
}
5357

5458
// Some aura servers self report versions that need coercing (eg. 3.5 or 4.3-aura)
55-
if (!semver.valid(semver.clean(serverInfo.version || '', true))) {
59+
if (!getCleanedVersion(serverInfo.version)) {
5660
serverInfo.version = guessSemverVersion(serverInfo.version)
5761
}
5862

@@ -113,10 +117,9 @@ export const extractTrialStatusOld = (res: QueryResult): TrialStatus => {
113117

114118
export const versionHasEditorHistorySetting = (version: string | null) => {
115119
if (!version) return false
116-
const cleanedVersion = semver.clean(version, true)
120+
const cleanedVersion = getCleanedVersion(version)
117121
return (
118122
cleanedVersion &&
119-
semver.valid(cleanedVersion) &&
120123
semver.gte(cleanedVersion, VERSION_FOR_EDITOR_HISTORY_SETTING)
121124
)
122125
}

src/shared/modules/features/featureDuck.utils.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,15 @@
1818
* along with this program. If not, see <http://www.gnu.org/licenses/>.
1919
*/
2020
import semver from 'semver'
21+
import { getCleanedVersion } from '../dbMeta/dbMetaDuck'
2122

2223
export const guessSemverVersion = (versionString: string | null) => {
2324
if (!versionString) {
2425
return null
2526
}
2627
const cleanedVersion =
27-
typeof versionString === 'string' ? semver.clean(versionString, true) : null
28-
if (semver.valid(cleanedVersion)) {
28+
typeof versionString === 'string' ? getCleanedVersion(versionString) : null
29+
if (cleanedVersion) {
2930
return cleanedVersion
3031
}
3132

0 commit comments

Comments
 (0)