happy-css-modules 0.6.0 → 1.0.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.
package/README.md CHANGED
@@ -2,10 +2,12 @@
2
2
  <img alt="Cover image" src="./docs/cover.svg" />
3
3
  </p>
4
4
 
5
- <h2 align="center">The Collection of tools to make CSS Modules happy :)</h2>
5
+ <h2 align="center">Happy CSS Modules</h2>
6
6
 
7
7
  <p align="center">
8
- <em>Typed, definition jumps, and unused selector detection!</em>
8
+ <em>Typed, definition jumpable CSS Modules.</em>
9
+ <br />
10
+ <em>Moreover, easy!</em>
9
11
  </p>
10
12
 
11
13
  https://user-images.githubusercontent.com/9639995/189538880-872ad38d-2c9d-4c19-b257-521018963eec.mov
@@ -17,8 +19,6 @@ https://user-images.githubusercontent.com/9639995/189538880-872ad38d-2c9d-4c19-b
17
19
  - :mag: Definition jumps
18
20
  - Clicking on a property on `.jsx`/`.tsx` will jump to the source of the definition on `.module.css`.
19
21
  - 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
22
  - :handshake: High compatibility with the ecosystem
23
23
  - Support for Postcss/Sass/Less
24
24
  - Implement webpack-compatible resolving algorithms
@@ -238,3 +238,29 @@ assert.deepEqual(result, {
238
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.
239
239
 
240
240
  Thank you [@Quramy](https://github.com/Quramy)!
241
+
242
+ ## Prior art
243
+
244
+ There are several prior art for each feature. In contrast, happy-css-modules is a comprehensive implementation of these features.
245
+
246
+ ### Strict type checking
247
+
248
+ - [typed-css-modules](https://github.com/Quramy/typed-css-modules)
249
+ - Only `.css` can be processed.
250
+ - Resolving using webpack's resolve.alias is not implemented.
251
+ - [typed-scss-modules](https://github.com/skovy/typed-scss-modules)
252
+ - Only `.scss` can be processed.
253
+ - Resolving using webpack's resolve.alias is not implemented.
254
+ - [typed-less-modules](https://github.com/qiniu/typed-less-modules)
255
+ - Only `.less` can be processed.
256
+ - Resolving using webpack's resolve.alias is not implemented.
257
+ - [typescript-plugin-css-modules](https://github.com/mrmckeb/typescript-plugin-css-modules)
258
+ - This is implemented as a TypeScript language service.
259
+ - Therefore, warnings can be issued on the editor, but not at compile time.
260
+ - In addition, the setup procedure is complicated.
261
+ - For more information, see [the documentation](https://github.com/mrmckeb/typescript-plugin-css-modules/tree/82ba03548c3d2193508e1a4dbc47c1aa9b22943c#about-this-plugin).
262
+
263
+ ### Definition jumps
264
+
265
+ - [typescript-plugin-css-modules](https://github.com/mrmckeb/typescript-plugin-css-modules)
266
+ - Can only jump to the top of `.css`.
package/dist/runner.js CHANGED
@@ -3,6 +3,7 @@ import * as process from 'process';
3
3
  import * as util from 'util';
4
4
  import { createCache } from '@file-cache/core';
5
5
  import { createNpmPackageKey } from '@file-cache/npm';
6
+ import AwaitLock from 'await-lock';
6
7
  import chalk from 'chalk';
7
8
  import * as chokidar from 'chokidar';
8
9
  import _glob from 'glob';
@@ -13,6 +14,7 @@ import { createDefaultTransformer } from './transformer/index.js';
13
14
  import { getInstalledPeerDependencies, isMatchByGlob } from './util.js';
14
15
  const glob = util.promisify(_glob);
15
16
  export async function run(options) {
17
+ const lock = new AwaitLock.default();
16
18
  const cwd = options.cwd ?? process.cwd();
17
19
  const silent = options.silent ?? false;
18
20
  const resolver = options.resolver ??
@@ -40,6 +42,8 @@ export async function run(options) {
40
42
  };
41
43
  async function processFile(filePath) {
42
44
  try {
45
+ // Locator#load cannot be called concurrently. Therefore, it takes a lock and waits.
46
+ await lock.acquireAsync();
43
47
  const result = await locator.load(filePath);
44
48
  await emitGeneratedFiles({
45
49
  filePath,
@@ -64,6 +68,9 @@ export async function run(options) {
64
68
  }
65
69
  throw error;
66
70
  }
71
+ finally {
72
+ lock.release();
73
+ }
67
74
  }
68
75
  async function isChangedFile(filePath) {
69
76
  const result = await cache.getAndUpdateCache(filePath);
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
@@ -114,6 +114,11 @@ test('watches for changes in files', async () => {
114
114
  await writeFile(getFixturePath('/test/1.css'), '.a-2 {}');
115
115
  await waitForAsyncTask(500); // Wait until the file is written
116
116
  expect(await readFile(getFixturePath('/test/1.css.d.ts'), 'utf8')).toMatch(/a-2/);
117
+ await writeFile(getFixturePath('/test/2.css'), '.b {}');
118
+ await writeFile(getFixturePath('/test/3.css'), '.c {}');
119
+ await waitForAsyncTask(500); // Wait until the file is written
120
+ expect(await readFile(getFixturePath('/test/2.css.d.ts'), 'utf8')).toMatch(/b/);
121
+ expect(await readFile(getFixturePath('/test/3.css.d.ts'), 'utf8')).toMatch(/c/);
117
122
  });
118
123
  test('returns an error if the file fails to process in non-watch mode', async () => {
119
124
  createFixtures({
@@ -1 +1 @@
1
- {"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../src/runner.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../src/runner.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE1F,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;IACjD,GAAG,YAAY;IACf,mBAAmB,EAAE,GAAG,EAAE,CAAC,YAAY;CACxC,CAAC,CAAC,CAAC;AAEJ,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;AAE5C,gEAAgE;AAChE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC9E,gEAAgE;AAChE,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAElF,MAAM,cAAc,GAAG;IACrB,OAAO,EAAE,sBAAsB;IAC/B,cAAc,EAAE,IAAI;IACpB,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC;IACxB,KAAK,EAAE,KAAK;CACb,CAAC;AAEF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAE1D,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,aAAa,CAAC,SAAS,EAAE,CAAC;IAC1B,eAAe,CAAC,SAAS,EAAE,CAAC;IAC5B,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,0CAA0C,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,cAAc;AACtH,CAAC,CAAC,CAAC;AAEH,0CAA0C;AAC1C,IAAI,OAA4B,CAAC;AACjC,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,IAAI,OAAO,EAAE;QACX,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;KACvB;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;IAC/C,cAAc,CAAC;QACb,aAAa,EAAE,OAAO;QACtB,aAAa,EAAE,OAAO;KACvB,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACrF,MAAM,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACzF,MAAM,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACrF,MAAM,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;AAC3F,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;IAC5B,cAAc,CAAC;QACb,aAAa,EAAE,OAAO;KACvB,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACnF,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,CAAC,aAAa,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IACvF,aAAa,CAAC,SAAS,EAAE,CAAC;IAE1B,kBAAkB;IAClB,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACnF,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,CAAC,aAAa,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IACrF,aAAa,CAAC,SAAS,EAAE,CAAC;IAE1B,2CAA2C;IAC3C,MAAM,EAAE,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC7C,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACnF,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,CAAC,aAAa,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IACvF,aAAa,CAAC,SAAS,EAAE,CAAC;IAE1B,mCAAmC;IACnC,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,CAAC,aAAa,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IACvF,aAAa,CAAC,SAAS,EAAE,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;IAC9B,cAAc,CAAC;QACb,aAAa,EAAE,OAAO;KACvB,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,CAAC,aAAa,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAC7F,aAAa,CAAC,SAAS,EAAE,CAAC;IAE1B,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,CAAC,aAAa,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;AAC5F,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;AAC9D,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;IAC1E,cAAc,CAAC;QACb,aAAa,EAAE,OAAO;KACvB,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC1F,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC;AACH,IAAI,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACtC,cAAc,CAAC;QACb,cAAc,EAAE,mBAAmB;KACpC,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACtF,MAAM,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;AAC5F,CAAC,CAAC,CAAC;AACH,IAAI,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;IAC9C,cAAc,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,kBAAkB;KAChC,CAAC,CAAC;IACH,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAExD,MAAM,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1D,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,iCAAiC;IAC9D,MAAM,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAElF,MAAM,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1D,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,iCAAiC;IAC9D,MAAM,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAElF,MAAM,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,iCAAiC;IAC9D,MAAM,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChF,MAAM,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAClF,CAAC,CAAC,CAAC;AACH,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;IACjF,cAAc,CAAC;QACb,aAAa,EAAE,OAAO;QACtB,aAAa,EAAE,gBAAgB;QAC/B,aAAa,EAAE,gBAAgB;KAChC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAElF,iDAAiD;IACjD,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,UAA4B,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,2BAA2B,CAAC,CAAC;IACzE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,yCAAyC,CAAC,CAAC;IACzF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,yCAAyC,CAAC,CAAC;IAEzF,wCAAwC;IACxC,MAAM,CAAC,eAAe,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACjD,qEAAqE;IACrE,MAAM,CAAC,eAAe,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACnG,qEAAqE;IACrE,MAAM,CAAC,eAAe,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAElG,+BAA+B;IAC/B,MAAM,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,UAAU,CAAC,GAAG,EAAE;QACd,cAAc,CAAC;YACb,aAAa,EAAE,MAAM,CAAA;;;;OAIpB;YACD,aAAa,EAAE,OAAO;YACtB,0CAA0C,EAAE,OAAO;SACpD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,+CAA+C,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;OAStF,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;IAC/B,MAAM,aAAa,GAAG,CAAC,eAAe,CAAC,CAAC;IACxC,cAAc,CAAC;QACb,cAAc,EAAE,MAAM,CAAA;;KAErB;QACD,uBAAuB,EAAE,mBAAmB;KAC7C,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,YAAY;AAC/D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;IAClC,MAAM,gBAAgB,GAAG,CAAC,eAAe,CAAC,CAAC;IAC3C,cAAc,CAAC;QACb,cAAc,EAAE,MAAM,CAAA;;KAErB;QACD,uBAAuB,EAAE,mBAAmB;KAC7C,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,YAAY;AAClE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;IACrC,MAAM,mBAAmB,GAAG,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;IAC7D,cAAc,CAAC;QACb,cAAc,EAAE,MAAM,CAAA;;KAErB;QACD,uBAAuB,EAAE,mBAAmB;KAC7C,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,YAAY;AACrE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;IAC/B,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,MAAM,aAAa,GAAG,GAAG,IAAI,oBAAoB,CAAC;IAClD,cAAc,CAAC;QACb,CAAC,IAAI,IAAI,oBAAoB,CAAC,EAAE,MAAM,CAAA;;;mBAGvB,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC;;;KAGpD;QACD,aAAa,EAAE,MAAM,CAAA;;;KAGpB;KACF,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,EAAE,GAAG,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,YAAY;AAC/D,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-css-modules",
3
- "version": "0.6.0",
3
+ "version": "1.0.0",
4
4
  "description": "Creates .d.ts files from CSS Modules .css files",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -29,6 +29,7 @@
29
29
  "dependencies": {
30
30
  "@file-cache/core": "^1.1.3",
31
31
  "@file-cache/npm": "^1.1.3",
32
+ "await-lock": "^2.2.2",
32
33
  "camelcase": "^7.0.0",
33
34
  "chalk": "^5.0.1",
34
35
  "chokidar": "^3.5.3",
@@ -133,6 +133,12 @@ test('watches for changes in files', async () => {
133
133
  await writeFile(getFixturePath('/test/1.css'), '.a-2 {}');
134
134
  await waitForAsyncTask(500); // Wait until the file is written
135
135
  expect(await readFile(getFixturePath('/test/1.css.d.ts'), 'utf8')).toMatch(/a-2/);
136
+
137
+ await writeFile(getFixturePath('/test/2.css'), '.b {}');
138
+ await writeFile(getFixturePath('/test/3.css'), '.c {}');
139
+ await waitForAsyncTask(500); // Wait until the file is written
140
+ expect(await readFile(getFixturePath('/test/2.css.d.ts'), 'utf8')).toMatch(/b/);
141
+ expect(await readFile(getFixturePath('/test/3.css.d.ts'), 'utf8')).toMatch(/c/);
136
142
  });
137
143
  test('returns an error if the file fails to process in non-watch mode', async () => {
138
144
  createFixtures({
package/src/runner.ts CHANGED
@@ -3,6 +3,7 @@ import * as process from 'process';
3
3
  import * as util from 'util';
4
4
  import { createCache } from '@file-cache/core';
5
5
  import { createNpmPackageKey } from '@file-cache/npm';
6
+ import AwaitLock from 'await-lock';
6
7
  import chalk from 'chalk';
7
8
  import * as chokidar from 'chokidar';
8
9
  import _glob from 'glob';
@@ -82,6 +83,8 @@ type OverrideProp<T, K extends keyof T, V extends T[K]> = Omit<T, K> & { [P in K
82
83
  export async function run(options: OverrideProp<RunnerOptions, 'watch', true>): Promise<Watcher>;
83
84
  export async function run(options: RunnerOptions): Promise<void>;
84
85
  export async function run(options: RunnerOptions): Promise<Watcher | void> {
86
+ const lock = new AwaitLock.default();
87
+
85
88
  const cwd = options.cwd ?? process.cwd();
86
89
  const silent = options.silent ?? false;
87
90
  const resolver =
@@ -113,6 +116,9 @@ export async function run(options: RunnerOptions): Promise<Watcher | void> {
113
116
 
114
117
  async function processFile(filePath: string) {
115
118
  try {
119
+ // Locator#load cannot be called concurrently. Therefore, it takes a lock and waits.
120
+ await lock.acquireAsync();
121
+
116
122
  const result = await locator.load(filePath);
117
123
  await emitGeneratedFiles({
118
124
  filePath,
@@ -133,6 +139,8 @@ export async function run(options: RunnerOptions): Promise<Watcher | void> {
133
139
  console.error(chalk.red('[Error] ' + error));
134
140
  }
135
141
  throw error;
142
+ } finally {
143
+ lock.release();
136
144
  }
137
145
  }
138
146