Skip to content

Commit

Permalink
Merge remote-tracking branch 'pkief/main'
Browse files Browse the repository at this point in the history
  • Loading branch information
lucas-labs committed May 28, 2024
2 parents d0f66c2 + d8bdd33 commit ae04b58
Show file tree
Hide file tree
Showing 4 changed files with 134 additions and 15 deletions.
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@

## Contribution Guidelines

[ ] By creating this pull request, I acknowledge that I have read the [Contribution Guidelines](../../CONTRIBUTING.md) for this project.
- [ ] By creating this pull request, I acknowledge that I have read the [Contribution Guidelines](../../CONTRIBUTING.md) for this project.
3 changes: 2 additions & 1 deletion src/icons/fileIcons.ts
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,7 @@ export const fileIcons: FileIcons = {
'pylintrc',
'.pylintrc',
'pyproject.toml',
'py.typed',
],
},
{ name: 'url', fileExtensions: ['url'] },
Expand Down Expand Up @@ -1237,9 +1238,9 @@ export const fileIcons: FileIcons = {
fileNames: [
'.eslintrc-md.js',
'.eslintrc-jsdoc.js',
'.eslintrc.base.json',
'.eslintignore',
'.eslintcache',
'.eslintrc.base.json',
],
patterns: {
eslint: FileNamePattern.Cosmiconfig,
Expand Down
49 changes: 36 additions & 13 deletions src/icons/patterns/patterns.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,20 +54,43 @@ const mapPatterns = (patterns: Patterns): string[] => {
case FileNamePattern.Cosmiconfig:
return [
`.${fileName}rc`,
`.${fileName}rc.json`,
`.${fileName}rc.jsonc`,
`.${fileName}rc.json5`,
`.${fileName}rc.yaml`,
`.${fileName}rc.yml`,
`.${fileName}rc.toml`,
`.${fileName}rc.js`,
`.${fileName}rc.mjs`,
`.${fileName}rc.cjs`,
`.${fileName}rc.ts`,
`.${fileName}rc.mts`,
`.${fileName}rc.cts`,
`.config/${fileName}rc`,
`${fileName}.config`,
`${fileName}.js`,
`${fileName}.mjs`,
`${fileName}.cjs`,
`${fileName}.ts`,
`${fileName}.mts`,
`${fileName}.cts`,
`${fileName}.json`,
`${fileName}.jsonc`,
`${fileName}.json5`,
`${fileName}.yaml`,
`${fileName}.yml`,
`${fileName}.toml`,
`.config/${fileName}rc.json`,
`.config/${fileName}rc.jsonc`,
`.config/${fileName}rc.json5`,
`.config/${fileName}rc.yaml`,
`.config/${fileName}rc.yml`,
`.config/${fileName}rc.toml`,
`.config/${fileName}rc.js`,
`.config/${fileName}rc.mjs`,
`.config/${fileName}rc.cjs`,
`.config/${fileName}rc.ts`,
`.config/${fileName}rc.mts`,
`.config/${fileName}rc.cts`,
`${fileName}.config.json`,
`${fileName}.config.jsonc`,
`${fileName}.config.json5`,
`${fileName}.config.yaml`,
`${fileName}.config.yml`,
`${fileName}.config.toml`,
`${fileName}.config.js`,
`${fileName}.config.mjs`,
`${fileName}.config.cjs`,
`${fileName}.config.ts`,
`${fileName}.config.mts`,
`${fileName}.config.cts`,
];

default:
Expand Down
95 changes: 95 additions & 0 deletions src/test/spec/icons/filename-pattern.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
import { deepStrictEqual } from 'assert';
import { parseByPattern } from '../../../icons/patterns';
import {
FileIcon,
FileIconWithPatterns,
FileNamePattern,
} from '../../../models';

describe('File name patterns', () => {
it('should add a pattern to the file names', () => {
const fileIconsWithPatterns: FileIconWithPatterns = [
{
name: 'file1',
fileNames: ['file1.txt'],
patterns: {
file1: FileNamePattern.Ecmascript,
},
},
];

const expected: FileIcon[] = [
{
name: 'file1',
fileNames: [
'file1.js',
'file1.mjs',
'file1.cjs',
'file1.ts',
'file1.mts',
'file1.cts',
'file1.txt',
],
},
];
const result = parseByPattern(fileIconsWithPatterns);

deepStrictEqual(result, expected);
});

it('should return same file names if there is no pattern configured', () => {
const fileIconsWithPatterns: FileIconWithPatterns = [
{
name: 'file1',
fileNames: ['file1.txt'],
},
];

const expected: FileIcon[] = [
{
name: 'file1',
fileNames: ['file1.txt'],
},
];
const result = parseByPattern(fileIconsWithPatterns);

deepStrictEqual(result, expected);
});

it('should add multiple patterns to the file names', () => {
const fileIconsWithPatterns: FileIconWithPatterns = [
{
name: 'file1',
fileNames: ['file1.txt'],
patterns: {
file1: FileNamePattern.Ecmascript,
file2: FileNamePattern.Configuration,
},
},
];

const expected: FileIcon[] = [
{
name: 'file1',
fileNames: [
'file1.js',
'file1.mjs',
'file1.cjs',
'file1.ts',
'file1.mts',
'file1.cts',
'file2.json',
'file2.jsonc',
'file2.json5',
'file2.yaml',
'file2.yml',
'file2.toml',
'file1.txt',
],
},
];
const result = parseByPattern(fileIconsWithPatterns);

deepStrictEqual(result, expected);
});
});

0 comments on commit ae04b58

Please sign in to comment.