mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* wip: restructure to monorepo Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * refactor create-release-pr to a package Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * build fixes Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * github workflow fixes Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix typo Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * add webpack-env types to core Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix github workflows Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * refactor/fix integration tests Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * lint fix Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * yarn run dev Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * eslint settings for vscode Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * move templates to right package Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * open-lens build fixes Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * integration test fix Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix nx task dependencies Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * use bash shell for unit tests in test workflow Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix test:unit for windows Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix win-ca webpack error in open-lens Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix win-ca webpack error in open-lens Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix build:app on windows Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * remove ELECTRON_BUILDER_EXTRA_ARGS Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * sync src/ from master Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * remove Makefile from core Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
52 lines
1.8 KiB
TypeScript
52 lines
1.8 KiB
TypeScript
/**
|
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
*/
|
|
import { getInjectable } from "@ogre-tools/injectable";
|
|
import getAbsolutePathInjectable from "./get-absolute-path.injectable";
|
|
import getDirnameOfPathInjectable from "./get-dirname.injectable";
|
|
|
|
/**
|
|
* Checks if `testPath` represents a potential filesystem entry that would be
|
|
* logically "within" the `parentPath` directory.
|
|
*
|
|
* This function will return `true` in the above case, and `false` otherwise.
|
|
* It will return `false` if the two paths are the same (after resolving them).
|
|
*
|
|
* The function makes no FS calls and is platform dependant. Meaning that the
|
|
* results are only guaranteed to be correct for the platform you are running
|
|
* on.
|
|
* @param parentPath The known path of a directory
|
|
* @param testPath The path that is to be tested
|
|
*/
|
|
export type IsLogicalChildPath = (parentPath: string, testPath: string) => boolean;
|
|
|
|
const isLogicalChildPathInjectable = getInjectable({
|
|
id: "is-logical-child-path",
|
|
instantiate: (di): IsLogicalChildPath => {
|
|
const getAbsolutePath = di.inject(getAbsolutePathInjectable);
|
|
const getDirnameOfPath = di.inject(getDirnameOfPathInjectable);
|
|
|
|
return (parentPath, testPath) => {
|
|
const resolvedParentPath = getAbsolutePath(parentPath);
|
|
let resolvedTestPath = getAbsolutePath(testPath);
|
|
|
|
if (resolvedParentPath === resolvedTestPath) {
|
|
return false;
|
|
}
|
|
|
|
while (resolvedTestPath.length >= resolvedParentPath.length) {
|
|
if (resolvedTestPath === resolvedParentPath) {
|
|
return true;
|
|
}
|
|
|
|
resolvedTestPath = getDirnameOfPath(resolvedTestPath);
|
|
}
|
|
|
|
return false;
|
|
};
|
|
},
|
|
});
|
|
|
|
export default isLogicalChildPathInjectable;
|