turbopack_ecmascript/
runtime_functions.rs1use std::fmt::{Display, Formatter};
2
3use swc_core::ecma::ast::{Expr, MemberExpr, MemberProp};
4use turbopack_core::compile_time_info::FreeVarReference;
5
6pub struct TurbopackRuntimeFunctionShortcut {
7 pub shortcut: &'static str,
8 pub full: &'static str,
9}
10
11impl TurbopackRuntimeFunctionShortcut {
12 pub const fn new(full: &'static str, shortcut: &'static str) -> Self {
13 Self { full, shortcut }
14 }
15}
16
17impl Display for TurbopackRuntimeFunctionShortcut {
18 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
19 f.write_str(self.full)
20 }
21}
22
23impl From<&TurbopackRuntimeFunctionShortcut> for FreeVarReference {
24 fn from(val: &TurbopackRuntimeFunctionShortcut) -> Self {
25 FreeVarReference::Member("__turbopack_context__".into(), val.shortcut.into())
26 }
27}
28
29impl From<&TurbopackRuntimeFunctionShortcut> for Expr {
30 fn from(val: &TurbopackRuntimeFunctionShortcut) -> Self {
31 Expr::Member(MemberExpr {
32 obj: Box::new(Expr::Ident("__turbopack_context__".into())),
33 prop: MemberProp::Ident(val.shortcut.into()),
34 ..Default::default()
35 })
36 }
37}
38
39pub const TURBOPACK_REQUIRE: &TurbopackRuntimeFunctionShortcut =
40 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.r", "r");
41pub const TURBOPACK_MODULE_CONTEXT: &TurbopackRuntimeFunctionShortcut =
42 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.f", "f");
43pub const TURBOPACK_IMPORT: &TurbopackRuntimeFunctionShortcut =
44 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.i", "i");
45pub const TURBOPACK_ESM: &TurbopackRuntimeFunctionShortcut =
46 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.s", "s");
47pub const TURBOPACK_EXPORT_VALUE: &TurbopackRuntimeFunctionShortcut =
48 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.v", "v");
49pub const TURBOPACK_EXPORT_NAMESPACE: &TurbopackRuntimeFunctionShortcut =
50 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.n", "n");
51pub const TURBOPACK_CACHE: &TurbopackRuntimeFunctionShortcut =
52 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.c", "c");
53pub const TURBOPACK_MODULES: &TurbopackRuntimeFunctionShortcut =
54 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.M", "M");
55pub const TURBOPACK_LOAD: &TurbopackRuntimeFunctionShortcut =
56 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.l", "l");
57pub const TURBOPACK_LOAD_BY_URL: &TurbopackRuntimeFunctionShortcut =
58 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.L", "L");
59pub const TURBOPACK_DYNAMIC: &TurbopackRuntimeFunctionShortcut =
60 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.j", "j");
61pub const TURBOPACK_RESOLVE_ABSOLUTE_PATH: &TurbopackRuntimeFunctionShortcut =
62 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.P", "P");
63pub const TURBOPACK_RELATIVE_URL: &TurbopackRuntimeFunctionShortcut =
64 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.U", "U");
65pub const TURBOPACK_RESOLVE_MODULE_ID_PATH: &TurbopackRuntimeFunctionShortcut =
66 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.R", "R");
67pub const TURBOPACK_WORKER_BLOB_URL: &TurbopackRuntimeFunctionShortcut =
68 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.b", "b");
69pub const TURBOPACK_ASYNC_MODULE: &TurbopackRuntimeFunctionShortcut =
70 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.a", "a");
71pub const TURBOPACK_EXTERNAL_REQUIRE: &TurbopackRuntimeFunctionShortcut =
72 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.x", "x");
73pub const TURBOPACK_EXTERNAL_IMPORT: &TurbopackRuntimeFunctionShortcut =
74 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.y", "y");
75pub const TURBOPACK_REFRESH: &TurbopackRuntimeFunctionShortcut =
76 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.k", "k");
77pub const TURBOPACK_REQUIRE_STUB: &TurbopackRuntimeFunctionShortcut =
78 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.z", "z");
79pub const TURBOPACK_REQUIRE_REAL: &TurbopackRuntimeFunctionShortcut =
80 &TurbopackRuntimeFunctionShortcut::new("__turbopack_context__.t", "t");
81
82pub const TURBOPACK_RUNTIME_FUNCTION_SHORTCUTS: [(&str, &TurbopackRuntimeFunctionShortcut); 21] = [
85 ("__turbopack_require__", TURBOPACK_REQUIRE),
86 ("__turbopack_module_context__", TURBOPACK_MODULE_CONTEXT),
87 ("__turbopack_import__", TURBOPACK_IMPORT),
88 ("__turbopack_esm__", TURBOPACK_ESM),
89 ("__turbopack_export_value__", TURBOPACK_EXPORT_VALUE),
90 ("__turbopack_export_namespace__", TURBOPACK_EXPORT_NAMESPACE),
91 ("__turbopack_cache__", TURBOPACK_CACHE),
92 ("__turbopack_modules__", TURBOPACK_MODULES),
93 ("__turbopack_load__", TURBOPACK_LOAD),
94 ("__turbopack_load_by_url__", TURBOPACK_LOAD_BY_URL),
95 ("__turbopack_dynamic__", TURBOPACK_DYNAMIC),
96 (
97 "__turbopack_resolve_absolute_path__",
98 TURBOPACK_RESOLVE_ABSOLUTE_PATH,
99 ),
100 ("__turbopack_relative_url__", TURBOPACK_RELATIVE_URL),
101 (
102 "__turbopack_resolve_module_id_path__",
103 TURBOPACK_RESOLVE_MODULE_ID_PATH,
104 ),
105 ("__turbopack_worker_blob_url__", TURBOPACK_WORKER_BLOB_URL),
106 ("__turbopack_async_module__", TURBOPACK_ASYNC_MODULE),
107 ("__turbopack_external_require__", TURBOPACK_EXTERNAL_REQUIRE),
108 ("__turbopack_external_import__", TURBOPACK_EXTERNAL_IMPORT),
109 ("__turbopack_refresh__", TURBOPACK_REFRESH),
110 ("__turbopack_require_stub__", TURBOPACK_REQUIRE_STUB),
111 ("__turbopack_require_real__", TURBOPACK_REQUIRE_REAL),
112];