private static void loadModulesFromIncludeDirs(Context cx, Scriptable scope, List<File> requireDirList) { List<URI> uris = new ArrayList<URI>(); for (File dir : requireDirList) { URI uri = dir.toURI(); uris.add(uri); continue; } if (uris.isEmpty()) { return; } RequireBuilder rb = new RequireBuilder(); rb.setModuleScriptProvider(new SoftCachingModuleScriptProvider( new UrlModuleSourceProvider(uris, null))); Require require = rb.createRequire(cx, scope); require.install(scope); return; }
public void init() throws URISyntaxException { ctx = Context.enter(); try { RequireBuilder builder = new RequireBuilder(); builder.setModuleScriptProvider(new SoftCachingModuleScriptProvider( new UrlModuleSourceProvider(buildModulePaths(), null))); topLevelScope = ctx.initStandardObjects(); builder.setSandboxed(false); // allows this to load scripts Require require = builder.createRequire(ctx, topLevelScope); exports = require.requireMain(ctx, jsxTransformerJS); transform = (Function) exports.get("transform", topLevelScope); } finally { Context.exit(); } }
public Require installRequire(Context cx, List<String> modulePath, boolean sandboxed) { RequireBuilder rb = new RequireBuilder(); rb.setSandboxed(sandboxed); List<URI> uris = new ArrayList<URI>(); if (modulePath != null) { for (String path : modulePath) { try { URI uri = new URI(path); if (!uri.isAbsolute()) { // call resolve("") to canonify the path uri = new File(path).toURI().resolve(""); } if (!uri.toString().endsWith("/")) { // make sure URI always terminates with slash to // avoid loading from unintended locations uri = new URI(uri + "/"); } uris.add(uri); } catch (URISyntaxException usx) { throw new RuntimeException(usx); } } } rb.setModuleScriptProvider( new SoftCachingModuleScriptProvider( new UrlModuleSourceProvider(uris, null))); Require require = rb.createRequire(cx, this); require.install(this); return require; }
private Require getSandboxedRequire(Context cx, Scriptable scope, boolean sandboxed) throws URISyntaxException { return new Require(cx, cx.initStandardObjects(), new StrongCachingModuleScriptProvider( new UrlModuleSourceProvider(Collections.singleton( getDirectory()), null)), null, null, true); }
private static Require createRequire(File dir, Context cx, Scriptable scope) throws URISyntaxException { return new Require(cx, scope, new StrongCachingModuleScriptProvider( new UrlModuleSourceProvider(Collections.singleton(new URI( "file:" + dir.getAbsolutePath().replace(File.separatorChar,'/') + "/")), Collections.singleton(new URI(ComplianceTest.class.getResource(".").toExternalForm() + "/")))), null, null, false); }
private static Require createRequire(File dir, Context cx, Scriptable scope) throws URISyntaxException { return new Require(cx, scope, new StrongCachingModuleScriptProvider( new UrlModuleSourceProvider( Collections.singleton(dir.getAbsoluteFile().toURI()), Collections.singleton(new URI(ComplianceTest.class.getResource(".").toExternalForm() + "/")))), null, null, false); }