@css-modules-kit/core 0.0.4 → 0.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.
- package/dist/file.d.ts +4 -0
- package/dist/file.d.ts.map +1 -1
- package/dist/file.js +15 -0
- package/dist/file.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/util.d.ts +1 -0
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +17 -0
- package/dist/util.js.map +1 -1
- package/package.json +1 -1
- package/src/file.ts +17 -0
- package/src/index.ts +2 -0
- package/src/util.ts +18 -0
package/dist/file.d.ts
CHANGED
|
@@ -6,6 +6,10 @@ export declare function findComponentFile(cssModuleFileName: string, readFile: (
|
|
|
6
6
|
fileName: string;
|
|
7
7
|
text: string;
|
|
8
8
|
} | undefined>;
|
|
9
|
+
export declare function findComponentFileSync(cssModuleFileName: string, readFileSync: (path: string) => string): {
|
|
10
|
+
fileName: string;
|
|
11
|
+
text: string;
|
|
12
|
+
} | undefined;
|
|
9
13
|
export type MatchesPattern = (fileName: string) => boolean;
|
|
10
14
|
/**
|
|
11
15
|
* Create a function that checks whether the given file name matches the pattern.
|
package/dist/file.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAGlD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG7D;AAED,wBAAsB,iBAAiB,CACrC,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAC1C,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAazD;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,cAAc,CAwBxG;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,EAAE,CAOrH"}
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAGlD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG7D;AAED,wBAAsB,iBAAiB,CACrC,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAC1C,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAazD;AAED,wBAAgB,qBAAqB,CACnC,iBAAiB,EAAE,MAAM,EACzB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GACrC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAYhD;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,cAAc,CAwBxG;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,EAAE,CAOrH"}
|
package/dist/file.js
CHANGED
|
@@ -8,6 +8,7 @@ exports.isCSSModuleFile = isCSSModuleFile;
|
|
|
8
8
|
exports.getCssModuleFileName = getCssModuleFileName;
|
|
9
9
|
exports.isComponentFileName = isComponentFileName;
|
|
10
10
|
exports.findComponentFile = findComponentFile;
|
|
11
|
+
exports.findComponentFileSync = findComponentFileSync;
|
|
11
12
|
exports.createMatchesPattern = createMatchesPattern;
|
|
12
13
|
exports.getFileNamesByPattern = getFileNamesByPattern;
|
|
13
14
|
const typescript_1 = __importDefault(require("typescript"));
|
|
@@ -40,6 +41,20 @@ async function findComponentFile(cssModuleFileName, readFile) {
|
|
|
40
41
|
}
|
|
41
42
|
return undefined;
|
|
42
43
|
}
|
|
44
|
+
function findComponentFileSync(cssModuleFileName, readFileSync) {
|
|
45
|
+
const pathWithoutExtension = cssModuleFileName.slice(0, -exports.CSS_MODULE_EXTENSION.length);
|
|
46
|
+
for (const path of COMPONENT_EXTENSIONS.map((ext) => pathWithoutExtension + ext)) {
|
|
47
|
+
try {
|
|
48
|
+
// TODO: Cache the result of readFile
|
|
49
|
+
const text = readFileSync(path);
|
|
50
|
+
return { fileName: path, text };
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
43
58
|
/**
|
|
44
59
|
* Create a function that checks whether the given file name matches the pattern.
|
|
45
60
|
* This does not access the file system.
|
package/dist/file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":";;;;;;AAMA,0CAEC;AAED,oDAGC;AAED,kDAGC;AAED,8CAgBC;AAUD,oDAwBC;AAKD,sDAOC;
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":";;;;;;AAMA,0CAEC;AAED,oDAGC;AAED,kDAGC;AAED,8CAgBC;AAED,sDAeC;AAUD,oDAwBC;AAKD,sDAOC;AAnGD,4DAA4B;AAC5B,uCAAwC;AAE3B,QAAA,oBAAoB,GAAG,aAAa,CAAC;AAClD,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9C,SAAgB,eAAe,CAAC,QAAgB;IAC9C,OAAO,QAAQ,CAAC,QAAQ,CAAC,4BAAoB,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,oBAAoB,CAAC,UAAkB;IACrD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAA,eAAK,EAAC,UAAU,CAAC,CAAC;IACxC,OAAO,IAAA,cAAI,EAAC,GAAG,EAAE,GAAG,IAAI,GAAG,4BAAoB,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,SAAgB,mBAAmB,CAAC,QAAgB;IAClD,4HAA4H;IAC5H,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,iBAAyB,EACzB,QAA2C;IAE3C,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,4BAAoB,CAAC,MAAM,CAAC,CAAC;IACtF,KAAK,MAAM,IAAI,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAoB,GAAG,GAAG,CAAC,EAAE,CAAC;QACjF,IAAI,CAAC;YACH,qCAAqC;YACrC,4CAA4C;YAC5C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,qBAAqB,CACnC,iBAAyB,EACzB,YAAsC;IAEtC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,4BAAoB,CAAC,MAAM,CAAC,CAAC;IACtF,KAAK,MAAM,IAAI,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAoB,GAAG,GAAG,CAAC,EAAE,CAAC;QACjF,IAAI,CAAC;YACH,qCAAqC;YACrC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAID;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,OAAmD;IACtF,iFAAiF;IACjF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC;IACxC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAwB,EAAE;QAClE,OAAO;YACL,KAAK,EAAE,CAAC,IAAI,CAAC;YACb,WAAW,EAAE,EAAE;SAChB,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CAAC,QAAgB,EAAE,EAAE;QAC1B,MAAM,gBAAgB,GAAG,oBAAE,CAAC,UAAU,CACpC,QAAQ,EACR,CAAC,4BAAoB,CAAC,EACtB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,QAAQ,EAChB,oBAAE,CAAC,GAAG,CAAC,yBAAyB,EAChC,EAAE,EAAE,kGAAkG;QACtG,SAAS,EACT,oBAAoB,EACpB,QAAQ,CACT,CAAC;QACF,OAAO,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,OAAqE;IACzG,qIAAqI;IAErI,iGAAiG;IACjG,wHAAwH;IAExH,OAAO,oBAAE,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,4BAAoB,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC5G,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,8 +7,9 @@ export { parseRule } from './parser/rule-parser.js';
|
|
|
7
7
|
export { type Diagnostic, type SemanticDiagnostic, type SyntacticDiagnostic, type DiagnosticCategory, type DiagnosticPosition, } from './diagnostic.js';
|
|
8
8
|
export { type CreateDtsOptions, createDts, STYLES_EXPORT_NAME } from './dts-creator.js';
|
|
9
9
|
export { createResolver, type Resolver } from './resolver.js';
|
|
10
|
-
export { CSS_MODULE_EXTENSION, getCssModuleFileName, isComponentFileName, isCSSModuleFile, findComponentFile, type MatchesPattern, createMatchesPattern, getFileNamesByPattern, } from './file.js';
|
|
10
|
+
export { CSS_MODULE_EXTENSION, getCssModuleFileName, isComponentFileName, isCSSModuleFile, findComponentFile, findComponentFileSync, type MatchesPattern, createMatchesPattern, getFileNamesByPattern, } from './file.js';
|
|
11
11
|
export { checkCSSModule } from './checker.js';
|
|
12
12
|
export { type ExportBuilder, createExportBuilder } from './export-builder.js';
|
|
13
13
|
export { join, resolve, relative, dirname, basename, parse, matchesGlob, isAbsolute } from './path.js';
|
|
14
|
+
export { findUsedTokenNames } from './util.js';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,GAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EACL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,KAAK,cAAc,EACnB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,GAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EACL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,cAAc,EACnB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isAbsolute = exports.matchesGlob = exports.parse = exports.basename = exports.dirname = exports.relative = exports.resolve = exports.join = exports.createExportBuilder = exports.checkCSSModule = exports.getFileNamesByPattern = exports.createMatchesPattern = exports.findComponentFile = exports.isCSSModuleFile = exports.isComponentFileName = exports.getCssModuleFileName = exports.CSS_MODULE_EXTENSION = exports.createResolver = exports.STYLES_EXPORT_NAME = exports.createDts = exports.parseRule = exports.parseCSSModule = exports.SystemError = exports.TsConfigFileNotFoundError = exports.readConfigFile = void 0;
|
|
3
|
+
exports.findUsedTokenNames = exports.isAbsolute = exports.matchesGlob = exports.parse = exports.basename = exports.dirname = exports.relative = exports.resolve = exports.join = exports.createExportBuilder = exports.checkCSSModule = exports.getFileNamesByPattern = exports.createMatchesPattern = exports.findComponentFileSync = exports.findComponentFile = exports.isCSSModuleFile = exports.isComponentFileName = exports.getCssModuleFileName = exports.CSS_MODULE_EXTENSION = exports.createResolver = exports.STYLES_EXPORT_NAME = exports.createDts = exports.parseRule = exports.parseCSSModule = exports.SystemError = exports.TsConfigFileNotFoundError = exports.readConfigFile = void 0;
|
|
4
4
|
var config_js_1 = require("./config.js");
|
|
5
5
|
Object.defineProperty(exports, "readConfigFile", { enumerable: true, get: function () { return config_js_1.readConfigFile; } });
|
|
6
6
|
var error_js_1 = require("./error.js");
|
|
@@ -21,6 +21,7 @@ Object.defineProperty(exports, "getCssModuleFileName", { enumerable: true, get:
|
|
|
21
21
|
Object.defineProperty(exports, "isComponentFileName", { enumerable: true, get: function () { return file_js_1.isComponentFileName; } });
|
|
22
22
|
Object.defineProperty(exports, "isCSSModuleFile", { enumerable: true, get: function () { return file_js_1.isCSSModuleFile; } });
|
|
23
23
|
Object.defineProperty(exports, "findComponentFile", { enumerable: true, get: function () { return file_js_1.findComponentFile; } });
|
|
24
|
+
Object.defineProperty(exports, "findComponentFileSync", { enumerable: true, get: function () { return file_js_1.findComponentFileSync; } });
|
|
24
25
|
Object.defineProperty(exports, "createMatchesPattern", { enumerable: true, get: function () { return file_js_1.createMatchesPattern; } });
|
|
25
26
|
Object.defineProperty(exports, "getFileNamesByPattern", { enumerable: true, get: function () { return file_js_1.getFileNamesByPattern; } });
|
|
26
27
|
var checker_js_1 = require("./checker.js");
|
|
@@ -36,4 +37,6 @@ Object.defineProperty(exports, "basename", { enumerable: true, get: function ()
|
|
|
36
37
|
Object.defineProperty(exports, "parse", { enumerable: true, get: function () { return path_js_1.parse; } });
|
|
37
38
|
Object.defineProperty(exports, "matchesGlob", { enumerable: true, get: function () { return path_js_1.matchesGlob; } });
|
|
38
39
|
Object.defineProperty(exports, "isAbsolute", { enumerable: true, get: function () { return path_js_1.isAbsolute; } });
|
|
40
|
+
var util_js_1 = require("./util.js");
|
|
41
|
+
Object.defineProperty(exports, "findUsedTokenNames", { enumerable: true, get: function () { return util_js_1.findUsedTokenNames; } });
|
|
39
42
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AACvB,uCAAoE;AAA3D,qHAAA,yBAAyB,OAAA;AAAE,uGAAA,WAAW,OAAA;AAC/C,sEAUuC;AATrC,sHAAA,cAAc,OAAA;AAWhB,0DAAoD;AAA3C,2GAAA,SAAS,OAAA;AAQlB,mDAAwF;AAAxD,2GAAA,SAAS,OAAA;AAAE,oHAAA,kBAAkB,OAAA;AAC7D,6CAA8D;AAArD,6GAAA,cAAc,OAAA;AACvB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AACvB,uCAAoE;AAA3D,qHAAA,yBAAyB,OAAA;AAAE,uGAAA,WAAW,OAAA;AAC/C,sEAUuC;AATrC,sHAAA,cAAc,OAAA;AAWhB,0DAAoD;AAA3C,2GAAA,SAAS,OAAA;AAQlB,mDAAwF;AAAxD,2GAAA,SAAS,OAAA;AAAE,oHAAA,kBAAkB,OAAA;AAC7D,6CAA8D;AAArD,6GAAA,cAAc,OAAA;AACvB,qCAUmB;AATjB,+GAAA,oBAAoB,OAAA;AACpB,+GAAA,oBAAoB,OAAA;AACpB,8GAAA,mBAAmB,OAAA;AACnB,0GAAA,eAAe,OAAA;AACf,4GAAA,iBAAiB,OAAA;AACjB,gHAAA,qBAAqB,OAAA;AAErB,+GAAA,oBAAoB,OAAA;AACpB,gHAAA,qBAAqB,OAAA;AAEvB,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AACvB,yDAA8E;AAAjD,wHAAA,mBAAmB,OAAA;AAChD,qCAAuG;AAA9F,+FAAA,IAAI,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,gGAAA,KAAK,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,qGAAA,UAAU,OAAA;AACnF,qCAA+C;AAAtC,6GAAA,kBAAkB,OAAA"}
|
package/dist/util.d.ts
CHANGED
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD"}
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAWD,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAOrE"}
|
package/dist/util.js
CHANGED
|
@@ -1,7 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isPosixRelativePath = isPosixRelativePath;
|
|
4
|
+
exports.findUsedTokenNames = findUsedTokenNames;
|
|
4
5
|
function isPosixRelativePath(path) {
|
|
5
6
|
return path.startsWith(`./`) || path.startsWith(`../`);
|
|
6
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* The syntax pattern for consuming tokens imported from CSS Module.
|
|
10
|
+
* @example `styles.foo`
|
|
11
|
+
*/
|
|
12
|
+
// TODO(#125): Support `styles['foo']` and `styles["foo"]`
|
|
13
|
+
// MEMO: The `xxxStyles.foo` format is not supported, because the css module file for current component file is usually imported with `styles`.
|
|
14
|
+
// It is sufficient to support only the `styles.foo` format.
|
|
15
|
+
const TOKEN_CONSUMER_PATTERN = /styles\.([$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*)/gu;
|
|
16
|
+
function findUsedTokenNames(componentText) {
|
|
17
|
+
const usedClassNames = new Set();
|
|
18
|
+
let match;
|
|
19
|
+
while ((match = TOKEN_CONSUMER_PATTERN.exec(componentText)) !== null) {
|
|
20
|
+
usedClassNames.add(match[1]);
|
|
21
|
+
}
|
|
22
|
+
return usedClassNames;
|
|
23
|
+
}
|
|
7
24
|
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAAA,kDAEC;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAAA,kDAEC;AAWD,gDAOC;AApBD,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,0DAA0D;AAC1D,+IAA+I;AAC/I,kEAAkE;AAClE,MAAM,sBAAsB,GAAG,6DAA6D,CAAC;AAE7F,SAAgB,kBAAkB,CAAC,aAAqB;IACtD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
package/package.json
CHANGED
package/src/file.ts
CHANGED
|
@@ -36,6 +36,23 @@ export async function findComponentFile(
|
|
|
36
36
|
return undefined;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
export function findComponentFileSync(
|
|
40
|
+
cssModuleFileName: string,
|
|
41
|
+
readFileSync: (path: string) => string,
|
|
42
|
+
): { fileName: string; text: string } | undefined {
|
|
43
|
+
const pathWithoutExtension = cssModuleFileName.slice(0, -CSS_MODULE_EXTENSION.length);
|
|
44
|
+
for (const path of COMPONENT_EXTENSIONS.map((ext) => pathWithoutExtension + ext)) {
|
|
45
|
+
try {
|
|
46
|
+
// TODO: Cache the result of readFile
|
|
47
|
+
const text = readFileSync(path);
|
|
48
|
+
return { fileName: path, text };
|
|
49
|
+
} catch {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
|
|
39
56
|
export type MatchesPattern = (fileName: string) => boolean;
|
|
40
57
|
|
|
41
58
|
/**
|
package/src/index.ts
CHANGED
|
@@ -29,6 +29,7 @@ export {
|
|
|
29
29
|
isComponentFileName,
|
|
30
30
|
isCSSModuleFile,
|
|
31
31
|
findComponentFile,
|
|
32
|
+
findComponentFileSync,
|
|
32
33
|
type MatchesPattern,
|
|
33
34
|
createMatchesPattern,
|
|
34
35
|
getFileNamesByPattern,
|
|
@@ -36,3 +37,4 @@ export {
|
|
|
36
37
|
export { checkCSSModule } from './checker.js';
|
|
37
38
|
export { type ExportBuilder, createExportBuilder } from './export-builder.js';
|
|
38
39
|
export { join, resolve, relative, dirname, basename, parse, matchesGlob, isAbsolute } from './path.js';
|
|
40
|
+
export { findUsedTokenNames } from './util.js';
|
package/src/util.ts
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
1
|
export function isPosixRelativePath(path: string): boolean {
|
|
2
2
|
return path.startsWith(`./`) || path.startsWith(`../`);
|
|
3
3
|
}
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* The syntax pattern for consuming tokens imported from CSS Module.
|
|
7
|
+
* @example `styles.foo`
|
|
8
|
+
*/
|
|
9
|
+
// TODO(#125): Support `styles['foo']` and `styles["foo"]`
|
|
10
|
+
// MEMO: The `xxxStyles.foo` format is not supported, because the css module file for current component file is usually imported with `styles`.
|
|
11
|
+
// It is sufficient to support only the `styles.foo` format.
|
|
12
|
+
const TOKEN_CONSUMER_PATTERN = /styles\.([$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*)/gu;
|
|
13
|
+
|
|
14
|
+
export function findUsedTokenNames(componentText: string): Set<string> {
|
|
15
|
+
const usedClassNames = new Set<string>();
|
|
16
|
+
let match;
|
|
17
|
+
while ((match = TOKEN_CONSUMER_PATTERN.exec(componentText)) !== null) {
|
|
18
|
+
usedClassNames.add(match[1]!);
|
|
19
|
+
}
|
|
20
|
+
return usedClassNames;
|
|
21
|
+
}
|