# Shared Resources in JavaScript API: Draft 1.3 *([Issue](https://github.com/sass/sass/issues/3296))* This proposal adds an API design that allows for sharing resources across multiple invocations of the Sass compiler's JavaScript API. This will provide Sass's users with a more efficient way of running Sass compilations across multiple files. ## Table of Contents * [Summary](#summary) * [Design Decisions](#design-decisions) * [Splitting Sync and Async Compilers](#splitting-sync-and-async-compilers) * [Limited API interface](#limited-api-interface) * [Flexibility for interfaces on process management](#flexibility-for-interfaces-on-process-management) * [No shared state](#no-shared-state) * [Example](#example) * [Sync Compiler](#sync-compiler) * [Async Compiler](#async-compiler) * [API](#api) * [Types](#types) * [initCompiler()](#initcompiler) * [initAsyncCompiler()](#initasynccompiler) * [Compiler](#compiler) * [`compile()` and `compileString()`](#compile-and-compilestring) * [dispose()](#dispose) * [Async Compiler](#async-compiler-1) * [`compileAsync()` and `compileStringAsync()`](#compileasync-and-compilestringasync) * [dispose()](#dispose-1) ## Summary Currently, the JavaScript API for Sass only accommodates a single compilation per process. In practice, we have observed build tools are compiling multiple times in response to a single user action. For instance, Vue.js authors using Vite will see a Sass compilation for each `