mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-17 05:09:24 +08:00
38 lines
1.0 KiB
TypeScript
38 lines
1.0 KiB
TypeScript
import { createRequire, isBuiltin, syncBuiltinESMExports } from "node:module";
|
|
|
|
const require = createRequire(import.meta.url);
|
|
const local = require("./local.cjs");
|
|
|
|
console.log("local:", local.add(19, 23), local.label);
|
|
|
|
const projectAlias = require("#local");
|
|
console.log("alias:", projectAlias.add(2, 3), projectAlias.label);
|
|
|
|
const { add: plus, label } = require("./local.cjs") as { add(a: number, b: number): number; label: string };
|
|
console.log("destructure:", plus(7, 8), label);
|
|
|
|
const decorate = require("./factory.cjs") as (value: string) => string;
|
|
console.log("factory:", decorate("static"));
|
|
|
|
require("./side.cjs");
|
|
require("./side.cjs");
|
|
|
|
console.log(
|
|
"builtins:",
|
|
isBuiltin("fs"),
|
|
isBuiltin("node:fs"),
|
|
isBuiltin("test"),
|
|
isBuiltin("node:test"),
|
|
isBuiltin("node:nope"),
|
|
);
|
|
|
|
function checkBuiltin(name: string): boolean {
|
|
return isBuiltin(name);
|
|
}
|
|
|
|
const runtimeName = process.argv.length > 2 ? process.argv[2]! : "node:fs";
|
|
console.log("runtime builtin:", checkBuiltin(runtimeName));
|
|
|
|
syncBuiltinESMExports();
|
|
console.log("sync: undefined");
|