# custom-property-analyzer
**Repository Path**: mirrors_Shopify/custom-property-analyzer
## Basic Information
- **Project Name**: custom-property-analyzer
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-19
- **Last Updated**: 2026-02-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Custom Property Analyzer
Custom Property Analyzer is a tool for gathering statistics and identifying errors in css custom properties.
## Table of Contents
1. [Installation and Usage](#installation-and-usage)
2. [Code of Conduct](#code-of-conduct)
3. [API](#api)
4. [Contributing](#contributing)
5. [Help](#help)
## Installation and Usage
You can install using yarn or npm:
```
$ yarn add -D @shopify/custom-property-analyzer
```
```
$ npm install --save-dev @shopify/custom-property-analyzer
```
You can then run the executable:
```
$ ./node_modules/.bin/@shopify/custom-property-analyzer --pattern 'src/**/*.scss' -skip-errors true
```
## API
### CLI options
| Option | Type | Default | Description |
| ------------------------------ | ----------------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -o, --output | string | | Output location. |
| -e, --output-errors | boolean | true | Include errors in output. |
| -C, --output-custom-properties | boolean | true | Include custom properties in output. |
| -s, --output-stats | boolean | true | Include stats in output. |
| -i, --input | string | | Input directory for known custom properties. Expects an array of string. |
| -c, --custom-property-pattern | string | | Regex to include custom properties. |
| -p, --pattern | string | "\*_/_.css." | Glob pattern to find files |
| -l, --log-level | "verbose" \| "info" \| "error" \| "never" | "verbose" | Determines the errors displayed. `verbose` will display everything. `info` will display everything except errors. `error` will only display errors. And `never` will not display any logs |
| -S, --skip-errors | boolean | false | Determines if error analysis will be executed. |
| -v, --version | | | Output the current version |
| -h, --help | | | output usage information |
### analyzeCustomProperties
```ts
// Default export
type AnalyzeCustomProperties = (
options: Options,
) => Promise<[CustomPropertyMap, CustomPropertyMap, CustomPropertyStats]>;
interface Options {
/**
* List of properties that are expected to be found and used to filter properties that are found
* @default []
*/
knownCustomProperties?: string[];
/**
* Regular expression used to validate properties
* @default undefined
*/
customPropertyPattern?: string;
/**
* Glob pattern used to find files
* css & scss files are supported
* @default '**\/*.css.'
*/
pattern?: string;
/**
* Determines the errors displayed. `verbose` will display everything. `info` will display everything except errors.
* `error` will only display errors. And `never` will not display any logs
* @default 'verbose'
*/
logLevel?: LogLevel;
/**
* Determines if error analysis will be executed.
* @default 'false'
*/
skipErrors?: boolean;
}
interface CustomPropertyStats {
uniqueCustomProperties: number;
totalCustomProperties: number;
fileCount: number;
}
interface InputStreamPosition {
cursor: number;
line: number;
column: number;
}
interface Location {
file: string;
start: InputStreamPosition;
end: InputStreamPosition;
}
interface CustomPropertyMap {
[key: string]: {
declaration: boolean;
usedFromDeclaration: boolean;
count: number;
locations: Location[];
};
}
```
## Code of Conduct
Refer to the [Code of Conduct documentation](CODE_OF_CONDUCT.md).
## Contributing
Refer to the [Contributing documentation](CONTRIBUTING.md).
### Help
React out on slack or open an issue.