happy-css-modules 3.1.0 → 3.2.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/cli.d.ts +6 -0
- package/dist/cli.js +127 -0
- package/dist/cli.js.map +1 -0
- package/dist/cli.test.d.ts +1 -0
- package/dist/cli.test.js +66 -0
- package/dist/cli.test.js.map +1 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -0
- package/dist/emitter/dts.d.ts +15 -0
- package/dist/emitter/dts.js +134 -0
- package/dist/emitter/dts.js.map +1 -0
- package/dist/emitter/dts.test.d.ts +1 -0
- package/dist/emitter/dts.test.js +206 -0
- package/dist/emitter/dts.test.js.map +1 -0
- package/dist/emitter/file-system.d.ts +6 -0
- package/dist/emitter/file-system.js +26 -0
- package/dist/emitter/file-system.js.map +1 -0
- package/dist/emitter/file-system.test.d.ts +1 -0
- package/dist/emitter/file-system.test.js +34 -0
- package/dist/emitter/file-system.test.js.map +1 -0
- package/dist/emitter/index.d.ts +42 -0
- package/dist/emitter/index.js +49 -0
- package/dist/emitter/index.js.map +1 -0
- package/dist/emitter/index.test.d.ts +1 -0
- package/dist/emitter/index.test.js +76 -0
- package/dist/emitter/index.test.js.map +1 -0
- package/dist/emitter/source-map.d.ts +10 -0
- package/dist/emitter/source-map.js +17 -0
- package/dist/emitter/source-map.js.map +1 -0
- package/dist/emitter/source-map.test.d.ts +1 -0
- package/dist/emitter/source-map.test.js +13 -0
- package/dist/emitter/source-map.test.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/integration-test/go-to-definition.test.d.ts +1 -0
- package/dist/integration-test/go-to-definition.test.js +334 -0
- package/dist/integration-test/go-to-definition.test.js.map +1 -0
- package/dist/locator/index.d.ts +46 -0
- package/dist/locator/index.js +173 -0
- package/dist/locator/index.js.map +1 -0
- package/dist/locator/index.test.d.ts +1 -0
- package/dist/locator/index.test.js +393 -0
- package/dist/locator/index.test.js.map +1 -0
- package/dist/locator/postcss.d.ts +91 -0
- package/dist/locator/postcss.js +241 -0
- package/dist/locator/postcss.js.map +1 -0
- package/dist/locator/postcss.test.d.ts +1 -0
- package/dist/locator/postcss.test.js +256 -0
- package/dist/locator/postcss.test.js.map +1 -0
- package/dist/logger.d.ts +9 -0
- package/dist/logger.js +28 -0
- package/dist/logger.js.map +1 -0
- package/dist/regression-test/issue-168.test.d.ts +1 -0
- package/dist/regression-test/issue-168.test.js +30 -0
- package/dist/regression-test/issue-168.test.js.map +1 -0
- package/dist/resolver/index.d.ts +22 -0
- package/dist/resolver/index.js +44 -0
- package/dist/resolver/index.js.map +1 -0
- package/dist/resolver/index.test.d.ts +1 -0
- package/dist/resolver/index.test.js +16 -0
- package/dist/resolver/index.test.js.map +1 -0
- package/dist/resolver/node-resolver.d.ts +2 -0
- package/dist/resolver/node-resolver.js +6 -0
- package/dist/resolver/node-resolver.js.map +1 -0
- package/dist/resolver/node-resolver.test.d.ts +1 -0
- package/dist/resolver/node-resolver.test.js +25 -0
- package/dist/resolver/node-resolver.test.js.map +1 -0
- package/dist/resolver/relative-resolver.d.ts +2 -0
- package/dist/resolver/relative-resolver.js +5 -0
- package/dist/resolver/relative-resolver.js.map +1 -0
- package/dist/resolver/relative-resolver.test.d.ts +1 -0
- package/dist/resolver/relative-resolver.test.js +12 -0
- package/dist/resolver/relative-resolver.test.js.map +1 -0
- package/dist/resolver/webpack-resolver.d.ts +24 -0
- package/dist/resolver/webpack-resolver.js +91 -0
- package/dist/resolver/webpack-resolver.js.map +1 -0
- package/dist/resolver/webpack-resolver.test.d.ts +1 -0
- package/dist/resolver/webpack-resolver.test.js +89 -0
- package/dist/resolver/webpack-resolver.test.js.map +1 -0
- package/dist/runner.d.ts +78 -0
- package/dist/runner.js +122 -0
- package/dist/runner.js.map +1 -0
- package/dist/runner.test.d.ts +1 -0
- package/dist/runner.test.js +304 -0
- package/dist/runner.test.js.map +1 -0
- package/dist/test-util/jest/resolver.cjs +31 -0
- package/dist/test-util/jest/resolver.cjs.map +1 -0
- package/dist/test-util/jest/resolver.d.cts +16 -0
- package/dist/test-util/tsserver.d.ts +31 -0
- package/dist/test-util/tsserver.js +112 -0
- package/dist/test-util/tsserver.js.map +1 -0
- package/dist/test-util/util.d.ts +29 -0
- package/dist/test-util/util.js +85 -0
- package/dist/test-util/util.js.map +1 -0
- package/dist/transformer/index.d.ts +30 -0
- package/dist/transformer/index.js +25 -0
- package/dist/transformer/index.js.map +1 -0
- package/dist/transformer/index.test.d.ts +1 -0
- package/dist/transformer/index.test.js +66 -0
- package/dist/transformer/index.test.js.map +1 -0
- package/dist/transformer/less-transformer.d.ts +2 -0
- package/dist/transformer/less-transformer.js +45 -0
- package/dist/transformer/less-transformer.js.map +1 -0
- package/dist/transformer/less-transformer.test.d.ts +1 -0
- package/dist/transformer/less-transformer.test.js +134 -0
- package/dist/transformer/less-transformer.test.js.map +1 -0
- package/dist/transformer/postcss-transformer.d.ts +12 -0
- package/dist/transformer/postcss-transformer.js +32 -0
- package/dist/transformer/postcss-transformer.js.map +1 -0
- package/dist/transformer/postcss-transformer.test.d.ts +1 -0
- package/dist/transformer/postcss-transformer.test.js +178 -0
- package/dist/transformer/postcss-transformer.test.js.map +1 -0
- package/dist/transformer/scss-transformer.d.ts +2 -0
- package/dist/transformer/scss-transformer.js +40 -0
- package/dist/transformer/scss-transformer.js.map +1 -0
- package/dist/transformer/scss-transformer.test.d.ts +1 -0
- package/dist/transformer/scss-transformer.test.js +149 -0
- package/dist/transformer/scss-transformer.test.js.map +1 -0
- package/dist/util.d.ts +21 -0
- package/dist/util.js +72 -0
- package/dist/util.js.map +1 -0
- package/dist/util.test.d.ts +1 -0
- package/dist/util.test.js +74 -0
- package/dist/util.test.js.map +1 -0
- package/package.json +1 -1
- package/src/cli.ts +6 -0
- package/src/emitter/dts.test.ts +7 -4
- package/src/emitter/dts.ts +22 -10
- package/src/emitter/index.test.ts +10 -0
- package/src/emitter/index.ts +17 -4
- package/src/emitter/source-map.test.ts +4 -4
- package/src/emitter/source-map.ts +8 -2
- package/src/runner.test.ts +23 -0
- package/src/runner.ts +6 -0
- package/src/library/README.md +0 -3
- package/src/library/source-map/index.ts +0 -26
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { mkdir, readFile, writeFile } from 'fs/promises';
|
|
2
|
+
import { dirname } from 'path';
|
|
3
|
+
import { isSystemError } from '../util.js';
|
|
4
|
+
/**
|
|
5
|
+
* Write a file if it doesn't exist or is changed.
|
|
6
|
+
* @param filePath The file path.
|
|
7
|
+
* @param newContent The new content of the file.
|
|
8
|
+
*/
|
|
9
|
+
export async function writeFileIfChanged(filePath, newContent) {
|
|
10
|
+
try {
|
|
11
|
+
const content = await readFile(filePath, 'utf8');
|
|
12
|
+
if (content !== newContent) {
|
|
13
|
+
await writeFile(filePath, newContent, 'utf8');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
if (isSystemError(e) && e.code === 'ENOENT') {
|
|
18
|
+
await mkdir(dirname(filePath), { recursive: true }); // if directory doesn't exist, create it
|
|
19
|
+
await writeFile(filePath, newContent, 'utf8');
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
throw e;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=file-system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/emitter/file-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAgB,EAAE,UAAkB;IAC3E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,MAAM,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,wCAAwC;YAC7F,MAAM,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { readFile, rm, stat } from 'fs/promises';
|
|
2
|
+
import { createFixtures, getFixturePath } from '../test-util/util.js';
|
|
3
|
+
import { writeFileIfChanged } from './file-system.js';
|
|
4
|
+
const TEST_FILE_PATH = getFixturePath('/test.txt');
|
|
5
|
+
const TEST_NESTED_FILE_PATH = getFixturePath('/dir/test.txt');
|
|
6
|
+
const OLD_CONTENT = 'old';
|
|
7
|
+
const NEW_CONTENT = 'new';
|
|
8
|
+
beforeEach(async () => {
|
|
9
|
+
createFixtures({});
|
|
10
|
+
await writeFileIfChanged(TEST_FILE_PATH, OLD_CONTENT);
|
|
11
|
+
});
|
|
12
|
+
describe('writeFileIfChanged', () => {
|
|
13
|
+
test('should write file if changed', async () => {
|
|
14
|
+
await writeFileIfChanged(TEST_FILE_PATH, NEW_CONTENT);
|
|
15
|
+
expect(await readFile(TEST_FILE_PATH, 'utf8')).toBe(NEW_CONTENT);
|
|
16
|
+
});
|
|
17
|
+
test('should not write file if not changed', async () => {
|
|
18
|
+
const oldStat = await stat(TEST_FILE_PATH);
|
|
19
|
+
await writeFileIfChanged(TEST_FILE_PATH, OLD_CONTENT);
|
|
20
|
+
const newStat = await stat(TEST_FILE_PATH);
|
|
21
|
+
expect(oldStat.mtimeMs).toBe(newStat.mtimeMs);
|
|
22
|
+
});
|
|
23
|
+
test("should create new file if it doesn't exist", async () => {
|
|
24
|
+
await rm(TEST_FILE_PATH);
|
|
25
|
+
await writeFileIfChanged(TEST_FILE_PATH, NEW_CONTENT);
|
|
26
|
+
expect(await readFile(TEST_FILE_PATH, 'utf8')).toBe(NEW_CONTENT);
|
|
27
|
+
});
|
|
28
|
+
test('should write file in nested directories', async () => {
|
|
29
|
+
await writeFileIfChanged(TEST_NESTED_FILE_PATH, NEW_CONTENT);
|
|
30
|
+
expect(await readFile(TEST_NESTED_FILE_PATH, 'utf8')).toBe(NEW_CONTENT);
|
|
31
|
+
await writeFileIfChanged(TEST_NESTED_FILE_PATH, NEW_CONTENT);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=file-system.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-system.test.js","sourceRoot":"","sources":["../../src/emitter/file-system.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;AACnD,MAAM,qBAAqB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;AAC9D,MAAM,WAAW,GAAG,KAAK,CAAC;AAC1B,MAAM,WAAW,GAAG,KAAK,CAAC;AAE1B,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,cAAc,CAAC,EAAE,CAAC,CAAC;IACnB,MAAM,kBAAkB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,kBAAkB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3C,MAAM,kBAAkB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC;QACzB,MAAM,kBAAkB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,kBAAkB,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,kBAAkB,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type Token } from '../locator/index.js';
|
|
2
|
+
import { type LocalsConvention } from '../runner.js';
|
|
3
|
+
export declare function getRelativePath(fromFilePath: string, toFilePath: string): string;
|
|
4
|
+
export declare function isSubDirectoryFile(fromDirectory: string, toFilePath: string): boolean;
|
|
5
|
+
export type DtsFormatOptions = {
|
|
6
|
+
/**
|
|
7
|
+
* Style of exported class names.
|
|
8
|
+
* @default undefined
|
|
9
|
+
*/
|
|
10
|
+
localsConvention?: LocalsConvention;
|
|
11
|
+
/**
|
|
12
|
+
* Generate `.d.css.ts` instead of `.css.d.ts`.
|
|
13
|
+
* @default false
|
|
14
|
+
*/
|
|
15
|
+
arbitraryExtensions?: boolean | undefined;
|
|
16
|
+
};
|
|
17
|
+
/** The options for emitter. */
|
|
18
|
+
export type EmitterOptions = {
|
|
19
|
+
/** The path to the source file (i.e. `/dir/foo.css`). It is absolute. */
|
|
20
|
+
filePath: string;
|
|
21
|
+
/** The tokens exported by the source file. */
|
|
22
|
+
tokens: Token[];
|
|
23
|
+
/** Whether to output declaration map (i.e. `/dir/foo.css.d.ts.map`) or not. */
|
|
24
|
+
emitDeclarationMap: boolean | undefined;
|
|
25
|
+
/** The options for formatting the type definition. */
|
|
26
|
+
dtsFormatOptions: DtsFormatOptions | undefined;
|
|
27
|
+
/** Whether the file is from an external library or not. */
|
|
28
|
+
isExternalFile: (filePath: string) => boolean;
|
|
29
|
+
/** Output directory for generated files. */
|
|
30
|
+
outDir: string | undefined;
|
|
31
|
+
/** Current working directory. */
|
|
32
|
+
cwd: string;
|
|
33
|
+
};
|
|
34
|
+
export declare function emitGeneratedFiles({ filePath, tokens, emitDeclarationMap, dtsFormatOptions, isExternalFile, outDir, cwd, }: EmitterOptions): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Returns true if .d.ts (and .d.ts.map) files are generated for the given file.
|
|
37
|
+
*/
|
|
38
|
+
export declare function isGeneratedFilesExist(filePath: string, emitDeclarationMap: boolean | undefined, arbitraryExtensions: boolean, outDir: string | undefined, cwd: string): Promise<boolean>;
|
|
39
|
+
export type OutDirOptions = {
|
|
40
|
+
outDir: string | undefined;
|
|
41
|
+
cwd: string;
|
|
42
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { dirname, isAbsolute, relative } from 'path';
|
|
2
|
+
import { DEFAULT_ARBITRARY_EXTENSIONS } from '../config.js';
|
|
3
|
+
import { exists } from '../util.js';
|
|
4
|
+
import { generateDtsContentWithSourceMap, getDtsFilePath } from './dts.js';
|
|
5
|
+
import { writeFileIfChanged } from './file-system.js';
|
|
6
|
+
import { generateSourceMappingURLComment, getSourceMapFilePath } from './source-map.js';
|
|
7
|
+
export function getRelativePath(fromFilePath, toFilePath) {
|
|
8
|
+
const resolved = relative(dirname(fromFilePath), toFilePath);
|
|
9
|
+
if (resolved.startsWith('..')) {
|
|
10
|
+
return resolved;
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
return `./${resolved}`;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function isSubDirectoryFile(fromDirectory, toFilePath) {
|
|
17
|
+
return isAbsolute(toFilePath) && toFilePath.startsWith(fromDirectory);
|
|
18
|
+
}
|
|
19
|
+
export async function emitGeneratedFiles({ filePath, tokens, emitDeclarationMap, dtsFormatOptions, isExternalFile, outDir, cwd, }) {
|
|
20
|
+
const arbitraryExtensions = dtsFormatOptions?.arbitraryExtensions ?? DEFAULT_ARBITRARY_EXTENSIONS;
|
|
21
|
+
const dtsFilePath = getDtsFilePath(filePath, arbitraryExtensions, { outDir, cwd });
|
|
22
|
+
const sourceMapFilePath = getSourceMapFilePath(filePath, arbitraryExtensions, { outDir, cwd });
|
|
23
|
+
const { dtsContent, sourceMap } = generateDtsContentWithSourceMap(filePath, dtsFilePath, sourceMapFilePath, tokens, dtsFormatOptions, isExternalFile);
|
|
24
|
+
if (emitDeclarationMap) {
|
|
25
|
+
const sourceMappingURLComment = generateSourceMappingURLComment(dtsFilePath, sourceMapFilePath);
|
|
26
|
+
await writeFileIfChanged(dtsFilePath, dtsContent + sourceMappingURLComment);
|
|
27
|
+
// NOTE: tsserver does not support inline declaration maps. Therefore, sourcemap files must be output.
|
|
28
|
+
// blocked by: https://github.com/microsoft/TypeScript/issues/38966
|
|
29
|
+
await writeFileIfChanged(sourceMapFilePath, sourceMap.toString());
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
await writeFileIfChanged(dtsFilePath, dtsContent);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Returns true if .d.ts (and .d.ts.map) files are generated for the given file.
|
|
37
|
+
*/
|
|
38
|
+
export async function isGeneratedFilesExist(filePath, emitDeclarationMap, arbitraryExtensions, outDir, cwd) {
|
|
39
|
+
const dtsFilePath = getDtsFilePath(filePath, arbitraryExtensions, { outDir, cwd });
|
|
40
|
+
const sourceMapFilePath = getSourceMapFilePath(filePath, arbitraryExtensions, { outDir, cwd });
|
|
41
|
+
if (emitDeclarationMap && !(await exists(sourceMapFilePath))) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
if (!(await exists(dtsFilePath))) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/emitter/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { readFile, stat } from 'fs/promises';
|
|
2
|
+
import { jest } from '@jest/globals';
|
|
3
|
+
import { createFixtures, exists, fakeToken, getFixturePath, waitForAsyncTask } from '../test-util/util.js';
|
|
4
|
+
import { emitGeneratedFiles, getRelativePath, isSubDirectoryFile } from './index.js';
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
6
|
+
const consoleLogSpy = jest.spyOn(console, 'log').mockImplementation(() => { });
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
consoleLogSpy.mockClear();
|
|
9
|
+
});
|
|
10
|
+
test('getRelativePath', () => {
|
|
11
|
+
expect(getRelativePath('/test/1.css.d.ts', '/test/1.css')).toBe('./1.css');
|
|
12
|
+
expect(getRelativePath('/test/1.css.d.ts', '/test/dir/1.css')).toBe('./dir/1.css');
|
|
13
|
+
expect(getRelativePath('/test/1.css.d.ts', '/1.css')).toBe('../1.css');
|
|
14
|
+
});
|
|
15
|
+
test('isSubDirectoryFile', () => {
|
|
16
|
+
expect(isSubDirectoryFile('/test', '/test/src/1.css')).toBe(true);
|
|
17
|
+
expect(isSubDirectoryFile('/test', '/test/dist/1.css')).toBe(true);
|
|
18
|
+
expect(isSubDirectoryFile('/test', '/1.css')).toBe(false);
|
|
19
|
+
});
|
|
20
|
+
describe('emitGeneratedFiles', () => {
|
|
21
|
+
const defaultArgs = {
|
|
22
|
+
filePath: getFixturePath('/test/1.css'),
|
|
23
|
+
tokens: [fakeToken({ name: 'foo', originalLocation: { start: { line: 1, column: 1 } } })],
|
|
24
|
+
emitDeclarationMap: true,
|
|
25
|
+
dtsFormatOptions: undefined,
|
|
26
|
+
cwd: getFixturePath('/test'),
|
|
27
|
+
isExternalFile: () => false,
|
|
28
|
+
outDir: undefined,
|
|
29
|
+
};
|
|
30
|
+
beforeEach(() => {
|
|
31
|
+
createFixtures({
|
|
32
|
+
'/test': {}, // empty directory
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
test('generates .d.ts and .d.ts.map', async () => {
|
|
36
|
+
await emitGeneratedFiles({ ...defaultArgs });
|
|
37
|
+
expect(await exists(getFixturePath('/test/1.css.d.ts'))).toBeTruthy();
|
|
38
|
+
// A link to the source map is embedded.
|
|
39
|
+
expect(await readFile(getFixturePath('/test/1.css.d.ts'), 'utf8')).toEqual(expect.stringContaining('//# sourceMappingURL=./1.css.d.ts.map'));
|
|
40
|
+
expect(await exists(getFixturePath('/test/1.css.d.ts.map'))).toBeTruthy();
|
|
41
|
+
});
|
|
42
|
+
test('generates only .d.ts and .d.ts.map if emitDeclarationMap is false', async () => {
|
|
43
|
+
await emitGeneratedFiles({ ...defaultArgs, emitDeclarationMap: false });
|
|
44
|
+
expect(await exists(getFixturePath('/test/1.css.d.ts'))).toBeTruthy();
|
|
45
|
+
// A link to the source map is not embedded.
|
|
46
|
+
expect(await readFile(getFixturePath('/test/1.css.d.ts'), 'utf8')).toEqual(expect.not.stringContaining('//# sourceMappingURL=1.css.d.ts.map'));
|
|
47
|
+
expect(await exists(getFixturePath('/test/1.css.d.ts.map'))).toBeFalsy();
|
|
48
|
+
});
|
|
49
|
+
test('skips writing to disk if the generated files are the same', async () => {
|
|
50
|
+
const tokens1 = [fakeToken({ name: 'foo', originalLocation: { start: { line: 1, column: 1 } } })];
|
|
51
|
+
await emitGeneratedFiles({ ...defaultArgs, tokens: tokens1 });
|
|
52
|
+
const mtimeForDts1 = (await stat(getFixturePath('/test/1.css.d.ts'))).mtime;
|
|
53
|
+
const mtimeForSourceMap1 = (await stat(getFixturePath('/test/1.css.d.ts.map'))).mtime;
|
|
54
|
+
await waitForAsyncTask(1); // so that mtime changes.
|
|
55
|
+
await emitGeneratedFiles({ ...defaultArgs, tokens: tokens1 });
|
|
56
|
+
const mtimeForDts2 = (await stat(getFixturePath('/test/1.css.d.ts'))).mtime;
|
|
57
|
+
const mtimeForSourceMap2 = (await stat(getFixturePath('/test/1.css.d.ts.map'))).mtime;
|
|
58
|
+
expect(mtimeForDts1).toEqual(mtimeForDts2); // skipped
|
|
59
|
+
expect(mtimeForSourceMap1).toEqual(mtimeForSourceMap2); // skipped
|
|
60
|
+
await waitForAsyncTask(1); // so that mtime changes.
|
|
61
|
+
const tokens2 = [fakeToken({ name: 'bar', originalLocation: { start: { line: 1, column: 1 } } })];
|
|
62
|
+
await emitGeneratedFiles({ ...defaultArgs, tokens: tokens2 });
|
|
63
|
+
const mtimeForDts3 = (await stat(getFixturePath('/test/1.css.d.ts'))).mtime;
|
|
64
|
+
const mtimeForSourceMap3 = (await stat(getFixturePath('/test/1.css.d.ts.map'))).mtime;
|
|
65
|
+
expect(mtimeForDts1).not.toEqual(mtimeForDts3); // not skipped
|
|
66
|
+
expect(mtimeForSourceMap1).not.toEqual(mtimeForSourceMap3); // not skipped
|
|
67
|
+
});
|
|
68
|
+
test('changes output directory by outDir', async () => {
|
|
69
|
+
await emitGeneratedFiles({ ...defaultArgs, outDir: 'dist' });
|
|
70
|
+
expect(await exists(getFixturePath('/test/dist/1.css.d.ts'))).toBeTruthy();
|
|
71
|
+
// A link to the source map is not embedded.
|
|
72
|
+
expect(await readFile(getFixturePath('/test/dist/1.css.d.ts'), 'utf8')).toEqual(expect.not.stringContaining('//# sourceMappingURL=1.css.d.ts.map'));
|
|
73
|
+
expect(await exists(getFixturePath('/test/dist/1.css.d.ts.map'))).toBeTruthy();
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/emitter/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { OutDirOptions } from './index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get .d.ts.map file path.
|
|
4
|
+
* @param filePath The path to the source file (i.e. `foo.css`). It is absolute.
|
|
5
|
+
* @param arbitraryExtensions Generate `.d.css.ts` instead of `.css.d.ts`.
|
|
6
|
+
* @param outDir Output directory for generated files.
|
|
7
|
+
* @returns The path to the .d.ts.map file. It is absolute.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getSourceMapFilePath(filePath: string, arbitraryExtensions: boolean, options: OutDirOptions | undefined): string;
|
|
10
|
+
export declare function generateSourceMappingURLComment(dtsFilePath: string, sourceMapFilePath: string): string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EOL } from 'os';
|
|
2
|
+
import { getDtsFilePath } from './dts.js';
|
|
3
|
+
import { getRelativePath } from './index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Get .d.ts.map file path.
|
|
6
|
+
* @param filePath The path to the source file (i.e. `foo.css`). It is absolute.
|
|
7
|
+
* @param arbitraryExtensions Generate `.d.css.ts` instead of `.css.d.ts`.
|
|
8
|
+
* @param outDir Output directory for generated files.
|
|
9
|
+
* @returns The path to the .d.ts.map file. It is absolute.
|
|
10
|
+
*/
|
|
11
|
+
export function getSourceMapFilePath(filePath, arbitraryExtensions, options) {
|
|
12
|
+
return `${getDtsFilePath(filePath, arbitraryExtensions, options)}.map`;
|
|
13
|
+
}
|
|
14
|
+
export function generateSourceMappingURLComment(dtsFilePath, sourceMapFilePath) {
|
|
15
|
+
return `//# sourceMappingURL=${getRelativePath(dtsFilePath, sourceMapFilePath)}${EOL}`;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=source-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-map.js","sourceRoot":"","sources":["../../src/emitter/source-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,mBAA4B,EAC5B,OAAkC;IAElC,OAAO,GAAG,cAAc,CAAC,QAAQ,EAAE,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,WAAmB,EAAE,iBAAyB;IAC5F,OAAO,wBAAwB,eAAe,CAAC,WAAW,EAAE,iBAAiB,CAAC,GAAG,GAAG,EAAE,CAAC;AACzF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EOL } from 'os';
|
|
2
|
+
import { getSourceMapFilePath, generateSourceMappingURLComment } from './source-map.js';
|
|
3
|
+
test('getSourceMapFilePath', () => {
|
|
4
|
+
expect(getSourceMapFilePath('/app/src/dir/1.css', false, undefined)).toBe('/app/src/dir/1.css.d.ts.map');
|
|
5
|
+
expect(getSourceMapFilePath('/app/src/dir/1.scss', false, undefined)).toBe('/app/src/dir/1.scss.d.ts.map');
|
|
6
|
+
expect(getSourceMapFilePath('/app/src/dir/1.css', true, undefined)).toBe('/app/src/dir/1.d.css.ts.map');
|
|
7
|
+
expect(getSourceMapFilePath('/app/src/dir/1.scss', true, undefined)).toBe('/app/src/dir/1.d.scss.ts.map');
|
|
8
|
+
});
|
|
9
|
+
test('generateSourceMappingURLComment', () => {
|
|
10
|
+
expect(generateSourceMappingURLComment('/app/src/dir/1.css.d.ts', '/app/src/dir/1.css.d.ts.map')).toBe(`//# sourceMappingURL=./1.css.d.ts.map${EOL}`);
|
|
11
|
+
expect(generateSourceMappingURLComment('/app/src/dir1/1.css.d.ts', '/app/src/dir2/1.css.d.ts.map')).toBe(`//# sourceMappingURL=../dir2/1.css.d.ts.map${EOL}`);
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=source-map.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-map.test.js","sourceRoot":"","sources":["../../src/emitter/source-map.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAExF,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAChC,MAAM,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACzG,MAAM,CAAC,oBAAoB,CAAC,qBAAqB,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3G,MAAM,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACxG,MAAM,CAAC,oBAAoB,CAAC,qBAAqB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;AAC5G,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC3C,MAAM,CAAC,+BAA+B,CAAC,yBAAyB,EAAE,6BAA6B,CAAC,CAAC,CAAC,IAAI,CACpG,wCAAwC,GAAG,EAAE,CAC9C,CAAC;IACF,MAAM,CAAC,+BAA+B,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAC,CAAC,IAAI,CACtG,8CAA8C,GAAG,EAAE,CACpD,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { parseArgv } from './cli.js';
|
|
2
|
+
export { run, type LocalsConvention } from './runner.js';
|
|
3
|
+
export { type Transformer, type TransformerOptions, type TransformResult, createDefaultTransformer, } from './transformer/index.js';
|
|
4
|
+
export { type Resolver, type ResolverOptions, createDefaultResolver } from './resolver/index.js';
|
|
5
|
+
export { Locator, type LocatorOptions, type LoadResult, type Token, type Location } from './locator/index.js';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { parseArgv } from './cli.js';
|
|
2
|
+
export { run } from './runner.js';
|
|
3
|
+
export { createDefaultTransformer, } from './transformer/index.js';
|
|
4
|
+
export { createDefaultResolver } from './resolver/index.js';
|
|
5
|
+
export { Locator } from './locator/index.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,GAAG,EAAyB,MAAM,aAAa,CAAC;AACzD,OAAO,EAIL,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAuC,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,OAAO,EAAmE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|