From ab299eac821e8bf09e2ebcba46526d91c53141eb Mon Sep 17 00:00:00 2001 From: Kirill Shumilov Date: Mon, 20 Nov 2017 16:03:01 +0300 Subject: [PATCH] tweak(xod-project): make `listPatchWithoutBuiltIns` more robust (and slower), add `convertToLocalPath` function that converts any PathPath into local PatchPath --- packages/xod-project/src/patchPathUtils.js | 9 +++++++++ packages/xod-project/src/project.js | 11 +++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/packages/xod-project/src/patchPathUtils.js b/packages/xod-project/src/patchPathUtils.js index 22021a11..d984bf5b 100644 --- a/packages/xod-project/src/patchPathUtils.js +++ b/packages/xod-project/src/patchPathUtils.js @@ -72,6 +72,15 @@ export const getLibraryName = R.ifElse( R.always('@') ); +/** + * Converts `xod/core/something` into `@/something`, + * `@/another-one` will be unchanged. + */ +export const convertToLocalPath = R.compose( + getLocalPath, + getBaseName +); + // // Utils for terminal patches // diff --git a/packages/xod-project/src/project.js b/packages/xod-project/src/project.js index c23828e6..37ef2bab 100644 --- a/packages/xod-project/src/project.js +++ b/packages/xod-project/src/project.js @@ -1,6 +1,6 @@ import R from 'ramda'; import { Either, Maybe } from 'ramda-fantasy'; -import { explodeMaybe, notEmpty } from 'xod-func-tools'; +import { explodeMaybe, notEmpty, isAmong } from 'xod-func-tools'; import { BUILT_IN_PATCH_PATHS } from './builtInPatches'; import * as CONST from './constants'; @@ -197,7 +197,14 @@ export const listPatches = def( */ export const listPatchesWithoutBuiltIns = def( 'listPatches :: Project -> [Patch]', - R.compose(R.values, R.prop('patches')) + R.compose( + R.reject(R.compose( + isAmong(BUILT_IN_PATCH_PATHS), + Patch.getPatchPath + )), + R.values, + R.prop('patches') + ) ); /**