Skip to content
This repository was archived by the owner on Sep 25, 2024. It is now read-only.

Commit 50f2fea

Browse files
authored
Merge pull request #4 from ryoppippi/feature/camel-case
feat: add option to enable/disable camelcase converting
2 parents a699a48 + 508acf2 commit 50f2fea

File tree

4 files changed

+21
-8
lines changed

4 files changed

+21
-8
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"dependencies": {
1818
"await-to-js": "^3.0.0",
1919
"camelcase-keys": "^9.1.3",
20+
"defu": "^6.1.4",
2021
"knitwork": "^1.1.0",
2122
"lightningcss": "^1.25.1",
2223
"magic-string": "^0.30.11",

pnpm-lock.yaml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/options.ts

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import type { SetRequired } from 'type-fest';
1+
import type { RequiredDeep, SetOptional } from 'type-fest';
2+
import { defu } from 'defu';
23

34
/**
45
* Options for the cssModules preprocessor
@@ -15,13 +16,21 @@ export type Options = {
1516
* @default true
1617
*/
1718
includeOriginalPath?: boolean;
19+
20+
/*
21+
* Whether to convert the module name to camel case
22+
* @default true
23+
*/
24+
convertToCamelCase?: boolean;
1825
};
1926

20-
export type ResolvedOptions = SetRequired<Options, 'includeOriginalPath'>;
27+
export type ResolvedOptions = SetOptional<RequiredDeep<Options>, 'moduleNameingPattern'>;
28+
29+
const defaultOptions = {
30+
includeOriginalPath: true,
31+
convertToCamelCase: true,
32+
} as const satisfies ResolvedOptions;
2133

22-
export function resolveOptions(options: Options): ResolvedOptions {
23-
return {
24-
moduleNameingPattern: options.moduleNameingPattern,
25-
includeOriginalPath: options.includeOriginalPath ?? true,
26-
};
34+
export function resolveOptions(options: Options): Readonly<ResolvedOptions> {
35+
return defu(options, defaultOptions);
2736
}

src/utils/css-module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ export async function getCssModule({ path, ...rest }: ResolvedModuleImport, opti
9191
for (const [key, value] of Object.entries(_exports)) {
9292
__exports[key] = value.name;
9393
}
94-
const exports = camelcaseKeys(__exports);
94+
const exports = options.convertToCamelCase ? camelcaseKeys(__exports) : __exports;
9595

9696
return { css, exports, path, ...rest };
9797
}

0 commit comments

Comments
 (0)