build(site): [SITE-07] reproduce Monaco CSS sources and verify styled editor

This commit is contained in:
Harvey Zhao committed 2026-09-15 11:55:22 +08:00
1 parent 23ac6f7128
commit d2b2f76db8
23 files changed
+16271 -5

No files matched your search

+18
View File
@@ -7,6 +7,7 @@ import { emitAmd } from '../scripts/site-vendor/monaco/compiler.ts'
import { assembleContributions, injectCoreDependency, readContributionMetadata } from '../scripts/site-vendor/monaco/contributions.ts'
import { inventoryCoreMap, readCoreNls, restoreCoreMapComment } from '../scripts/site-vendor/monaco/core-build.ts'
import { adaptCoreOrigin } from '../scripts/site-vendor/monaco/core-origins.ts'
import { coreStyleOrder, prepareCoreStyles } from '../scripts/site-vendor/monaco/css.ts'
import { aliasModule, moduleIds, nameModule, verifyWorkerSources } from '../scripts/site-vendor/monaco/languages.ts'
import { browserTypeScript, verifyTypeScriptSource } from '../scripts/site-vendor/monaco/typescript.ts'
@@ -15,6 +16,23 @@ const contributionGroups = ['typescript', 'css', 'json', 'html', 'languages'].ma
return { name: `monaco-${name}`, modulePrefix, contrib: `${modulePrefix}/monaco.contribution` }
})
test('Core CSS inventory follows registration order instead of the module-name table order', () => {
const source = 'var names = ["vs/css!vs/editor/editor.main","vs/css!vs/a","vs/css!vs/b"]; define(names[2],[],{}); define(names[1],[],{});'
assert.deepEqual(coreStyleOrder(source), ['vs/b', 'vs/a'])
assert.throws(() => coreStyleOrder(`${source} define(names[2],[],{});`), /repeated core CSS/)
assert.throws(() => coreStyleOrder('define([],{});'), /Missing/)
})
test('CSS source transport cannot silently fall back to unverified or missing inputs', () => {
const unexpectedRead = () => {
throw new Error('unexpected read')
}
assert.throws(() => prepareCoreStyles('', '', ['vs/a'], unexpectedRead), /one transportCSS/)
const recipe = 'function transportCSS(module: string, enqueue: Function, write: Function) { fs.readFileSync("/outside/a.css"); return true; }'
assert.throws(() => prepareCoreStyles(recipe, '', ['vs/a'], unexpectedRead), /escaped verified inputs/)
assert.throws(() => prepareCoreStyles('function transportCSS() { return true; }', '', ['vs/a'], unexpectedRead), /Missing transported CSS/)
})
test('Contribution metadata preserves upstream ordering and rejects computed or duplicate values', () => {
const plugins = contributionGroups.map(group => ({ ...group, rootPath: `./${group.name}`, paths: { dev: './release/dev', min: './release/min' } }))
const metadata = list => `var METADATA = ${JSON.stringify({ PLUGINS: list })};`