@ttsc/unplugin 0.8.1 → 0.10.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.
@@ -1,31 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var Diff = require('diff-match-patch-es');
4
3
  var fs = require('node:fs');
4
+ var crypto = require('node:crypto');
5
+ var os = require('node:os');
5
6
  var path = require('node:path');
6
- var MagicString = require('magic-string');
7
7
  var ttsc = require('ttsc');
8
8
 
9
- function _interopNamespaceDefault(e) {
10
- var n = Object.create(null);
11
- if (e) {
12
- Object.keys(e).forEach(function (k) {
13
- if (k !== 'default') {
14
- var d = Object.getOwnPropertyDescriptor(e, k);
15
- Object.defineProperty(n, k, d.get ? d : {
16
- enumerable: true,
17
- get: function () { return e[k]; }
18
- });
19
- }
20
- });
21
- }
22
- n.default = e;
23
- return Object.freeze(n);
9
+ function createTtscTransformCache() {
10
+ return new Map();
24
11
  }
25
-
26
- var Diff__namespace = /*#__PURE__*/_interopNamespaceDefault(Diff);
27
-
28
- async function transformTtsc(id, source, options, aliases) {
12
+ async function transformTtsc(id, source, options, aliases, cache) {
29
13
  const clean = stripQuery(id);
30
14
  if (clean.includes("\0")) {
31
15
  return undefined;
@@ -38,104 +22,229 @@ async function transformTtsc(id, source, options, aliases) {
38
22
  const tsconfigDir = path.dirname(tsconfig);
39
23
  const baseUrl = resolveBaseUrl(tsconfigDir, options.compilerOptions);
40
24
  const aliasPaths = createAliasPaths(baseUrl, aliases);
41
- const configured = createTransformTsconfig({
25
+ const key = createTransformCacheKey({
42
26
  aliasPaths,
43
- baseUrl,
44
27
  compilerOptions: options.compilerOptions,
28
+ plugins: options.plugins,
45
29
  tsconfig,
46
30
  });
47
- try {
48
- const effectiveTsconfig = configured.path;
49
- const result = new ttsc.TtscCompiler({
50
- cwd: path.dirname(effectiveTsconfig),
31
+ let transformed = cache?.get(key);
32
+ if (transformed !== undefined) {
33
+ const cached = await transformed;
34
+ if (matchesCachedSource(cached, file, source)) {
35
+ reportSuccessDiagnostics(cached.result);
36
+ const code = selectTransformedSource({
37
+ file,
38
+ projectRoot: cached.projectRoot,
39
+ result: cached.result,
40
+ });
41
+ return createTransformResult(source, code);
42
+ }
43
+ cache?.delete(key);
44
+ transformed = undefined;
45
+ }
46
+ if (transformed === undefined) {
47
+ transformed = transformProject({
48
+ aliasPaths,
49
+ baseUrl,
50
+ compilerOptions: options.compilerOptions,
51
+ currentFile: file,
52
+ currentSource: source,
51
53
  plugins: options.plugins,
52
- tsconfig: effectiveTsconfig,
53
- }).transform();
54
- const code = selectTransformedSource({
55
- file,
56
- projectRoot: path.dirname(effectiveTsconfig),
57
- result,
54
+ tsconfig,
58
55
  });
59
- return createTransformResult(source, code, file);
60
- }
61
- finally {
62
- configured.dispose();
56
+ cache?.set(key, transformed);
63
57
  }
58
+ const { projectRoot, result } = await transformed;
59
+ reportSuccessDiagnostics(result);
60
+ const code = selectTransformedSource({ file, projectRoot, result });
61
+ return createTransformResult(source, code);
64
62
  }
65
63
  function stripQuery(id) {
66
64
  const query = id.search(/[?#]/);
67
- const clean = query === -1 ? id : id.slice(0, query);
68
- return clean.endsWith("?__rslib_entry__")
69
- ? clean.slice(0, -"?__rslib_entry__".length)
70
- : clean;
65
+ return query === -1 ? id : id.slice(0, query);
71
66
  }
72
67
  function isDeclarationFile(id) {
73
68
  return id.endsWith(".d.ts") || id.endsWith(".d.mts") || id.endsWith(".d.cts");
74
69
  }
75
- function createTransformResult(source, code, id) {
70
+ function createTransformResult(source, code) {
76
71
  if (source === code) {
77
72
  return undefined;
78
73
  }
79
- const magic = new MagicString(source);
80
- const diff = Diff__namespace.diff(source, code);
81
- Diff__namespace.diffCleanupSemantic(diff);
82
- let offset = 0;
83
- for (let index = 0; index < diff.length; index += 1) {
84
- const [type, text] = diff[index];
85
- if (type === 0) {
86
- offset += text.length;
87
- continue;
74
+ return { code };
75
+ }
76
+ function matchesCachedSource(cached, file, source) {
77
+ const currentKey = toProjectKey(cached.projectRoot, file);
78
+ const currentHashes = collectProjectInputHashes(cached.projectRoot);
79
+ currentHashes[currentKey] = hashText(source);
80
+ return sameHashes(cached.inputHashes, currentHashes);
81
+ }
82
+ function collectInputHashes(props) {
83
+ const hashes = collectProjectInputHashes(props.projectRoot);
84
+ if (props.result.type !== "exception") {
85
+ for (const key of Object.keys(props.result.typescript)) {
86
+ const file = path.resolve(props.projectRoot, key);
87
+ try {
88
+ hashes[key] = hashText(fs.readFileSync(file, "utf8"));
89
+ }
90
+ catch {
91
+ // A plugin may synthesize a virtual TypeScript file. It should not
92
+ // decide cache reuse for real source files.
93
+ }
88
94
  }
89
- if (type === 1) {
90
- magic.prependLeft(offset, text);
91
- continue;
95
+ }
96
+ hashes[toProjectKey(props.projectRoot, props.currentFile)] = hashText(props.currentSource);
97
+ return hashes;
98
+ }
99
+ function collectProjectInputHashes(projectRoot) {
100
+ const hashes = {};
101
+ for (const file of listProjectInputFiles(projectRoot)) {
102
+ try {
103
+ hashes[toProjectKey(projectRoot, file)] = hashText(fs.readFileSync(file));
92
104
  }
93
- const next = diff[index + 1];
94
- if (next?.[0] === 1) {
95
- magic.update(offset, offset + text.length, next[1]);
96
- index += 1;
105
+ catch {
106
+ // File watchers may observe a transform while another process is moving
107
+ // or deleting files. The missing key invalidates older cache entries.
97
108
  }
98
- else {
99
- magic.remove(offset, offset + text.length);
109
+ }
110
+ return hashes;
111
+ }
112
+ function listProjectInputFiles(root) {
113
+ const out = [];
114
+ const stack = [root];
115
+ while (stack.length !== 0) {
116
+ const current = stack.pop();
117
+ let entries;
118
+ try {
119
+ entries = fs.readdirSync(current, { withFileTypes: true });
120
+ }
121
+ catch {
122
+ continue;
123
+ }
124
+ for (const entry of entries) {
125
+ if (isIgnoredProjectDirectory(entry.name)) {
126
+ continue;
127
+ }
128
+ const file = path.join(current, entry.name);
129
+ if (entry.isDirectory()) {
130
+ stack.push(file);
131
+ }
132
+ else if (entry.isFile()) {
133
+ out.push(file);
134
+ }
100
135
  }
101
- offset += text.length;
102
136
  }
103
- if (!magic.hasChanged()) {
104
- return undefined;
137
+ out.sort();
138
+ return out;
139
+ }
140
+ function isIgnoredProjectDirectory(name) {
141
+ return (name === ".git" ||
142
+ name === ".ttsc" ||
143
+ name === ".cache" ||
144
+ name === ".next" ||
145
+ name === ".nuxt" ||
146
+ name === ".svelte-kit" ||
147
+ name === ".turbo" ||
148
+ name === ".vite" ||
149
+ name === "build" ||
150
+ name === "coverage" ||
151
+ name === "dist" ||
152
+ name === "node_modules" ||
153
+ name === "out" ||
154
+ name === "temp" ||
155
+ name === "tmp");
156
+ }
157
+ function sameHashes(left, right) {
158
+ const leftKeys = Object.keys(left);
159
+ const rightKeys = Object.keys(right);
160
+ if (leftKeys.length !== rightKeys.length) {
161
+ return false;
162
+ }
163
+ return leftKeys.every((key) => right[key] === left[key]);
164
+ }
165
+ function hashText(input) {
166
+ return crypto.createHash("sha256").update(input).digest("hex");
167
+ }
168
+ async function transformProject(props) {
169
+ const configured = createTransformTsconfig(props);
170
+ const projectRoot = path.dirname(props.tsconfig);
171
+ try {
172
+ const result = new ttsc.TtscCompiler({
173
+ cwd: projectRoot,
174
+ plugins: props.plugins,
175
+ projectRoot,
176
+ tsconfig: configured.path,
177
+ }).transform();
178
+ return {
179
+ inputHashes: collectInputHashes({
180
+ currentFile: props.currentFile,
181
+ currentSource: props.currentSource,
182
+ projectRoot,
183
+ result,
184
+ }),
185
+ projectRoot,
186
+ result,
187
+ };
188
+ }
189
+ finally {
190
+ configured.dispose();
105
191
  }
106
- return {
107
- code: magic.toString(),
108
- map: magic.generateMap({
109
- file: `${id}.map`,
110
- includeContent: true,
111
- source: id,
112
- }),
113
- };
114
192
  }
115
193
  function createTransformTsconfig(props) {
116
- const compilerOptions = {
194
+ const compilerOptions = normalizeCompilerOptionsForGeneratedTsconfig({
117
195
  ...props.compilerOptions,
118
196
  ...createAliasCompilerOptions(props),
119
- };
197
+ }, path.dirname(props.tsconfig));
120
198
  if (Object.keys(compilerOptions).length === 0) {
121
199
  return {
122
200
  path: props.tsconfig,
123
201
  dispose: () => undefined,
124
202
  };
125
203
  }
126
- const directory = path.dirname(props.tsconfig);
127
- const file = path.join(directory, `.ttsc-unplugin-${process.pid}-${Date.now()}-${Math.random()
128
- .toString(36)
129
- .slice(2)}.json`);
204
+ const directory = fs.mkdtempSync(path.join(os.tmpdir(), "ttsc-unplugin-"));
205
+ const file = path.join(directory, "tsconfig.json");
130
206
  fs.writeFileSync(file, JSON.stringify({
131
- extends: `./${path.basename(props.tsconfig)}`,
207
+ extends: normalizePath(props.tsconfig),
132
208
  compilerOptions,
133
209
  }, null, 2), "utf8");
134
210
  return {
135
211
  path: file,
136
- dispose: () => fs.rmSync(file, { force: true }),
212
+ dispose: () => fs.rmSync(directory, { force: true, recursive: true }),
137
213
  };
138
214
  }
215
+ function normalizeCompilerOptionsForGeneratedTsconfig(compilerOptions, tsconfigDir) {
216
+ const output = { ...compilerOptions };
217
+ for (const key of ["baseUrl", "declarationDir", "outDir", "rootDir"]) {
218
+ if (typeof output[key] === "string") {
219
+ output[key] = path.resolve(tsconfigDir, output[key]);
220
+ }
221
+ }
222
+ for (const key of ["rootDirs", "typeRoots"]) {
223
+ if (Array.isArray(output[key])) {
224
+ output[key] = output[key].map((entry) => typeof entry === "string" ? path.resolve(tsconfigDir, entry) : entry);
225
+ }
226
+ }
227
+ if (hasPaths(output.paths) && typeof output.baseUrl !== "string") {
228
+ output.baseUrl = tsconfigDir;
229
+ }
230
+ if (Array.isArray(output.plugins)) {
231
+ output.plugins = output.plugins.map((entry) => normalizePluginConfigForGeneratedTsconfig(entry, tsconfigDir));
232
+ }
233
+ return output;
234
+ }
235
+ function normalizePluginConfigForGeneratedTsconfig(entry, tsconfigDir) {
236
+ if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
237
+ return entry;
238
+ }
239
+ const output = { ...entry };
240
+ for (const key of ["config", "source", "transform"]) {
241
+ const value = output[key];
242
+ if (typeof value === "string" && isRelativeSpecifier(value)) {
243
+ output[key] = path.resolve(tsconfigDir, value);
244
+ }
245
+ }
246
+ return output;
247
+ }
139
248
  function createAliasCompilerOptions(props) {
140
249
  if (Object.keys(props.aliasPaths).length === 0) {
141
250
  return {};
@@ -148,6 +257,12 @@ function createAliasCompilerOptions(props) {
148
257
  },
149
258
  };
150
259
  }
260
+ function hasPaths(value) {
261
+ return (typeof value === "object" &&
262
+ value !== null &&
263
+ !Array.isArray(value) &&
264
+ Object.keys(value).length !== 0);
265
+ }
151
266
  function readPaths(value) {
152
267
  if (typeof value !== "object" || value === null || Array.isArray(value)) {
153
268
  return {};
@@ -207,12 +322,40 @@ function normalizeAliases(aliases) {
207
322
  }
208
323
  return [];
209
324
  }
325
+ function createTransformCacheKey(props) {
326
+ return stableStringify({
327
+ aliasPaths: props.aliasPaths,
328
+ compilerOptions: props.compilerOptions,
329
+ plugins: props.plugins,
330
+ tsconfig: path.resolve(props.tsconfig),
331
+ });
332
+ }
333
+ function stableStringify(value) {
334
+ if (Array.isArray(value)) {
335
+ return `[${value.map(stableStringify).join(",")}]`;
336
+ }
337
+ if (value && typeof value === "object") {
338
+ return `{${Object.entries(value)
339
+ .sort(([a], [b]) => a.localeCompare(b))
340
+ .map(([key, item]) => `${JSON.stringify(key)}:${stableStringify(item)}`)
341
+ .join(",")}}`;
342
+ }
343
+ return JSON.stringify(value);
344
+ }
345
+ function isRelativeSpecifier(value) {
346
+ return (value === "." ||
347
+ value === ".." ||
348
+ value.startsWith("./") ||
349
+ value.startsWith("../") ||
350
+ value.startsWith(".\\") ||
351
+ value.startsWith("..\\"));
352
+ }
210
353
  function isAlias(value) {
211
354
  return (typeof value === "object" &&
212
355
  value !== null &&
213
356
  "find" in value &&
214
357
  "replacement" in value &&
215
- (typeof value.find === "string" || value.find instanceof RegExp) &&
358
+ typeof value.find === "string" &&
216
359
  typeof value.replacement === "string");
217
360
  }
218
361
  function selectTransformedSource(props) {
@@ -234,6 +377,15 @@ function selectTransformedSource(props) {
234
377
  }
235
378
  throw new Error(`ttsc transform did not return output for ${props.file}`);
236
379
  }
380
+ function reportSuccessDiagnostics(result) {
381
+ if (result.type !== "success" || result.diagnostics === undefined) {
382
+ return;
383
+ }
384
+ const text = formatDiagnostics(result.diagnostics);
385
+ if (text.length !== 0) {
386
+ process.stderr.write(`${text}\n`);
387
+ }
388
+ }
237
389
  function formatDiagnostics(diagnostics) {
238
390
  if (diagnostics.length === 0) {
239
391
  return "ttsc transform failed";
@@ -290,6 +442,7 @@ function normalizePath(file) {
290
442
  }
291
443
 
292
444
  exports.createTransformResult = createTransformResult;
445
+ exports.createTtscTransformCache = createTtscTransformCache;
293
446
  exports.isDeclarationFile = isDeclarationFile;
294
447
  exports.stripQuery = stripQuery;
295
448
  exports.transformTtsc = transformTtsc;
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sources":["../../src/core/transform.ts"],"sourcesContent":[null],"names":["TtscCompiler","Diff"],"mappings":"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"}
1
+ {"version":3,"file":"transform.js","sources":["../../src/core/transform.ts"],"sourcesContent":[null],"names":["TtscCompiler"],"mappings":"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"}