happy-css-modules 0.4.0 → 0.6.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 (102) hide show
  1. package/README.md +172 -53
  2. package/dist/cli.js +45 -11
  3. package/dist/cli.js.map +1 -1
  4. package/dist/cli.test.js +20 -4
  5. package/dist/cli.test.js.map +1 -1
  6. package/dist/emitter/dts.d.ts +3 -4
  7. package/dist/emitter/dts.js +13 -15
  8. package/dist/emitter/dts.js.map +1 -1
  9. package/dist/emitter/dts.test.js +7 -10
  10. package/dist/emitter/dts.test.js.map +1 -1
  11. package/dist/emitter/index.d.ts +6 -15
  12. package/dist/emitter/index.js +18 -13
  13. package/dist/emitter/index.js.map +1 -1
  14. package/dist/emitter/index.test.js +0 -50
  15. package/dist/emitter/index.test.js.map +1 -1
  16. package/dist/emitter/source-map.d.ts +1 -3
  17. package/dist/emitter/source-map.js +2 -3
  18. package/dist/emitter/source-map.js.map +1 -1
  19. package/dist/emitter/source-map.test.js +1 -4
  20. package/dist/emitter/source-map.test.js.map +1 -1
  21. package/dist/index.d.ts +4 -2
  22. package/dist/index.js +3 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/integration-test/go-to-definition.test.js +1 -0
  25. package/dist/integration-test/go-to-definition.test.js.map +1 -1
  26. package/dist/{loader → locator}/index.d.ts +6 -4
  27. package/dist/{loader → locator}/index.js +13 -5
  28. package/dist/locator/index.js.map +1 -0
  29. package/dist/{loader → locator}/index.test.d.ts +0 -0
  30. package/dist/{loader → locator}/index.test.js +100 -14
  31. package/dist/locator/index.test.js.map +1 -0
  32. package/dist/{loader → locator}/postcss.d.ts +5 -1
  33. package/dist/{loader → locator}/postcss.js +26 -30
  34. package/dist/{loader → locator}/postcss.js.map +1 -1
  35. package/dist/{loader → locator}/postcss.test.d.ts +0 -0
  36. package/dist/{loader → locator}/postcss.test.js +0 -0
  37. package/dist/locator/postcss.test.js.map +1 -0
  38. package/dist/resolver/webpack-resolver.d.ts +12 -2
  39. package/dist/resolver/webpack-resolver.js +12 -3
  40. package/dist/resolver/webpack-resolver.js.map +1 -1
  41. package/dist/resolver/webpack-resolver.test.js +43 -7
  42. package/dist/resolver/webpack-resolver.test.js.map +1 -1
  43. package/dist/runner.d.ts +23 -1
  44. package/dist/runner.js +62 -23
  45. package/dist/runner.js.map +1 -1
  46. package/dist/runner.test.js +90 -11
  47. package/dist/runner.test.js.map +1 -1
  48. package/dist/test/util.d.ts +2 -2
  49. package/dist/test/util.js +16 -9
  50. package/dist/test/util.js.map +1 -1
  51. package/dist/transformer/index.d.ts +4 -2
  52. package/dist/transformer/index.js +7 -3
  53. package/dist/transformer/index.js.map +1 -1
  54. package/dist/transformer/index.test.d.ts +1 -0
  55. package/dist/transformer/index.test.js +66 -0
  56. package/dist/transformer/index.test.js.map +1 -0
  57. package/dist/transformer/less-transformer.test.js +14 -14
  58. package/dist/transformer/less-transformer.test.js.map +1 -1
  59. package/dist/transformer/postcss-transformer.d.ts +12 -0
  60. package/dist/transformer/postcss-transformer.js +32 -0
  61. package/dist/transformer/postcss-transformer.js.map +1 -0
  62. package/dist/transformer/postcss-transformer.test.d.ts +1 -0
  63. package/dist/transformer/postcss-transformer.test.js +176 -0
  64. package/dist/transformer/postcss-transformer.test.js.map +1 -0
  65. package/dist/transformer/scss-transformer.js +19 -17
  66. package/dist/transformer/scss-transformer.js.map +1 -1
  67. package/dist/transformer/scss-transformer.test.js +16 -16
  68. package/dist/transformer/scss-transformer.test.js.map +1 -1
  69. package/dist/util.d.ts +2 -0
  70. package/dist/util.js +19 -2
  71. package/dist/util.js.map +1 -1
  72. package/package.json +10 -9
  73. package/src/cli.test.ts +24 -4
  74. package/src/cli.ts +44 -12
  75. package/src/emitter/dts.test.ts +7 -12
  76. package/src/emitter/dts.ts +15 -15
  77. package/src/emitter/index.test.ts +0 -52
  78. package/src/emitter/index.ts +22 -29
  79. package/src/emitter/source-map.test.ts +1 -6
  80. package/src/emitter/source-map.ts +3 -4
  81. package/src/index.ts +9 -2
  82. package/src/integration-test/go-to-definition.test.ts +1 -0
  83. package/src/{loader → locator}/index.test.ts +101 -14
  84. package/src/{loader → locator}/index.ts +16 -8
  85. package/src/{loader → locator}/postcss.test.ts +0 -0
  86. package/src/{loader → locator}/postcss.ts +42 -40
  87. package/src/resolver/webpack-resolver.test.ts +63 -7
  88. package/src/resolver/webpack-resolver.ts +26 -5
  89. package/src/runner.test.ts +103 -11
  90. package/src/runner.ts +83 -25
  91. package/src/test/util.ts +16 -10
  92. package/src/transformer/index.test.ts +71 -0
  93. package/src/transformer/index.ts +12 -4
  94. package/src/transformer/less-transformer.test.ts +14 -14
  95. package/src/transformer/postcss-transformer.test.ts +188 -0
  96. package/src/transformer/postcss-transformer.ts +57 -0
  97. package/src/transformer/scss-transformer.test.ts +16 -16
  98. package/src/transformer/scss-transformer.ts +25 -27
  99. package/src/util.ts +21 -2
  100. package/dist/loader/index.js.map +0 -1
  101. package/dist/loader/index.test.js.map +0 -1
  102. package/dist/loader/postcss.test.js.map +0 -1
package/README.md CHANGED
@@ -5,12 +5,26 @@
5
5
  <h2 align="center">The Collection of tools to make CSS Modules happy :)</h2>
6
6
 
7
7
  <p align="center">
8
- <em>Typed, definition jumps, and unused variable detection!</em>
8
+ <em>Typed, definition jumps, and unused selector detection!</em>
9
9
  </p>
10
10
 
11
11
  https://user-images.githubusercontent.com/9639995/189538880-872ad38d-2c9d-4c19-b257-521018963eec.mov
12
12
 
13
- This is an experimental project aimed at PoC for https://github.com/Quramy/typed-css-modules/issues/177.
13
+ ## Features
14
+
15
+ - :white_check_mark: Strict type checking
16
+ - Generate `.d.ts` of CSS Modules for type checking
17
+ - :mag: Definition jumps
18
+ - Clicking on a property on `.jsx`/`.tsx` will jump to the source of the definition on `.module.css`.
19
+ - This is accomplished by generating `.d.ts.map` (a.k.a. [Declaration Map](https://www.typescriptlang.org/tsconfig#declarationMap)).
20
+ - :rotating_light: Unused selector detection (**Not implemented yet**)
21
+ - Detect unused selectors using information from strict type checking.
22
+ - :handshake: High compatibility with the ecosystem
23
+ - Support for Postcss/Sass/Less
24
+ - Implement webpack-compatible resolving algorithms
25
+ - Also supports [`resolve.alias`](https://webpack.js.org/configuration/resolve/#resolvealias)
26
+ - :beginner: Easy to use
27
+ - No configuration file, some simple CLI options
14
28
 
15
29
  ## Installation
16
30
 
@@ -20,30 +34,43 @@ $ npm i -D happy-css-modules
20
34
 
21
35
  ## Usage
22
36
 
37
+ In the simple case, everything goes well with the following!
38
+
39
+ ```console
40
+ $ hcm 'src/**/*.module.{css,scss,less}'
41
+ ```
42
+
43
+ If you want to customize the behavior, see `--help`.
44
+
23
45
  ```console
24
46
  $ hcm --help
25
- Create .d.ts and .d.ts.map from CSS modules *.css files.
47
+ Generate .d.ts and .d.ts.map for CSS modules.
26
48
 
27
49
  hcm [options] <glob>
28
50
 
29
51
  Options:
30
- --outDir Output directory [string]
31
- -w, --watch Watch input directory's css files or pattern [boolean] [default: false]
32
- --localsConvention Style of exported class names. [choices: "camelCase", "camelCaseOnly", "dashes", "dashesOnly"]
33
- --declarationMap Create sourcemaps for d.ts files [boolean] [default: true]
34
- --sassLoadPaths The option compatible with sass's `--load-path`. [array]
35
- --lessIncludePaths The option compatible with less's `--include-path`. [array]
36
- --silent Silent output. Do not show "files written" messages [boolean] [default: false]
37
- -h, --help Show help [boolean]
38
- -v, --version Show version number [boolean]
52
+ -w, --watch Watch input directory's css files or pattern [boolean] [default: false]
53
+ --localsConvention Style of exported class names. [choices: "camelCase", "camelCaseOnly", "dashes", "dashesOnly"]
54
+ --declarationMap Create sourcemaps for d.ts files [boolean] [default: true]
55
+ --sassLoadPaths The option compatible with sass's `--load-path`. [array]
56
+ --lessIncludePaths The option compatible with less's `--include-path`. [array]
57
+ --webpackResolveAlias The option compatible with webpack's `resolve.alias`. [string]
58
+ --postcssConfig The option compatible with postcss's `--config`. [string]
59
+ --cache Only generate .d.ts and .d.ts.map for changed files. [boolean] [default: true]
60
+ --cacheStrategy Strategy for the cache to use for detecting changed files.[choices: "content", "metadata"] [default: "content"]
61
+ --silent Silent output. Do not show "files written" messages [boolean] [default: false]
62
+ -h, --help Show help [boolean]
63
+ -v, --version Show version number [boolean]
39
64
 
40
65
  Examples:
41
- hcm 'src/**/*.module.css' Generate .d.ts and .d.ts.map.
42
- hcm 'src/**/*.module.{css,scss,less}' Also generate files for sass and less.
43
- hcm 'src/**/*.module.css' --watch Watch for changes and generate .d.ts and .d.ts.map.
44
- hcm 'src/**/*.module.css' --declarationMap=false Generate .d.ts only.
45
- hcm 'src/**/*.module.css' --sassLoadPaths=src/style Run with sass's `--load-path`.
46
- hcm 'src/**/*.module.css' --lessIncludePaths=src/style Run with less's `--include-path`.
66
+ hcm 'src/**/*.module.css' Generate .d.ts and .d.ts.map.
67
+ hcm 'src/**/*.module.{css,scss,less}' Also generate files for sass and less.
68
+ hcm 'src/**/*.module.css' --watch Watch for changes and generate .d.ts and .d.ts.map.
69
+ hcm 'src/**/*.module.css' --declarationMap=false Generate .d.ts only.
70
+ hcm 'src/**/*.module.css' --sassLoadPaths=src/style Run with sass's `--load-path`.
71
+ hcm 'src/**/*.module.css' --lessIncludePaths=src/style Run with less's `--include-path`.
72
+ hcm 'src/**/*.module.css' --webpackResolveAlias='{"@": "src"}' Run with webpack's `resolve.alias`.
73
+ hcm 'src/**/*.module.css' --cache=false Disable cache.
47
74
  ```
48
75
 
49
76
  ## Node.js API (Experimental)
@@ -55,67 +82,159 @@ Examples:
55
82
 
56
83
  See [src/index.ts](https://github.com/mizdra/happy-css-modules/blob/main/src/index.ts) for available API.
57
84
 
58
- ### Example
85
+ ### Example: Custom `hcm` commands
59
86
 
60
- With the `transformer` option, you can use AltCSS, which is not supported by `happy-css-modules`.
87
+ You can create your own customized `hcm` commands. We also provide a `parseArgv` utility that parses `process.argv` and extracts options.
61
88
 
62
89
  ```javascript
63
- // @ts-check
90
+ #!/usr/bin/env ts-node
91
+ // scripts/hcm.ts
64
92
 
65
- import { run } from 'happy-css-modules';
66
- import { readFile } from 'fs/promises';
67
- import { fileURLToPath, pathToFileURL } from 'url';
93
+ import { run, parseArgv } from 'happy-css-modules';
94
+
95
+ // Write your code here...
96
+
97
+ run({
98
+ // Inherit default CLI options (e.g. --watch).
99
+ ...parseArgv(process.argv),
100
+ // Add custom CLI options.
101
+ cwd: __dirname,
102
+ }).catch((e) => {
103
+ console.error(e);
104
+ process.exit(1);
105
+ });
106
+ ```
107
+
108
+ ### Example: Custom transformer
109
+
110
+ With the `transformer` option, you can use AltCSS, which is not supported by `happy-css-modules`.
111
+
112
+ ```typescript
113
+ #!/usr/bin/env ts-node
114
+
115
+ import { run, parseArgv, createDefaultTransformer, type Transformer } from 'happy-css-modules';
68
116
  import sass from 'sass';
117
+ import { promisify } from 'util';
118
+
119
+ const defaultTransformer = createDefaultTransformer();
120
+ const render = promisify(sass.render);
69
121
 
70
- // The custom transpiler supporting sass indented syntax
71
- /** @type {import('happy-css-modules').Transformer} */
72
- const transformer = async (source, from) => {
122
+ // The custom transformer supporting sass indented syntax
123
+ const transformer: Transformer = async (source, options) => {
73
124
  if (from.endsWith('.sass')) {
74
- const result = await sass.compileStringAsync(source, {
75
- // Use indented syntax
125
+ const result = await render({
126
+ // Use indented syntax.
76
127
  // ref: https://sass-lang.com/documentation/syntax#the-indented-syntax
77
- syntax: 'indented',
78
- url: pathToFileURL(from),
128
+ indentedSyntax: true,
129
+ data: source,
130
+ file: options.from,
131
+ outFile: 'DUMMY',
132
+ // Output sourceMap.
79
133
  sourceMap: true,
134
+ // Resolve import specifier using resolver.
135
+ importer: (url, prev, done) => {
136
+ options
137
+ .resolver(url, { request: prev })
138
+ .then((resolved) => done({ file: resolved }))
139
+ .catch((e) => done(e));
140
+ },
80
141
  });
81
142
  return { css: result.css, map: result.sourceMap!, dependencies: result.loadedUrls };
82
143
  }
83
- return false;
144
+ // Fallback to default transformer.
145
+ return await defaultTransformer(source, from);
84
146
  };
85
147
 
86
- run({
87
- pattern: 'src/**/*.css';
88
- watch: false;
89
- transformer,
90
- }).catch((e) => {
148
+ run({ ...parseArgv(process.argv), transformer }).catch((e) => {
91
149
  console.error(e);
92
150
  process.exit(1);
93
151
  });
94
152
  ```
95
153
 
96
- You can also create your own customized `hcm` commands. We also provide a `parseArgv` utility that parses `process.argv` and extracts options.
154
+ ### Example: Custom resolver
97
155
 
98
- ```javascript
99
- #!/usr/bin/env node
100
- // scripts/hcm.js
101
- // @ts-check
156
+ With the `resolver` option, you can customize the resolution algorithm for import specifier (such as `@import "specifier"`).
102
157
 
103
- import { run, parseArgv } from 'happy-css-modules';
158
+ ```typescript
159
+ #!/usr/bin/env ts-node
104
160
 
105
- // ...
161
+ import { run, parseArgv, createDefaultResolver, type Resolver } from 'happy-css-modules';
162
+ import { exists } from 'fs/promises';
163
+ import { resolve, join } from 'path';
106
164
 
107
- run({
108
- ...parseArgv(process.argv), // Inherit default CLI options (e.g. --watch)
109
- transformer,
110
- }).catch((e) => {
165
+ const cwd = process.cwd();
166
+ const runnerOptions = parseArgv(process.argv);
167
+ const { sassLoadPaths, lessIncludePaths, webpackResolveAlias } = runnerOptions;
168
+ // Some runner options must be passed to the default resolver.
169
+ const defaultResolver = createDefaultResolver({ cwd, sassLoadPaths, lessIncludePaths, webpackResolveAlias });
170
+ const stylesDir = resolve(__dirname, 'src/styles');
171
+
172
+ const resolver: Resolver = async (specifier, options) => {
173
+ // If the default resolver cannot resolve, fallback to a customized resolve algorithm.
174
+ const resolvedByDefaultResolver = await defaultResolver(specifier, options);
175
+ if (resolvedByDefaultResolver === false) {
176
+ // Search for files in `src/styles` directory.
177
+ const path = join(stylesDir, specifier);
178
+ if (await exists(path)) return path;
179
+ }
180
+ // Returns `false` if specifier cannot be resolved.
181
+ return false;
182
+ };
183
+
184
+ run({ ...runnerOptions, resolver, cwd }).catch((e) => {
111
185
  console.error(e);
112
186
  process.exit(1);
113
187
  });
114
188
  ```
115
189
 
116
- ## TODO
190
+ ### Example: Get locations for selectors exported by CSS Modules
191
+
192
+ `Locator` can be used to get location for selectors exported by CSS Modules.
193
+
194
+ ```typescript
195
+ import { Locator } from 'happy-css-modules';
196
+ import { resolve } from 'path';
197
+ import assert from 'assert';
198
+
199
+ const locator = new Locator({
200
+ // You can customize the transformer and resolver used by the locator.
201
+ // transformer: createDefaultTransformer(),
202
+ // resolver: createDefaultResolver(),
203
+ });
204
+
205
+ // Process https://github.com/mizdra/happy-css-modules/blob/main/example/02-import/2.css
206
+ const filePath = resolve('example/02-import/2.css'); // Convert to absolute path
207
+ const result = await locator.load(filePath);
208
+
209
+ assert.deepEqual(result, {
210
+ dependencies: ['/Users/mizdra/src/github.com/mizdra/happy-css-modules/example/02-import/3.css'],
211
+ tokens: [
212
+ {
213
+ name: 'b',
214
+ originalLocations: [
215
+ {
216
+ filePath: '/Users/mizdra/src/github.com/mizdra/happy-css-modules/example/02-import/3.css',
217
+ start: { line: 1, column: 1 },
218
+ end: { line: 1, column: 2 },
219
+ },
220
+ ],
221
+ },
222
+ {
223
+ name: 'a',
224
+ originalLocations: [
225
+ {
226
+ filePath: '/Users/mizdra/src/github.com/mizdra/happy-css-modules/example/02-import/2.css',
227
+ start: { line: 3, column: 1 },
228
+ end: { line: 3, column: 2 },
229
+ },
230
+ ],
231
+ },
232
+ ],
233
+ });
234
+ ```
235
+
236
+ ## About the origins of this project
237
+
238
+ This project was born as a PoC for [Quramy/typed-css-modules#177](https://github.com/Quramy/typed-css-modules/issues/177). That is why this project forks [`Quramy/typed-css-modules`](https://github.com/Quramy/typed-css-modules). Due to refactoring, only a small amount of code now comes from `Quramy/typed-css-modules`, but its contributions can still be found in the credits of the license.
117
239
 
118
- - [x] Add more tests
119
- - [x] Support non-inline source maps
120
- - [x] Implement an interface for easy use by scss/less users
121
- - [ ] Implement stylelint rule to detect unused CSS ruleset from JavaScript
240
+ Thank you [@Quramy](https://github.com/Quramy)!
package/dist/cli.js CHANGED
@@ -1,29 +1,25 @@
1
- import { readFileSync } from 'fs';
2
- import { dirname, resolve } from 'path';
3
- import { fileURLToPath } from 'url';
4
1
  import yargs from 'yargs';
5
2
  import { hideBin } from 'yargs/helpers';
6
- const pkgJson = JSON.parse(readFileSync(resolve(dirname(fileURLToPath(import.meta.url)), '../package.json'), 'utf-8'));
3
+ import { getPackageJson } from './util.js';
7
4
  /**
8
5
  * Parse command line arguments.
9
6
  * @returns Runner options.
10
7
  */
11
8
  export function parseArgv(argv) {
9
+ const pkgJson = getPackageJson();
12
10
  const parsedArgv = yargs(hideBin(argv))
13
- .wrap(Math.min(120, process.stdout.columns))
11
+ .wrap(Math.min(140, process.stdout.columns))
14
12
  .scriptName('hcm')
15
- .usage('Create .d.ts and .d.ts.map from CSS modules *.css files.\n\n$0 [options] <glob>')
13
+ .usage('Generate .d.ts and .d.ts.map for CSS modules.\n\n$0 [options] <glob>')
16
14
  .example("$0 'src/**/*.module.css'", 'Generate .d.ts and .d.ts.map.')
17
15
  .example("$0 'src/**/*.module.{css,scss,less}'", 'Also generate files for sass and less.')
18
16
  .example("$0 'src/**/*.module.css' --watch", 'Watch for changes and generate .d.ts and .d.ts.map.')
19
17
  .example("$0 'src/**/*.module.css' --declarationMap=false", 'Generate .d.ts only.')
20
18
  .example("$0 'src/**/*.module.css' --sassLoadPaths=src/style", "Run with sass's `--load-path`.")
21
19
  .example("$0 'src/**/*.module.css' --lessIncludePaths=src/style", "Run with less's `--include-path`.")
20
+ .example('$0 \'src/**/*.module.css\' --webpackResolveAlias=\'{"@": "src"}\'', "Run with webpack's `resolve.alias`.")
21
+ .example("$0 'src/**/*.module.css' --cache=false", 'Disable cache.')
22
22
  .detectLocale(false)
23
- .option('outDir', {
24
- type: 'string',
25
- describe: 'Output directory',
26
- })
27
23
  .option('watch', {
28
24
  type: 'boolean',
29
25
  alias: 'w',
@@ -48,6 +44,26 @@ export function parseArgv(argv) {
48
44
  array: true,
49
45
  nargs: 1,
50
46
  describe: "The option compatible with less's `--include-path`.",
47
+ })
48
+ .option('webpackResolveAlias', {
49
+ string: true,
50
+ describe: "The option compatible with webpack's `resolve.alias`.",
51
+ })
52
+ // TODO: Support --noPostcssConfig option.
53
+ .option('postcssConfig', {
54
+ string: true,
55
+ describe: "The option compatible with postcss's `--config`.",
56
+ })
57
+ .option('cache', {
58
+ type: 'boolean',
59
+ default: true,
60
+ describe: 'Only generate .d.ts and .d.ts.map for changed files.',
61
+ })
62
+ .option('cacheStrategy', {
63
+ choices: ['content', 'metadata'],
64
+ // NOTE: This is a workaround for `parsedArgv.cacheStrategy` type breaks.
65
+ default: 'content',
66
+ describe: 'Strategy for the cache to use for detecting changed files.',
51
67
  })
52
68
  .option('silent', {
53
69
  type: 'boolean',
@@ -62,18 +78,36 @@ export function parseArgv(argv) {
62
78
  // TODO: support multiple patterns
63
79
  if (patterns.length !== 1)
64
80
  throw new Error('Only one pattern is allowed.');
81
+ if (argv.webpackResolveAlias) {
82
+ let parsedWebpackResolveAlias;
83
+ try {
84
+ parsedWebpackResolveAlias = JSON.parse(argv.webpackResolveAlias);
85
+ }
86
+ catch (e) {
87
+ throw new Error('--webpackResolveAlias must be a valid JSON string.');
88
+ }
89
+ if (typeof parsedWebpackResolveAlias !== 'object' || parsedWebpackResolveAlias === null)
90
+ throw new Error('--webpackResolveAlias must be an object');
91
+ if (!Object.keys(parsedWebpackResolveAlias).every((key) => typeof key === 'string'))
92
+ throw new Error('--webpackResolveAlias must be an object of string keys');
93
+ if (!Object.values(parsedWebpackResolveAlias).every((value) => typeof value === 'string'))
94
+ throw new Error('--webpackResolveAlias must be an object of string values');
95
+ }
65
96
  return true;
66
97
  })
67
98
  .parseSync();
68
99
  const patterns = parsedArgv._.map((pattern) => pattern.toString());
69
100
  return {
70
101
  pattern: patterns[0],
71
- outDir: parsedArgv.outDir,
72
102
  watch: parsedArgv.watch,
73
103
  localsConvention: parsedArgv.localsConvention,
74
104
  declarationMap: parsedArgv.declarationMap,
75
105
  sassLoadPaths: parsedArgv.sassLoadPaths?.map((item) => item.toString()),
76
106
  lessIncludePaths: parsedArgv.lessIncludePaths?.map((item) => item.toString()),
107
+ webpackResolveAlias: parsedArgv.webpackResolveAlias ? JSON.parse(parsedArgv.webpackResolveAlias) : undefined,
108
+ postcssConfig: parsedArgv.postcssConfig,
109
+ cache: parsedArgv.cache,
110
+ cacheStrategy: parsedArgv.cacheStrategy,
77
111
  silent: parsedArgv.silent,
78
112
  };
79
113
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/cli.test.js CHANGED
@@ -7,10 +7,6 @@ describe('parseArgv', () => {
7
7
  // TODO: Support multiple patterns
8
8
  // parseArgv([...baseArgs, 'foo', 'bar']);
9
9
  });
10
- test('--outDir', () => {
11
- expect(parseArgv([...baseArgs, '1.css', '--outDir', 'foo']).outDir).toStrictEqual('foo');
12
- expect(parseArgv([...baseArgs, '1.css', '--outDir', '1']).outDir).toStrictEqual('1');
13
- });
14
10
  test('--watch', () => {
15
11
  expect(parseArgv([...baseArgs, '1.css', '--watch']).watch).toBe(true);
16
12
  expect(parseArgv([...baseArgs, '1.css', '--no-watch']).watch).toBe(false);
@@ -36,6 +32,26 @@ describe('parseArgv', () => {
36
32
  // Passing a number is treated as a string
37
33
  expect(parseArgv([...baseArgs, '1.css', '--lessIncludePaths', '1']).lessIncludePaths).toStrictEqual(['1']);
38
34
  });
35
+ test('--webpackResolveAlias', () => {
36
+ expect(parseArgv([...baseArgs, '1.css', '--webpackResolveAlias', '{ "key1": "value1", "key2": "value2" }'])
37
+ .webpackResolveAlias).toStrictEqual({
38
+ key1: 'value1',
39
+ key2: 'value2',
40
+ });
41
+ });
42
+ test('--postcssConfig', () => {
43
+ expect(parseArgv([...baseArgs, '1.css', '--postcssConfig', '.']).postcssConfig).toBe('.');
44
+ expect(parseArgv([...baseArgs, '1.css', '--postcssConfig', 'postcss.config.js']).postcssConfig).toBe('postcss.config.js');
45
+ });
46
+ test('--cache', () => {
47
+ expect(parseArgv([...baseArgs, '1.css']).cache).toBe(true);
48
+ expect(parseArgv([...baseArgs, '1.css', '--cache']).cache).toBe(true);
49
+ expect(parseArgv([...baseArgs, '1.css', '--no-cache']).cache).toBe(false);
50
+ });
51
+ test('--cacheStrategy', () => {
52
+ expect(parseArgv([...baseArgs, '1.css']).cacheStrategy).toBe('content');
53
+ expect(parseArgv([...baseArgs, '1.css', '--cacheStrategy', 'metadata']).cacheStrategy).toBe('metadata');
54
+ });
39
55
  test('--silent', () => {
40
56
  expect(parseArgv([...baseArgs, '1.css', '--silent']).silent).toBe(true);
41
57
  expect(parseArgv([...baseArgs, '1.css', '--no-silent']).silent).toBe(false);
@@ -1 +1 @@
1
- {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,12 @@
1
1
  import { type CodeWithSourceMap } from '../library/source-map/index.js';
2
- import { type Token } from '../loader/index.js';
3
- import { type DistOptions, type DtsFormatOptions } from './index.js';
2
+ import { type Token } from '../locator/index.js';
3
+ import { type DtsFormatOptions } from './index.js';
4
4
  /**
5
5
  * Get .d.ts file path.
6
6
  * @param filePath The path to the source file (i.e. `/dir/foo.css`). It is absolute.
7
- * @param distOptions The distribution option.
8
7
  * @returns The path to the .d.ts file. It is absolute.
9
8
  */
10
- export declare function getDtsFilePath(filePath: string, distOptions: DistOptions | undefined): string;
9
+ export declare function getDtsFilePath(filePath: string): string;
11
10
  export declare function generateDtsContentWithSourceMap(filePath: string, dtsFilePath: string, sourceMapFilePath: string, tokens: Token[], dtsFormatOptions: DtsFormatOptions | undefined, isExternalFile: (filePath: string) => boolean): {
12
11
  dtsContent: CodeWithSourceMap['code'];
13
12
  sourceMap: CodeWithSourceMap['map'];
@@ -1,25 +1,15 @@
1
1
  import { EOL } from 'os';
2
- import { join, relative, basename } from 'path';
2
+ import { basename } from 'path';
3
3
  import camelcase from 'camelcase';
4
4
  import { SourceNode } from '../library/source-map/index.js';
5
- import { getRelativePath, isSubDirectoryFile } from './index.js';
5
+ import { getRelativePath } from './index.js';
6
6
  /**
7
7
  * Get .d.ts file path.
8
8
  * @param filePath The path to the source file (i.e. `/dir/foo.css`). It is absolute.
9
- * @param distOptions The distribution option.
10
9
  * @returns The path to the .d.ts file. It is absolute.
11
10
  */
12
- export function getDtsFilePath(filePath, distOptions) {
13
- if (distOptions) {
14
- if (!isSubDirectoryFile(distOptions.rootDir, filePath))
15
- throw new Error(`The filePath(${filePath}) is not a subdirectory of rootDir(${distOptions.rootDir}).`);
16
- if (!isSubDirectoryFile(distOptions.rootDir, distOptions.outDir))
17
- throw new Error(`The outDir(${distOptions.outDir}) is not a subdirectory of rootDir(${distOptions.rootDir}).`);
18
- return join(distOptions.outDir, relative(distOptions.rootDir, filePath) + '.d.ts');
19
- }
20
- else {
21
- return filePath + '.d.ts';
22
- }
11
+ export function getDtsFilePath(filePath) {
12
+ return filePath + '.d.ts';
23
13
  }
24
14
  function dashesCamelCase(str) {
25
15
  return str.replace(/-+(\w)/g, function (match, firstLetter) {
@@ -56,7 +46,15 @@ function generateTokenDeclarations(filePath, sourceMapFilePath, tokens, dtsForma
56
46
  // Only one original position can be associated with one generated position.
57
47
  // This is due to the sourcemap specification. Therefore, we output multiple type definitions
58
48
  // with the same name and assign a separate original position to each.
59
- for (const originalLocation of token.originalLocations) {
49
+ for (let originalLocation of token.originalLocations) {
50
+ if (originalLocation.filePath === undefined) {
51
+ // If the original location is not specified, fallback to the source file.
52
+ originalLocation = {
53
+ filePath: filePath,
54
+ start: { line: 1, column: 1 },
55
+ end: { line: 1, column: 1 },
56
+ };
57
+ }
60
58
  result.push(originalLocation.filePath === filePath || isExternalFile(originalLocation.filePath)
61
59
  ? new SourceNode(null, null, null, [
62
60
  '& Readonly<{ ',
@@ -1 +1 @@
1
- {"version":3,"file":"dts.js","sourceRoot":"","sources":["../../src/emitter/dts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dts.js","sourceRoot":"","sources":["../../src/emitter/dts.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,12 @@
1
1
  import dedent from 'dedent';
2
2
  import { SourceMapConsumer } from 'source-map';
3
- import { Loader } from '../loader/index.js';
3
+ import { Locator } from '../locator/index.js';
4
4
  import { getFixturePath, createFixtures } from '../test/util.js';
5
5
  import { generateDtsContentWithSourceMap, getDtsFilePath } from './dts.js';
6
- const loader = new Loader();
6
+ const locator = new Locator();
7
7
  const isExternalFile = () => false;
8
8
  test('getDtsFilePath', () => {
9
- expect(getDtsFilePath('/app/src/dir/1.css', undefined)).toBe('/app/src/dir/1.css.d.ts');
10
- expect(getDtsFilePath('/app/src/dir/1.css', { rootDir: '/app', outDir: '/app/dist' })).toBe('/app/dist/src/dir/1.css.d.ts');
11
- expect(() => getDtsFilePath('/tmp/src/dir/1.css', { rootDir: '/app', outDir: '/app/dist' })).toThrow();
12
- expect(() => getDtsFilePath('/app/src/dir/1.css', { rootDir: '/app', outDir: '/tmp/dist' })).toThrow();
9
+ expect(getDtsFilePath('/app/src/dir/1.css')).toBe('/app/src/dir/1.css.d.ts');
13
10
  });
14
11
  describe('generateDtsContentWithSourceMap', () => {
15
12
  const filePath = getFixturePath('/test/1.css');
@@ -34,7 +31,7 @@ describe('generateDtsContentWithSourceMap', () => {
34
31
  .d {}
35
32
  `,
36
33
  });
37
- const result = await loader.load(filePath);
34
+ const result = await locator.load(filePath);
38
35
  const { dtsContent, sourceMap } = generateDtsContentWithSourceMap(filePath, dtsFilePath, sourceMapFilePath, result.tokens, dtsFormatOptions, isExternalFile);
39
36
  expect(dtsContent).toMatchInlineSnapshot(`
40
37
  "declare const styles:
@@ -81,7 +78,7 @@ describe('generateDtsContentWithSourceMap', () => {
81
78
  .foo_bar {}
82
79
  `,
83
80
  });
84
- return await loader.load(filePath);
81
+ return await locator.load(filePath);
85
82
  }
86
83
  test('undefined', async () => {
87
84
  const result = await getResult(filePath);
@@ -167,7 +164,7 @@ describe('generateDtsContentWithSourceMap', () => {
167
164
  createFixtures({
168
165
  '/test/1.css': `.a {}`,
169
166
  });
170
- const result = await loader.load(filePath);
167
+ const result = await locator.load(filePath);
171
168
  const { dtsContent, sourceMap } = generateDtsContentWithSourceMap(getFixturePath('/test/src/1.css'), getFixturePath('/test/dist/1.css.d.ts'), getFixturePath('/test/dist/1.css.d.ts.map'), result.tokens, dtsFormatOptions, isExternalFile);
172
169
  expect(dtsContent).toMatchInlineSnapshot(`
173
170
  "declare const styles:
@@ -189,7 +186,7 @@ describe('generateDtsContentWithSourceMap', () => {
189
186
  '/test/2.css': `.b {}`,
190
187
  '/test/3.css': `.c {}`,
191
188
  });
192
- const result = await loader.load(filePath);
189
+ const result = await locator.load(filePath);
193
190
  const { dtsContent } = generateDtsContentWithSourceMap(filePath, dtsFilePath, sourceMapFilePath, result.tokens, dtsFormatOptions, (filePath) => filePath.endsWith('3.css'));
194
191
  expect(dtsContent).toMatchInlineSnapshot(`
195
192
  "declare const styles:
@@ -1 +1 @@
1
- {"version":3,"file":"dts.test.js","sourceRoot":"","sources":["../../src/emitter/dts.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dts.test.js","sourceRoot":"","sources":["../../src/emitter/dts.test.ts"],"names":[],"mappings":"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"}