# core/predicates/location.predicate.ts

> 6 lines of code and 3 definitions.

Tree: GovLab Quality
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/quality#file-quality-core-predicates-location-predicate-ts
Source text: https://banes-lab.com/source/quality/core/predicates/location.predicate.ts.txt

Listed in [core/predicates](https://banes-lab.com/api/source/quality/core/predicates.md), after [core/predicates/knob.predicate.ts](https://banes-lab.com/source/quality/core/predicates/knob.predicate.ts.md) and before [core/predicates/stylelint.predicate.ts](https://banes-lab.com/source/quality/core/predicates/stylelint.predicate.ts.md).

## Definitions

- `isInsideRoot` (lexical_declaration, line 5, exported)
- `PARENT_SEGMENT` (lexical_declaration, line 3)
- `inside` (lexical_declaration, line 6, exported)

## Contained in

- [core/predicates](https://banes-lab.com/anatomy/quality/folder-quality-core-predicates.md)

## Used by

- [core/persistence/edit.persistence.ts](https://banes-lab.com/source/quality/core/persistence/edit.persistence.ts.md)

## Linked from

- [core/persistence](https://banes-lab.com/anatomy/quality/folder-quality-core-persistence.md)

## Source

```typescript
import path from "node:path";

const PARENT_SEGMENT = "..";

export const isInsideRoot = function isInsideRoot(root: string, file: string): boolean {
    const inside = path.relative(root, path.resolve(root, file));
    return !path.isAbsolute(inside) && inside.split(path.sep)[0] !== PARENT_SEGMENT;
};
```
