Skip to content

Commit 31817d6

Browse files
authored
feat: use strict mode in monaco run (configurable) (#2334)
1 parent fd83934 commit 31817d6

File tree

5 files changed

+16
-0
lines changed

5 files changed

+16
-0
lines changed

packages/client/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ export const HEADMATTER_FIELDS = [
6666
'monacoTypesSource',
6767
'monacoTypesAdditionalPackages',
6868
'monacoRunAdditionalDeps',
69+
'monacoRunUseStrict',
6970
'remoteAssets',
7071
'selectable',
7172
'record',

packages/client/setup/code-runners.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import deps from '#slidev/monaco-run-deps'
55
import setups from '#slidev/setups/code-runners'
66
import { createSingletonPromise } from '@antfu/utils'
77
import { ref } from 'vue'
8+
import { configs } from '../env'
89

910
export default createSingletonPromise(async () => {
1011
const runners: Record<string, CodeRunner> = {
@@ -63,6 +64,7 @@ function runJavaScript(code: string): CodeRunnerOutputs {
6364
vmConsole.clear = () => result.value.length = 0
6465
try {
6566
const safeJS = `return async (console, __slidev_import, __slidev_on_error) => {
67+
${configs.monacoRunUseStrict ? `"use strict";` : ''}
6668
try {
6769
${sanitizeJS(code)}
6870
} catch (e) {

packages/parser/src/config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export function getDefaultConfig(): SlidevConfig {
1414
monacoTypesAdditionalPackages: [],
1515
monacoTypesIgnorePackages: [],
1616
monacoRunAdditionalDeps: [],
17+
monacoRunUseStrict: true,
1718
download: false,
1819
export: {} as ResolvedExportOptions,
1920
info: false,

packages/types/src/frontmatter.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,12 @@ export interface HeadmatterConfig extends TransitionOptions {
264264
* @default []
265265
*/
266266
monacoRunAdditionalDeps?: string[]
267+
/**
268+
* Whether to run monaco runnable code in strict mode
269+
*
270+
* @default true
271+
*/
272+
monacoRunUseStrict?: boolean
267273
/**
268274
* Seo meta tags settings
269275
*

packages/vscode/schema/headmatter.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,12 @@
505505
"markdownDescription": "Additional local modules to load as dependencies of monaco runnable",
506506
"default": []
507507
},
508+
"monacoRunUseStrict": {
509+
"type": "boolean",
510+
"description": "Whether to run monaco runnable code in strict mode",
511+
"markdownDescription": "Whether to run monaco runnable code in strict mode",
512+
"default": true
513+
},
508514
"seoMeta": {
509515
"$ref": "#/definitions/SeoMeta",
510516
"description": "Seo meta tags settings",

0 commit comments

Comments
 (0)