happy-css-modules 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/package.json +1 -1
  2. package/src/emitter/dts.test.ts +3 -3
  3. package/src/emitter/dts.ts +59 -37
  4. package/src/emitter/index.test.ts +3 -3
  5. package/src/integration-test/go-to-definition.test.ts +0 -35
  6. package/src/locator/index.test.ts +152 -158
  7. package/src/locator/index.ts +44 -37
  8. package/src/locator/postcss.test.ts +118 -76
  9. package/src/locator/postcss.ts +116 -73
  10. package/src/test-util/util.ts +24 -23
  11. package/src/transformer/less-transformer.test.ts +26 -24
  12. package/src/transformer/postcss-transformer.test.ts +5 -3
  13. package/src/transformer/scss-transformer.test.ts +39 -28
  14. package/src/util.ts +1 -1
  15. package/dist/cli.d.ts +0 -6
  16. package/dist/cli.js +0 -121
  17. package/dist/cli.js.map +0 -1
  18. package/dist/cli.test.d.ts +0 -1
  19. package/dist/cli.test.js +0 -66
  20. package/dist/cli.test.js.map +0 -1
  21. package/dist/config.d.ts +0 -1
  22. package/dist/config.js +0 -2
  23. package/dist/config.js.map +0 -1
  24. package/dist/emitter/dts.d.ts +0 -14
  25. package/dist/emitter/dts.js +0 -111
  26. package/dist/emitter/dts.js.map +0 -1
  27. package/dist/emitter/dts.test.d.ts +0 -1
  28. package/dist/emitter/dts.test.js +0 -205
  29. package/dist/emitter/dts.test.js.map +0 -1
  30. package/dist/emitter/file-system.d.ts +0 -6
  31. package/dist/emitter/file-system.js +0 -26
  32. package/dist/emitter/file-system.js.map +0 -1
  33. package/dist/emitter/file-system.test.d.ts +0 -1
  34. package/dist/emitter/file-system.test.js +0 -34
  35. package/dist/emitter/file-system.test.js.map +0 -1
  36. package/dist/emitter/index.d.ts +0 -34
  37. package/dist/emitter/index.js +0 -49
  38. package/dist/emitter/index.js.map +0 -1
  39. package/dist/emitter/index.test.d.ts +0 -1
  40. package/dist/emitter/index.test.js +0 -68
  41. package/dist/emitter/index.test.js.map +0 -1
  42. package/dist/emitter/source-map.d.ts +0 -8
  43. package/dist/emitter/source-map.js +0 -16
  44. package/dist/emitter/source-map.js.map +0 -1
  45. package/dist/emitter/source-map.test.d.ts +0 -1
  46. package/dist/emitter/source-map.test.js +0 -13
  47. package/dist/emitter/source-map.test.js.map +0 -1
  48. package/dist/index.d.ts +0 -5
  49. package/dist/index.js +0 -6
  50. package/dist/index.js.map +0 -1
  51. package/dist/integration-test/go-to-definition.test.d.ts +0 -1
  52. package/dist/integration-test/go-to-definition.test.js +0 -369
  53. package/dist/integration-test/go-to-definition.test.js.map +0 -1
  54. package/dist/library/source-map/index.d.ts +0 -8
  55. package/dist/library/source-map/index.js +0 -5
  56. package/dist/library/source-map/index.js.map +0 -1
  57. package/dist/locator/index.d.ts +0 -44
  58. package/dist/locator/index.js +0 -162
  59. package/dist/locator/index.js.map +0 -1
  60. package/dist/locator/index.test.d.ts +0 -1
  61. package/dist/locator/index.test.js +0 -395
  62. package/dist/locator/index.test.js.map +0 -1
  63. package/dist/locator/postcss.d.ts +0 -64
  64. package/dist/locator/postcss.js +0 -208
  65. package/dist/locator/postcss.js.map +0 -1
  66. package/dist/locator/postcss.test.d.ts +0 -1
  67. package/dist/locator/postcss.test.js +0 -242
  68. package/dist/locator/postcss.test.js.map +0 -1
  69. package/dist/logger.d.ts +0 -9
  70. package/dist/logger.js +0 -28
  71. package/dist/logger.js.map +0 -1
  72. package/dist/regression-test/issue-168.test.d.ts +0 -1
  73. package/dist/regression-test/issue-168.test.js +0 -30
  74. package/dist/regression-test/issue-168.test.js.map +0 -1
  75. package/dist/resolver/index.d.ts +0 -22
  76. package/dist/resolver/index.js +0 -44
  77. package/dist/resolver/index.js.map +0 -1
  78. package/dist/resolver/index.test.d.ts +0 -1
  79. package/dist/resolver/index.test.js +0 -16
  80. package/dist/resolver/index.test.js.map +0 -1
  81. package/dist/resolver/node-resolver.d.ts +0 -2
  82. package/dist/resolver/node-resolver.js +0 -6
  83. package/dist/resolver/node-resolver.js.map +0 -1
  84. package/dist/resolver/node-resolver.test.d.ts +0 -1
  85. package/dist/resolver/node-resolver.test.js +0 -25
  86. package/dist/resolver/node-resolver.test.js.map +0 -1
  87. package/dist/resolver/relative-resolver.d.ts +0 -2
  88. package/dist/resolver/relative-resolver.js +0 -5
  89. package/dist/resolver/relative-resolver.js.map +0 -1
  90. package/dist/resolver/relative-resolver.test.d.ts +0 -1
  91. package/dist/resolver/relative-resolver.test.js +0 -12
  92. package/dist/resolver/relative-resolver.test.js.map +0 -1
  93. package/dist/resolver/webpack-resolver.d.ts +0 -24
  94. package/dist/resolver/webpack-resolver.js +0 -91
  95. package/dist/resolver/webpack-resolver.js.map +0 -1
  96. package/dist/resolver/webpack-resolver.test.d.ts +0 -1
  97. package/dist/resolver/webpack-resolver.test.js +0 -89
  98. package/dist/resolver/webpack-resolver.test.js.map +0 -1
  99. package/dist/runner.d.ts +0 -76
  100. package/dist/runner.js +0 -120
  101. package/dist/runner.js.map +0 -1
  102. package/dist/runner.test.d.ts +0 -1
  103. package/dist/runner.test.js +0 -287
  104. package/dist/runner.test.js.map +0 -1
  105. package/dist/test-util/jest/resolver.cjs +0 -31
  106. package/dist/test-util/jest/resolver.cjs.map +0 -1
  107. package/dist/test-util/jest/resolver.d.cts +0 -16
  108. package/dist/test-util/tsserver.d.ts +0 -31
  109. package/dist/test-util/tsserver.js +0 -112
  110. package/dist/test-util/tsserver.js.map +0 -1
  111. package/dist/test-util/util.d.ts +0 -29
  112. package/dist/test-util/util.js +0 -84
  113. package/dist/test-util/util.js.map +0 -1
  114. package/dist/transformer/index.d.ts +0 -30
  115. package/dist/transformer/index.js +0 -25
  116. package/dist/transformer/index.js.map +0 -1
  117. package/dist/transformer/index.test.d.ts +0 -1
  118. package/dist/transformer/index.test.js +0 -66
  119. package/dist/transformer/index.test.js.map +0 -1
  120. package/dist/transformer/less-transformer.d.ts +0 -2
  121. package/dist/transformer/less-transformer.js +0 -45
  122. package/dist/transformer/less-transformer.js.map +0 -1
  123. package/dist/transformer/less-transformer.test.d.ts +0 -1
  124. package/dist/transformer/less-transformer.test.js +0 -132
  125. package/dist/transformer/less-transformer.test.js.map +0 -1
  126. package/dist/transformer/postcss-transformer.d.ts +0 -12
  127. package/dist/transformer/postcss-transformer.js +0 -32
  128. package/dist/transformer/postcss-transformer.js.map +0 -1
  129. package/dist/transformer/postcss-transformer.test.d.ts +0 -1
  130. package/dist/transformer/postcss-transformer.test.js +0 -176
  131. package/dist/transformer/postcss-transformer.test.js.map +0 -1
  132. package/dist/transformer/scss-transformer.d.ts +0 -2
  133. package/dist/transformer/scss-transformer.js +0 -40
  134. package/dist/transformer/scss-transformer.js.map +0 -1
  135. package/dist/transformer/scss-transformer.test.d.ts +0 -1
  136. package/dist/transformer/scss-transformer.test.js +0 -138
  137. package/dist/transformer/scss-transformer.test.js.map +0 -1
  138. package/dist/util.d.ts +0 -21
  139. package/dist/util.js +0 -72
  140. package/dist/util.js.map +0 -1
  141. package/dist/util.test.d.ts +0 -1
  142. package/dist/util.test.js +0 -74
  143. package/dist/util.test.js.map +0 -1
@@ -2,7 +2,7 @@ import { constants, mkdirSync, realpathSync, rmSync, writeFileSync } from 'fs';
2
2
  import { access } from 'fs/promises';
3
3
  import { tmpdir } from 'os';
4
4
  import { dirname, join, resolve } from 'path';
5
- import postcss, { type Root, type Rule, type AtRule, type Declaration } from 'postcss';
5
+ import postcss, { type Root, type Rule, type AtRule } from 'postcss';
6
6
  import { type ClassName } from 'postcss-selector-parser';
7
7
  import { type Token, collectNodes, type Location } from '../locator/index.js';
8
8
  import { sleepSync } from '../util.js';
@@ -21,35 +21,36 @@ export function createAtImports(root: Root): AtRule[] {
21
21
  return collectNodes(root).atImports;
22
22
  }
23
23
 
24
- export function createClassSelectors(root: Root): { rule: Rule; classSelector: ClassName }[] {
25
- return collectNodes(root).classSelectors;
24
+ export function createAtValues(root: Root): AtRule[] {
25
+ return collectNodes(root).atValues;
26
26
  }
27
27
 
28
- export function createComposesDeclarations(root: Root): Declaration[] {
29
- return collectNodes(root).composesDeclarations;
28
+ export function createClassSelectors(root: Root): { rule: Rule; classSelector: ClassName }[] {
29
+ return collectNodes(root).classSelectors;
30
30
  }
31
31
 
32
32
  export function fakeToken(args: {
33
33
  name: Token['name'];
34
- originalLocations: { filePath?: Location['filePath']; start?: Location['start'] }[];
34
+ originalLocation: { filePath?: Location['filePath']; start?: Location['start'] };
35
35
  }): Token {
36
- return {
37
- name: args.name,
38
- originalLocations: args.originalLocations.map((location) => {
39
- if (location.filePath === undefined || location.start === undefined) {
40
- return { filePath: undefined, start: undefined, end: undefined };
41
- } else {
42
- return {
43
- filePath: location.filePath ?? getFixturePath('/test/1.css'),
44
- start: location.start,
45
- end: {
46
- line: location.start.line,
47
- column: location.start.column + args.name.length - 1,
48
- },
49
- };
50
- }
51
- }),
52
- };
36
+ if (args.originalLocation.filePath === undefined || args.originalLocation.start === undefined) {
37
+ return {
38
+ name: args.name,
39
+ originalLocation: { filePath: undefined, start: undefined, end: undefined },
40
+ };
41
+ } else {
42
+ return {
43
+ name: args.name,
44
+ originalLocation: {
45
+ filePath: args.originalLocation.filePath ?? getFixturePath('/test/1.css'),
46
+ start: args.originalLocation.start,
47
+ end: {
48
+ line: args.originalLocation.start.line,
49
+ column: args.originalLocation.start.column + args.name.length - 1,
50
+ },
51
+ },
52
+ };
53
+ }
53
54
  }
54
55
 
55
56
  export async function waitForAsyncTask(ms?: number): Promise<void> {
@@ -23,8 +23,6 @@ test('handles less features', async () => {
23
23
  &_2 { dummy: ''; }
24
24
  .b_1();
25
25
  .b_2();
26
- composes: a_1; // css module feature test (composes)
27
- composes: c from './3.less'; // css module feature test (composes from other file)
28
26
  }
29
27
  `,
30
28
  '/test/2.less': dedent`
@@ -40,43 +38,47 @@ test('handles less features', async () => {
40
38
  // FIXME: The end position of 'a_2_2' is incorrect.
41
39
  expect(result).toMatchInlineSnapshot(`
42
40
  {
43
- dependencies: ["<fixtures>/test/2.less", "<fixtures>/test/3.less"],
41
+ dependencies: ["<fixtures>/test/2.less"],
44
42
  tokens: [
45
43
  {
46
44
  name: "b_1",
47
- originalLocations: [
48
- { filePath: "<fixtures>/test/2.less", start: { line: 1, column: 1 }, end: { line: 1, column: 4 } },
49
- ],
45
+ originalLocation: {
46
+ filePath: "<fixtures>/test/2.less",
47
+ start: { line: 1, column: 1 },
48
+ end: { line: 1, column: 4 },
49
+ },
50
50
  },
51
51
  {
52
52
  name: "a_1",
53
- originalLocations: [
54
- { filePath: "<fixtures>/test/1.less", start: { line: 2, column: 1 }, end: { line: 2, column: 4 } },
55
- ],
53
+ originalLocation: {
54
+ filePath: "<fixtures>/test/1.less",
55
+ start: { line: 2, column: 1 },
56
+ end: { line: 2, column: 4 },
57
+ },
56
58
  },
57
59
  {
58
60
  name: "a_2",
59
- originalLocations: [
60
- { filePath: "<fixtures>/test/1.less", start: { line: 3, column: 1 }, end: { line: 3, column: 4 } },
61
- ],
61
+ originalLocation: {
62
+ filePath: "<fixtures>/test/1.less",
63
+ start: { line: 3, column: 1 },
64
+ end: { line: 3, column: 4 },
65
+ },
62
66
  },
63
67
  {
64
68
  name: "a_2_1",
65
- originalLocations: [
66
- { filePath: "<fixtures>/test/1.less", start: { line: 6, column: 3 }, end: { line: 6, column: 8 } },
67
- ],
69
+ originalLocation: {
70
+ filePath: "<fixtures>/test/1.less",
71
+ start: { line: 6, column: 3 },
72
+ end: { line: 6, column: 8 },
73
+ },
68
74
  },
69
75
  {
70
76
  name: "a_2_2",
71
- originalLocations: [
72
- { filePath: "<fixtures>/test/1.less", start: { line: 7, column: 3 }, end: { line: 7, column: 8 } },
73
- ],
74
- },
75
- {
76
- name: "c",
77
- originalLocations: [
78
- { filePath: "<fixtures>/test/3.less", start: { line: 1, column: 1 }, end: { line: 1, column: 2 } },
79
- ],
77
+ originalLocation: {
78
+ filePath: "<fixtures>/test/1.less",
79
+ start: { line: 7, column: 3 },
80
+ end: { line: 7, column: 8 },
81
+ },
80
82
  },
81
83
  ],
82
84
  }
@@ -41,9 +41,11 @@ test('handles postcss features', async () => {
41
41
  tokens: [
42
42
  {
43
43
  name: "foo_bar",
44
- originalLocations: [
45
- { filePath: "<fixtures>/test/1.css", start: { line: 2, column: 1 }, end: { line: 2, column: 8 } },
46
- ],
44
+ originalLocation: {
45
+ filePath: "<fixtures>/test/1.css",
46
+ start: { line: 2, column: 1 },
47
+ end: { line: 2, column: 8 },
48
+ },
47
49
  },
48
50
  ],
49
51
  }
@@ -22,8 +22,6 @@ test('handles sass features', async () => {
22
22
  // sass feature test (nesting)
23
23
  .a_2_1 { dummy: ''; }
24
24
  &_2 { dummy: ''; }
25
- composes: a_1; // css module feature test (composes)
26
- composes: d from './4.scss'; // css module feature test (composes from other file)
27
25
  }
28
26
  `,
29
27
  '/test/2.scss': dedent`
@@ -46,50 +44,63 @@ test('handles sass features', async () => {
46
44
  // FIXME: The end position of 'a_2_2' is incorrect.
47
45
  expect(result).toMatchInlineSnapshot(`
48
46
  {
49
- dependencies: ["<fixtures>/test/2.scss", "<fixtures>/test/3.scss", "<fixtures>/test/4.scss"],
47
+ dependencies: ["<fixtures>/test/2.scss", "<fixtures>/test/3.scss"],
50
48
  tokens: [
51
49
  {
52
50
  name: "b_1",
53
- originalLocations: [
54
- { filePath: "<fixtures>/test/2.scss", start: { line: 1, column: 1 }, end: { line: 1, column: 4 } },
55
- ],
51
+ originalLocation: {
52
+ filePath: "<fixtures>/test/2.scss",
53
+ start: { line: 1, column: 1 },
54
+ end: { line: 1, column: 4 },
55
+ },
56
56
  },
57
57
  {
58
58
  name: "c",
59
- originalLocations: [
60
- { filePath: "<fixtures>/test/3.scss", start: { line: 1, column: 1 }, end: { line: 1, column: 2 } },
61
- ],
59
+ originalLocation: {
60
+ filePath: "<fixtures>/test/3.scss",
61
+ start: { line: 1, column: 1 },
62
+ end: { line: 1, column: 2 },
63
+ },
62
64
  },
63
65
  {
64
66
  name: "a_1",
65
- originalLocations: [
66
- { filePath: "<fixtures>/test/1.scss", start: { line: 3, column: 1 }, end: { line: 3, column: 4 } },
67
- ],
67
+ originalLocation: {
68
+ filePath: "<fixtures>/test/1.scss",
69
+ start: { line: 3, column: 1 },
70
+ end: { line: 3, column: 4 },
71
+ },
68
72
  },
69
73
  {
70
74
  name: "a_2",
71
- originalLocations: [
72
- { filePath: "<fixtures>/test/1.scss", start: { line: 4, column: 1 }, end: { line: 4, column: 4 } },
73
- { filePath: "<fixtures>/test/1.scss", start: { line: 7, column: 3 }, end: { line: 7, column: 6 } },
74
- ],
75
+ originalLocation: {
76
+ filePath: "<fixtures>/test/1.scss",
77
+ start: { line: 4, column: 1 },
78
+ end: { line: 4, column: 4 },
79
+ },
75
80
  },
76
81
  {
77
- name: "a_2_1",
78
- originalLocations: [
79
- { filePath: "<fixtures>/test/1.scss", start: { line: 7, column: 3 }, end: { line: 7, column: 8 } },
80
- ],
82
+ name: "a_2",
83
+ originalLocation: {
84
+ filePath: "<fixtures>/test/1.scss",
85
+ start: { line: 7, column: 3 },
86
+ end: { line: 7, column: 6 },
87
+ },
81
88
  },
82
89
  {
83
- name: "a_2_2",
84
- originalLocations: [
85
- { filePath: "<fixtures>/test/1.scss", start: { line: 8, column: 3 }, end: { line: 8, column: 8 } },
86
- ],
90
+ name: "a_2_1",
91
+ originalLocation: {
92
+ filePath: "<fixtures>/test/1.scss",
93
+ start: { line: 7, column: 3 },
94
+ end: { line: 7, column: 8 },
95
+ },
87
96
  },
88
97
  {
89
- name: "d",
90
- originalLocations: [
91
- { filePath: "<fixtures>/test/4.scss", start: { line: 1, column: 1 }, end: { line: 1, column: 2 } },
92
- ],
98
+ name: "a_2_2",
99
+ originalLocation: {
100
+ filePath: "<fixtures>/test/1.scss",
101
+ start: { line: 8, column: 3 },
102
+ end: { line: 8, column: 8 },
103
+ },
93
104
  },
94
105
  ],
95
106
  }
package/src/util.ts CHANGED
@@ -66,7 +66,7 @@ export async function exists(path: string): Promise<boolean> {
66
66
  }
67
67
 
68
68
  export function isMatchByGlob(filePath: string, pattern: string, options: { cwd: string }): boolean {
69
- return minimatch(filePath, join(options.cwd, pattern));
69
+ return minimatch(filePath, join(options.cwd, pattern), { windowsPathsNoEscape: true });
70
70
  }
71
71
 
72
72
  export function getPackageJson() {
package/dist/cli.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import { type RunnerOptions } from './runner.js';
2
- /**
3
- * Parse command line arguments.
4
- * @returns Runner options.
5
- */
6
- export declare function parseArgv(argv: string[]): RunnerOptions;
package/dist/cli.js DELETED
@@ -1,121 +0,0 @@
1
- import yargs from 'yargs';
2
- import { hideBin } from 'yargs/helpers';
3
- import { DEFAULT_ARBITRARY_EXTENSIONS } from './config.js';
4
- import { getPackageJson } from './util.js';
5
- /**
6
- * Parse command line arguments.
7
- * @returns Runner options.
8
- */
9
- export function parseArgv(argv) {
10
- const pkgJson = getPackageJson();
11
- const parsedArgv = yargs(hideBin(argv))
12
- .wrap(Math.min(140, process.stdout.columns))
13
- .scriptName('hcm')
14
- .usage('Generate .d.ts and .d.ts.map for CSS modules.\n\n$0 [options] <glob>')
15
- .example("$0 'src/**/*.module.css'", 'Generate .d.ts and .d.ts.map.')
16
- .example("$0 'src/**/*.module.{css,scss,less}'", 'Also generate files for sass and less.')
17
- .example("$0 'src/**/*.module.css' --watch", 'Watch for changes and generate .d.ts and .d.ts.map.')
18
- .example("$0 'src/**/*.module.css' --declarationMap=false", 'Generate .d.ts only.')
19
- .example("$0 'src/**/*.module.css' --sassLoadPaths=src/style", "Run with sass's `--load-path`.")
20
- .example("$0 'src/**/*.module.css' --lessIncludePaths=src/style", "Run with less's `--include-path`.")
21
- .example('$0 \'src/**/*.module.css\' --webpackResolveAlias=\'{"@": "src"}\'', "Run with webpack's `resolve.alias`.")
22
- .example("$0 'src/**/*.module.css' --cache=false", 'Disable cache.')
23
- .detectLocale(false)
24
- .option('watch', {
25
- type: 'boolean',
26
- alias: 'w',
27
- default: false,
28
- describe: "Watch input directory's css files or pattern",
29
- })
30
- .option('localsConvention', {
31
- choices: ['camelCase', 'camelCaseOnly', 'dashes', 'dashesOnly'],
32
- describe: 'Style of exported class names.',
33
- })
34
- .option('declarationMap', {
35
- type: 'boolean',
36
- default: true,
37
- describe: 'Create sourcemaps for d.ts files',
38
- })
39
- .option('sassLoadPaths', {
40
- array: true,
41
- nargs: 1,
42
- describe: "The option compatible with sass's `--load-path`.",
43
- })
44
- .option('lessIncludePaths', {
45
- array: true,
46
- nargs: 1,
47
- describe: "The option compatible with less's `--include-path`.",
48
- })
49
- .option('webpackResolveAlias', {
50
- string: true,
51
- describe: "The option compatible with webpack's `resolve.alias`.",
52
- })
53
- // TODO: Support --noPostcssConfig option.
54
- .option('postcssConfig', {
55
- string: true,
56
- describe: "The option compatible with postcss's `--config`.",
57
- })
58
- .option('arbitraryExtensions', {
59
- type: 'boolean',
60
- default: DEFAULT_ARBITRARY_EXTENSIONS,
61
- describe: 'Generate `.d.css.ts` instead of `.css.d.ts`.',
62
- })
63
- .option('cache', {
64
- type: 'boolean',
65
- default: true,
66
- describe: 'Only generate .d.ts and .d.ts.map for changed files.',
67
- })
68
- .option('cacheStrategy', {
69
- choices: ['content', 'metadata'],
70
- // NOTE: This is a workaround for `parsedArgv.cacheStrategy` type breaks.
71
- default: 'content',
72
- describe: 'Strategy for the cache to use for detecting changed files.',
73
- })
74
- .option('logLevel', {
75
- choices: ['debug', 'info', 'silent'],
76
- default: 'info',
77
- describe: 'What level of logs to report.',
78
- })
79
- .alias('h', 'help')
80
- .alias('v', 'version')
81
- .version(pkgJson.version)
82
- .check((argv) => {
83
- const patterns = argv._;
84
- // TODO: support multiple patterns
85
- if (patterns.length !== 1)
86
- throw new Error('Only one pattern is allowed.');
87
- if (argv.webpackResolveAlias) {
88
- let parsedWebpackResolveAlias;
89
- try {
90
- parsedWebpackResolveAlias = JSON.parse(argv.webpackResolveAlias);
91
- }
92
- catch (e) {
93
- throw new Error('--webpackResolveAlias must be a valid JSON string.');
94
- }
95
- if (typeof parsedWebpackResolveAlias !== 'object' || parsedWebpackResolveAlias === null)
96
- throw new Error('--webpackResolveAlias must be an object');
97
- if (!Object.keys(parsedWebpackResolveAlias).every((key) => typeof key === 'string'))
98
- throw new Error('--webpackResolveAlias must be an object of string keys');
99
- if (!Object.values(parsedWebpackResolveAlias).every((value) => typeof value === 'string'))
100
- throw new Error('--webpackResolveAlias must be an object of string values');
101
- }
102
- return true;
103
- })
104
- .parseSync();
105
- const patterns = parsedArgv._.map((pattern) => pattern.toString());
106
- return {
107
- pattern: patterns[0],
108
- watch: parsedArgv.watch,
109
- localsConvention: parsedArgv.localsConvention,
110
- declarationMap: parsedArgv.declarationMap,
111
- sassLoadPaths: parsedArgv.sassLoadPaths?.map((item) => item.toString()),
112
- lessIncludePaths: parsedArgv.lessIncludePaths?.map((item) => item.toString()),
113
- webpackResolveAlias: parsedArgv.webpackResolveAlias ? JSON.parse(parsedArgv.webpackResolveAlias) : undefined,
114
- postcssConfig: parsedArgv.postcssConfig,
115
- arbitraryExtensions: parsedArgv.arbitraryExtensions,
116
- cache: parsedArgv.cache,
117
- cacheStrategy: parsedArgv.cacheStrategy,
118
- logLevel: parsedArgv.logLevel,
119
- };
120
- }
121
- //# sourceMappingURL=cli.js.map
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
package/dist/cli.test.js DELETED
@@ -1,66 +0,0 @@
1
- import { parseArgv } from './cli.js';
2
- import { DEFAULT_ARBITRARY_EXTENSIONS } from './config.js';
3
- const baseArgs = ['node', 'hcm'];
4
- describe('parseArgv', () => {
5
- test('pattern', () => {
6
- expect(parseArgv([...baseArgs, 'foo']).pattern).toStrictEqual('foo');
7
- expect(parseArgv([...baseArgs, '1']).pattern).toStrictEqual('1');
8
- // TODO: Support multiple patterns
9
- // parseArgv([...baseArgs, 'foo', 'bar']);
10
- });
11
- test('--watch', () => {
12
- expect(parseArgv([...baseArgs, '1.css', '--watch']).watch).toBe(true);
13
- expect(parseArgv([...baseArgs, '1.css', '--no-watch']).watch).toBe(false);
14
- });
15
- test('--localsConvention', () => {
16
- expect(parseArgv([...baseArgs, '1.css']).localsConvention).toBe(undefined);
17
- expect(parseArgv([...baseArgs, '1.css', '--localsConvention', 'camelCaseOnly']).localsConvention).toBe('camelCaseOnly');
18
- expect(parseArgv([...baseArgs, '1.css', '--localsConvention', 'camelCase']).localsConvention).toBe('camelCase');
19
- expect(parseArgv([...baseArgs, '1.css', '--localsConvention', 'dashesOnly']).localsConvention).toBe('dashesOnly');
20
- expect(parseArgv([...baseArgs, '1.css', '--localsConvention', 'dashes']).localsConvention).toBe('dashes');
21
- });
22
- test('--declarationMap', () => {
23
- expect(parseArgv([...baseArgs, '1.css', '--declarationMap']).declarationMap).toBe(true);
24
- expect(parseArgv([...baseArgs, '1.css', '--no-declarationMap']).declarationMap).toBe(false);
25
- });
26
- test('--sassLoadPaths', () => {
27
- expect(parseArgv([...baseArgs, '1.css', '--sassLoadPaths', 'dir1', '--sassLoadPaths', 'dir2']).sassLoadPaths).toStrictEqual(['dir1', 'dir2']);
28
- // Passing a number is treated as a string
29
- expect(parseArgv([...baseArgs, '1.css', '--sassLoadPaths', '1']).sassLoadPaths).toStrictEqual(['1']);
30
- });
31
- test('--lessIncludePaths', () => {
32
- expect(parseArgv([...baseArgs, '1.css', '--lessIncludePaths', 'dir1', '--lessIncludePaths', 'dir2']).lessIncludePaths).toStrictEqual(['dir1', 'dir2']);
33
- // Passing a number is treated as a string
34
- expect(parseArgv([...baseArgs, '1.css', '--lessIncludePaths', '1']).lessIncludePaths).toStrictEqual(['1']);
35
- });
36
- test('--webpackResolveAlias', () => {
37
- expect(parseArgv([...baseArgs, '1.css', '--webpackResolveAlias', '{ "key1": "value1", "key2": "value2" }'])
38
- .webpackResolveAlias).toStrictEqual({
39
- key1: 'value1',
40
- key2: 'value2',
41
- });
42
- });
43
- test('--postcssConfig', () => {
44
- expect(parseArgv([...baseArgs, '1.css', '--postcssConfig', '.']).postcssConfig).toBe('.');
45
- expect(parseArgv([...baseArgs, '1.css', '--postcssConfig', 'postcss.config.js']).postcssConfig).toBe('postcss.config.js');
46
- });
47
- test('--arbitraryExtensions', () => {
48
- expect(parseArgv([...baseArgs, '1.css']).arbitraryExtensions).toBe(DEFAULT_ARBITRARY_EXTENSIONS);
49
- expect(parseArgv([...baseArgs, '1.css', '--arbitraryExtensions']).arbitraryExtensions).toBe(true);
50
- });
51
- test('--cache', () => {
52
- expect(parseArgv([...baseArgs, '1.css']).cache).toBe(true);
53
- expect(parseArgv([...baseArgs, '1.css', '--cache']).cache).toBe(true);
54
- expect(parseArgv([...baseArgs, '1.css', '--no-cache']).cache).toBe(false);
55
- });
56
- test('--cacheStrategy', () => {
57
- expect(parseArgv([...baseArgs, '1.css']).cacheStrategy).toBe('content');
58
- expect(parseArgv([...baseArgs, '1.css', '--cacheStrategy', 'metadata']).cacheStrategy).toBe('metadata');
59
- });
60
- test('--logLevel', () => {
61
- expect(parseArgv([...baseArgs, '1.css']).logLevel).toBe('info');
62
- expect(parseArgv([...baseArgs, '1.css', '--logLevel', 'debug']).logLevel).toBe('debug');
63
- expect(parseArgv([...baseArgs, '1.css', '--logLevel', 'silent']).logLevel).toBe('silent');
64
- });
65
- });
66
- //# sourceMappingURL=cli.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts DELETED
@@ -1 +0,0 @@
1
- export declare const DEFAULT_ARBITRARY_EXTENSIONS = false;
package/dist/config.js DELETED
@@ -1,2 +0,0 @@
1
- export const DEFAULT_ARBITRARY_EXTENSIONS = false;
2
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC"}
@@ -1,14 +0,0 @@
1
- import { type CodeWithSourceMap } from '../library/source-map/index.js';
2
- import { type Token } from '../locator/index.js';
3
- import { type DtsFormatOptions } from './index.js';
4
- /**
5
- * Get .d.ts file path.
6
- * @param filePath The path to the source file (i.e. `/dir/foo.css`). It is absolute.
7
- * @param arbitraryExtensions Generate `.d.css.ts` instead of `.css.d.ts`.
8
- * @returns The path to the .d.ts file. It is absolute.
9
- */
10
- export declare function getDtsFilePath(filePath: string, arbitraryExtensions: boolean): string;
11
- export declare function generateDtsContentWithSourceMap(filePath: string, dtsFilePath: string, sourceMapFilePath: string, tokens: Token[], dtsFormatOptions: DtsFormatOptions | undefined, isExternalFile: (filePath: string) => boolean): {
12
- dtsContent: CodeWithSourceMap['code'];
13
- sourceMap: CodeWithSourceMap['map'];
14
- };
@@ -1,111 +0,0 @@
1
- import { EOL } from 'os';
2
- import { basename, parse, join } from 'path';
3
- import camelcase from 'camelcase';
4
- import { SourceNode } from '../library/source-map/index.js';
5
- import { getRelativePath } from './index.js';
6
- /**
7
- * Get .d.ts file path.
8
- * @param filePath The path to the source file (i.e. `/dir/foo.css`). It is absolute.
9
- * @param arbitraryExtensions Generate `.d.css.ts` instead of `.css.d.ts`.
10
- * @returns The path to the .d.ts file. It is absolute.
11
- */
12
- export function getDtsFilePath(filePath, arbitraryExtensions) {
13
- if (arbitraryExtensions) {
14
- const { dir, name, ext } = parse(filePath);
15
- return join(dir, `${name}.d${ext}.ts`);
16
- }
17
- else {
18
- return `${filePath}.d.ts`;
19
- }
20
- }
21
- function dashesCamelCase(str) {
22
- return str.replace(/-+(\w)/gu, (match, firstLetter) => {
23
- return firstLetter.toUpperCase();
24
- });
25
- }
26
- function formatTokens(tokens, localsConvention) {
27
- const result = [];
28
- for (const token of tokens) {
29
- if (localsConvention === 'camelCaseOnly') {
30
- result.push({ ...token, name: camelcase(token.name) });
31
- }
32
- else if (localsConvention === 'camelCase') {
33
- result.push(token);
34
- result.push({ ...token, name: camelcase(token.name) });
35
- }
36
- else if (localsConvention === 'dashesOnly') {
37
- result.push({ ...token, name: dashesCamelCase(token.name) });
38
- }
39
- else if (localsConvention === 'dashes') {
40
- result.push(token);
41
- result.push({ ...token, name: dashesCamelCase(token.name) });
42
- }
43
- else {
44
- result.push(token); // asIs
45
- }
46
- }
47
- return result;
48
- }
49
- function generateTokenDeclarations(filePath, sourceMapFilePath, tokens, dtsFormatOptions, isExternalFile) {
50
- const formattedTokens = formatTokens(tokens, dtsFormatOptions?.localsConvention);
51
- const result = [];
52
- for (const token of formattedTokens) {
53
- // Only one original position can be associated with one generated position.
54
- // This is due to the sourcemap specification. Therefore, we output multiple type definitions
55
- // with the same name and assign a separate original position to each.
56
- for (let originalLocation of token.originalLocations) {
57
- if (originalLocation.filePath === undefined) {
58
- // If the original location is not specified, fallback to the source file.
59
- originalLocation = {
60
- filePath,
61
- start: { line: 1, column: 1 },
62
- end: { line: 1, column: 1 },
63
- };
64
- }
65
- result.push(originalLocation.filePath === filePath || isExternalFile(originalLocation.filePath)
66
- ? new SourceNode(null, null, null, [
67
- '& Readonly<{ ',
68
- new SourceNode(originalLocation.start.line ?? null,
69
- // The SourceNode's column is 0-based, but the originalLocation's column is 1-based.
70
- originalLocation.start.column - 1 ?? null, getRelativePath(sourceMapFilePath, originalLocation.filePath), `"${token.name}"`, token.name),
71
- ': string }>',
72
- ])
73
- : // Imported tokens in non-external files are typed by dynamic import.
74
- // See https://github.com/mizdra/happy-css-modules/issues/106.
75
- new SourceNode(null, null, null, [
76
- '& Readonly<Pick<(typeof import(',
77
- `"${getRelativePath(filePath, originalLocation.filePath)}"`,
78
- '))["default"], ',
79
- `"${token.name}"`,
80
- '>>',
81
- ]));
82
- }
83
- }
84
- return result;
85
- }
86
- // eslint-disable-next-line max-params
87
- export function generateDtsContentWithSourceMap(filePath, dtsFilePath, sourceMapFilePath, tokens, dtsFormatOptions, isExternalFile) {
88
- const tokenDeclarations = generateTokenDeclarations(filePath, sourceMapFilePath, tokens, dtsFormatOptions, isExternalFile);
89
- let sourceNode;
90
- if (!tokenDeclarations || !tokenDeclarations.length) {
91
- sourceNode = new SourceNode(null, null, null, '');
92
- }
93
- else {
94
- sourceNode = new SourceNode(1, 0, getRelativePath(sourceMapFilePath, filePath), [
95
- `declare const styles:${EOL}`,
96
- ...tokenDeclarations.map((tokenDeclaration) => [' ', tokenDeclaration, EOL]),
97
- `;${EOL}`,
98
- `export default styles;${EOL}`,
99
- ]);
100
- }
101
- const codeWithSourceMap = sourceNode.toStringWithSourceMap({
102
- // Since sourcemap and type definitions are in the same directory, they can be referenced by relative paths.
103
- file: basename(dtsFilePath),
104
- sourceRoot: '',
105
- });
106
- return {
107
- dtsContent: codeWithSourceMap.code,
108
- sourceMap: codeWithSourceMap.map,
109
- };
110
- }
111
- //# sourceMappingURL=dts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dts.js","sourceRoot":"","sources":["../../src/emitter/dts.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};