index.js — svelte Source File
Architecture documentation for index.js, a javascript file in the svelte codebase. 18 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR cc8de3ad_4bae_f883_44db_d90442053943["index.js"] 21beed52_94ea_f810_11b8_87a2cf50432f["legacy.js"] cc8de3ad_4bae_f883_44db_d90442053943 --> 21beed52_94ea_f810_11b8_87a2cf50432f 739544c3_ed59_a35e_6bea_b1b4d2b50e81["convert"] cc8de3ad_4bae_f883_44db_d90442053943 --> 739544c3_ed59_a35e_6bea_b1b4d2b50e81 67d7170b_725b_33cc_868d_fad6ed435252["index.js"] cc8de3ad_4bae_f883_44db_d90442053943 --> 67d7170b_725b_33cc_868d_fad6ed435252 6d2356f8_1610_44a9_5698_878d5092688f["parse"] cc8de3ad_4bae_f883_44db_d90442053943 --> 6d2356f8_1610_44a9_5698_878d5092688f 042e583c_5e12_9bde_ddd8_8091d5ea0f7d["Parser"] cc8de3ad_4bae_f883_44db_d90442053943 --> 042e583c_5e12_9bde_ddd8_8091d5ea0f7d 0e67864d_62c6_024e_3588_da959afe5b23["remove_typescript_nodes.js"] cc8de3ad_4bae_f883_44db_d90442053943 --> 0e67864d_62c6_024e_3588_da959afe5b23 90ebea37_3939_87c9_ac10_18fc18796941["remove_typescript_nodes"] cc8de3ad_4bae_f883_44db_d90442053943 --> 90ebea37_3939_87c9_ac10_18fc18796941 251e2338_f8b8_69b4_b2e5_29ee7decbfa6["style.js"] cc8de3ad_4bae_f883_44db_d90442053943 --> 251e2338_f8b8_69b4_b2e5_29ee7decbfa6 17b060ee_9bdd_d2ea_9bd7_f190c36179db["parse_stylesheet"] cc8de3ad_4bae_f883_44db_d90442053943 --> 17b060ee_9bdd_d2ea_9bd7_f190c36179db 4aa8a188_84d4_0274_ed83_cac0ab1d3572["index.js"] cc8de3ad_4bae_f883_44db_d90442053943 --> 4aa8a188_84d4_0274_ed83_cac0ab1d3572 78a6ba9a_5003_f569_a638_76e4f1977809["analyze_component"] cc8de3ad_4bae_f883_44db_d90442053943 --> 78a6ba9a_5003_f569_a638_76e4f1977809 05334dc2_42b5_e2cb_fe55_aa3f6a2de9df["analyze_module"] cc8de3ad_4bae_f883_44db_d90442053943 --> 05334dc2_42b5_e2cb_fe55_aa3f6a2de9df f1cb032f_d7a0_6877_cebc_2e5f4505e958["index.js"] cc8de3ad_4bae_f883_44db_d90442053943 --> f1cb032f_d7a0_6877_cebc_2e5f4505e958 0accce76_056a_b49e_69ca_069fe7e3e216["transform_component"] cc8de3ad_4bae_f883_44db_d90442053943 --> 0accce76_056a_b49e_69ca_069fe7e3e216 style cc8de3ad_4bae_f883_44db_d90442053943 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
/** @import { LegacyRoot } from './types/legacy-nodes.js' */
/** @import { CompileOptions, CompileResult, ValidatedCompileOptions, ModuleCompileOptions } from '#compiler' */
/** @import { AST } from './public.js' */
import { walk as zimmerframe_walk } from 'zimmerframe';
import { convert } from './legacy.js';
import { parse as _parse, Parser } from './phases/1-parse/index.js';
import { remove_typescript_nodes } from './phases/1-parse/remove_typescript_nodes.js';
import { parse_stylesheet } from './phases/1-parse/read/style.js';
import { analyze_component, analyze_module } from './phases/2-analyze/index.js';
import { transform_component, transform_module } from './phases/3-transform/index.js';
import { validate_component_options, validate_module_options } from './validate-options.js';
import * as state from './state.js';
export { default as preprocess } from './preprocess/index.js';
export { print } from './print/index.js';
/**
* `compile` converts your `.svelte` source code into a JavaScript module that exports a component
*
* @param {string} source The component source code
* @param {CompileOptions} options The compiler options
* @returns {CompileResult}
*/
export function compile(source, options) {
source = remove_bom(source);
state.reset({ warning: options.warningFilter, filename: options.filename });
const validated = validate_component_options(options, '');
let parsed = _parse(source);
const { customElement: customElementOptions, ...parsed_options } = parsed.options || {};
/** @type {ValidatedCompileOptions} */
const combined_options = {
...validated,
...parsed_options,
customElementOptions
};
if (parsed.metadata.ts) {
parsed = {
...parsed,
fragment: parsed.fragment && remove_typescript_nodes(parsed.fragment),
instance: parsed.instance && remove_typescript_nodes(parsed.instance),
module: parsed.module && remove_typescript_nodes(parsed.module)
};
if (combined_options.customElementOptions?.extend) {
combined_options.customElementOptions.extend = remove_typescript_nodes(
combined_options.customElementOptions?.extend
);
}
}
const analysis = analyze_component(parsed, source, combined_options);
const result = transform_component(analysis, source, combined_options);
result.ast = to_public_ast(source, parsed, options.modernAst);
return result;
}
/**
* `compileModule` takes your JavaScript source code containing runes, and turns it into a JavaScript module.
// ... (139 more lines)
Domain
Subdomains
Dependencies
Source
Frequently Asked Questions
What does index.js do?
index.js is a source file in the svelte codebase, written in javascript. It belongs to the Compiler domain, Transformer subdomain.
What functions are defined in index.js?
index.js defines 7 function(s): compile, compileModule, parse, parseCss, remove_bom, to_public_ast, walk.
What does index.js depend on?
index.js imports 18 module(s): Parser, analyze_component, analyze_module, convert, index.js, index.js, index.js, legacy.js, and 10 more.
Where is index.js in the architecture?
index.js is located at packages/svelte/src/compiler/index.js (domain: Compiler, subdomain: Transformer, directory: packages/svelte/src/compiler).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free