diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2022-02-27 11:07:39 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-27 11:07:39 +0900 |
| commit | d071d18dd7a394298d454d4ef6c5ca885164dd47 (patch) | |
| tree | 1de916def26c5e6a672e2e8efe5c842bd410fd0e /packages/backend/test/loader.js | |
| parent | fix: better language settings (diff) | |
| download | misskey-d071d18dd7a394298d454d4ef6c5ca885164dd47.tar.gz misskey-d071d18dd7a394298d454d4ef6c5ca885164dd47.tar.bz2 misskey-d071d18dd7a394298d454d4ef6c5ca885164dd47.zip | |
refactor: Use ESM (#8358)
* wip
* wip
* fix
* clean up
* Update tsconfig.json
* Update activitypub.ts
* wip
Diffstat (limited to 'packages/backend/test/loader.js')
| -rw-r--r-- | packages/backend/test/loader.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/packages/backend/test/loader.js b/packages/backend/test/loader.js new file mode 100644 index 0000000000..016f32f1a8 --- /dev/null +++ b/packages/backend/test/loader.js @@ -0,0 +1,37 @@ +import path from 'path' +import typescript from 'typescript' +import { createMatchPath } from 'tsconfig-paths' +import { resolve as BaseResolve, getFormat, transformSource } from 'ts-node/esm' + +const { readConfigFile, parseJsonConfigFileContent, sys } = typescript + +const __dirname = path.dirname(new URL(import.meta.url).pathname) + +const configFile = readConfigFile('./test/tsconfig.json', sys.readFile) +if (typeof configFile.error !== 'undefined') { + throw new Error(`Failed to load tsconfig: ${configFile.error}`) +} + +const { options } = parseJsonConfigFileContent( + configFile.config, + { + fileExists: sys.fileExists, + readFile: sys.readFile, + readDirectory: sys.readDirectory, + useCaseSensitiveFileNames: true, + }, + __dirname +) + +export { getFormat, transformSource } // こいつらはそのまま使ってほしいので re-export する + +const matchPath = createMatchPath(options.baseUrl, options.paths) + +export async function resolve(specifier, context, defaultResolve) { + const matchedSpecifier = matchPath(specifier.replace('.js', '.ts')) + return BaseResolve( // ts-node/esm の resolve に tsconfig-paths で解決したパスを渡す + matchedSpecifier ? `${matchedSpecifier}.ts` : specifier, + context, + defaultResolve + ) +} |