Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Emit deprecation
  • Loading branch information
ntkme committed Feb 12, 2026
commit aaa39df2d3e31b5c1495029f5e2098cf89b04aec
48 changes: 47 additions & 1 deletion lib/src/compile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,24 @@
import {initAsyncCompiler} from './compiler/async';
import {OptionsWithLegacy, StringOptionsWithLegacy} from './compiler/utils';
import {initCompiler} from './compiler/sync';
import {CompileResult} from './vendor/sass';
import {CompileResult, SourceMapIncludeSources} from './vendor/sass';
import {
DeprecationOptions,
deprecations,
warnForHostSideDeprecation,
} from './deprecations';

export {NodePackageImporter} from './importer-registry';

export function compile(
path: string,
options?: OptionsWithLegacy<'sync'>,
): CompileResult {
_warnForSourceMapIncludeSourcesBoolean(
options?.sourceMapIncludeSources,
options?.legacy,
options,
);
const compiler = initCompiler();
try {
return compiler.compile(path, options);
Expand All @@ -25,6 +35,11 @@ export function compileString(
source: string,
options?: StringOptionsWithLegacy<'sync'>,
): CompileResult {
_warnForSourceMapIncludeSourcesBoolean(
options?.sourceMapIncludeSources,
options?.legacy,
options,
);
const compiler = initCompiler();
try {
return compiler.compileString(source, options);
Expand All @@ -37,6 +52,11 @@ export async function compileAsync(
path: string,
options?: OptionsWithLegacy<'async'>,
): Promise<CompileResult> {
_warnForSourceMapIncludeSourcesBoolean(
options?.sourceMapIncludeSources,
options?.legacy,
options,
);
const compiler = await initAsyncCompiler();
try {
return await compiler.compileAsync(path, options);
Expand All @@ -49,10 +69,36 @@ export async function compileStringAsync(
source: string,
options?: StringOptionsWithLegacy<'async'>,
): Promise<CompileResult> {
_warnForSourceMapIncludeSourcesBoolean(
options?.sourceMapIncludeSources,
options?.legacy,
options,
);
const compiler = await initAsyncCompiler();
try {
return await compiler.compileStringAsync(source, options);
} finally {
await compiler.dispose();
}
}

function _warnForSourceMapIncludeSourcesBoolean(
sourceMapIncludeSources?: SourceMapIncludeSources | boolean,
legacy?: boolean,
options?: DeprecationOptions,
): void {
if (
legacy !== true &&
(sourceMapIncludeSources === true || sourceMapIncludeSources === false)
) {
const suggestion = sourceMapIncludeSources ? 'always' : 'never';
warnForHostSideDeprecation(
'Passing a boolean value for Options.sourceMapIncludeSources is' +
'deprecated and will be removed in Dart Sass 2.0.0.\n' +
`Please use '${suggestion}' instead of ${sourceMapIncludeSources}.\n\n` +
'More info: https://sass-lang.com/d/source-map-include-sources-boolean',
deprecations['source-map-include-sources-boolean'],
options,
);
}
}