Skip to content

Commit

Permalink
WOOP
Browse files Browse the repository at this point in the history
  • Loading branch information
nikku committed Feb 27, 2024
1 parent 9d2148c commit 71df398
Show file tree
Hide file tree
Showing 5 changed files with 138 additions and 104 deletions.
3 changes: 2 additions & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
test/fixtures
test/fixtures
dist
37 changes: 29 additions & 8 deletions lib/generate-types.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import path, { resolve } from 'node:path';
import path from 'node:path';

import ts from 'typescript';

Expand Down Expand Up @@ -53,13 +53,16 @@ export default function generateTypes(fileNames, options) {
}

const code = host._readFile(fileName);
const map = declarationMap && host._readFile(fileName + '.map');

let transformed;

if (names.has(path.resolve(fileName))) {
isVerbose(options, fileName) && console.debug('[generate-types] [pre]', fileName, code);

const map = declarationMap && host._readFile(fileName + '.map');

host._writeFile('dist/dbg/' + path.basename(fileName), code, true);

try {
transformed = preTransform(code, declarationMap && {
inputSourceMap: map,
Expand All @@ -68,8 +71,12 @@ export default function generateTypes(fileNames, options) {
sourceRoot
});

host._writeFile('dist/dbg/' + path.basename(fileName, '.js') + '__pre.js', transformed.code, true);

if (transformed.map) {
host.___cache[fileName + '___pre'] = JSON.stringify(transformed.map);

host._writeFile('dist/dbg/' + path.basename(fileName, '.js') + '__pre.js.map', JSON.stringify(transformed.map), true);
}

host.___cache[fileName] = transformed.code;
Expand Down Expand Up @@ -101,6 +108,11 @@ export default function generateTypes(fileNames, options) {
if ('originalFileName' in sourceFile) {
const originalFileName = sourceFile.originalFileName;

const map = JSON.parse(text);
map.sourcesContent = sourceFile.text.replace(/\\n/, '\n🅭').split(/🅭/);

host._writeFile('dist/dbg/' + path.basename(fileName, '.d.ts.map') + '__ts.d.ts.map', JSON.stringify(map), true);

host.___cache[originalFileName + '___ts'] = text;
}

Expand All @@ -109,6 +121,8 @@ export default function generateTypes(fileNames, options) {

if (fileName.endsWith('.d.ts')) {

host._writeFile('dist/dbg/' + path.basename(fileName, '.d.ts') + '__ts.d.ts', text, true);

isVerbose(options, fileName) && console.debug('[generate-types] [post]', fileName, text);

try {
Expand All @@ -121,7 +135,10 @@ export default function generateTypes(fileNames, options) {
sourceRoot
});

host._writeFile('dist/dbg/' + path.basename(fileName, '.d.ts') + '__post.d.ts', transformed.code, true);

if (transformed.map) {
host._writeFile('dist/dbg/' + path.basename(fileName, '.d.ts') + '__post.d.ts.map', JSON.stringify(transformed.map), true);

const sourceMap_pre = JSON.parse(sourceMap_pre_json);
const sourceMap_ts = JSON.parse(sourceMap_ts_json);
Expand All @@ -132,13 +149,13 @@ export default function generateTypes(fileNames, options) {
// fix file references
sourceMap_ts.file = sourceMap_post.sources[0];

sourceMap_ts.sources = [ resolve(sourceMap_pre.file) ];
sourceMap_post.sources = [ resolve(sourceMap_ts.file) ];
sourceMap_pre.sources = [ resolve(sourceMap_pre.sources[0]) ];
sourceMap_ts.sources = [ path.resolve(sourceMap_pre.file) ];
sourceMap_post.sources = [ path.resolve(sourceMap_ts.file) ];
sourceMap_pre.sources = [ path.resolve(sourceMap_pre.sources[0]) ];

sourceMap_ts.file = resolve(sourceMap_ts.file);
sourceMap_post.file = resolve(sourceMap_post.file);
sourceMap_pre.file = resolve(sourceMap_pre.file);
sourceMap_ts.file = path.resolve(sourceMap_ts.file);
sourceMap_post.file = path.resolve(sourceMap_post.file);
sourceMap_pre.file = path.resolve(sourceMap_pre.file);

// @ts-expect-error
const mappedSourceMap = remapping([
Expand All @@ -159,6 +176,8 @@ export default function generateTypes(fileNames, options) {
sourceMap_combined: mappedSourceMap
});

host._writeFile('dist/dbg/' + path.basename(fileName) + '.map', JSON.stringify(mappedSourceMap), writeByteOrderMark);

host._writeFile(fileName + '.map', JSON.stringify(mappedSourceMap), writeByteOrderMark, onError, sourceFiles, ...args);
}

Expand All @@ -170,6 +189,8 @@ export default function generateTypes(fileNames, options) {
isVerbose(options, fileName) && console.debug('[generate-types] [post] [generated]', fileName, transformed.code);
}

host._writeFile('dist/dbg/' + path.basename(fileName), transformed?.code || text, writeByteOrderMark);

host._writeFile(fileName, transformed?.code || text, writeByteOrderMark, onError, sourceFiles, ...args);
};

Expand Down

0 comments on commit 71df398

Please sign in to comment.