44 lines
1.3 KiB
JavaScript
Executable File
Vendored
44 lines
1.3 KiB
JavaScript
Executable File
Vendored
#!/usr/bin/env node
|
|
|
|
const {existsSync} = require(`fs`);
|
|
const {createRequire, register} = require(`module`);
|
|
const {resolve} = require(`path`);
|
|
const {pathToFileURL} = require(`url`);
|
|
|
|
const relPnpApiPath = "../../../../.pnp.cjs";
|
|
|
|
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
|
|
const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`);
|
|
const absRequire = createRequire(absPnpApiPath);
|
|
|
|
const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
|
|
const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
|
|
|
|
if (existsSync(absPnpApiPath)) {
|
|
if (!process.versions.pnp) {
|
|
// Setup the environment to be able to require oxlint
|
|
require(absPnpApiPath).setup();
|
|
if (isPnpLoaderEnabled && register) {
|
|
register(pathToFileURL(absPnpLoaderPath));
|
|
}
|
|
}
|
|
}
|
|
|
|
const wrapWithUserWrapper = existsSync(absUserWrapperPath)
|
|
? exports => absRequire(absUserWrapperPath)(exports)
|
|
: exports => exports;
|
|
|
|
const moduleWrapper = exports => {
|
|
return wrapWithUserWrapper(moduleWrapperFn(exports));
|
|
};
|
|
|
|
const moduleWrapperFn = module => module;
|
|
|
|
process.env.PATH += `;${resolve(__dirname, `../../oxlint-tsgolint/bin`)}`;
|
|
|
|
const binPath = resolve(absRequire.resolve(`oxlint/package.json`), `..`, `bin/oxlint`);
|
|
import(pathToFileURL(binPath));
|
|
|
|
// Defer to the real oxlint your application uses
|
|
module.exports = moduleWrapper(absRequire(`oxlint`));
|