aboutsummaryrefslogtreecommitdiff
path: root/src/js/_codegen/client-js.ts
blob: 2db3305faec2f8bcc1a7b7dfd03580c203ce9b99 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// This is the implementation for $debug
export function createLogClientJS(filepath: string, publicName: string) {
  return `
let $debug_log_enabled = ((env) => (
  // The rationale for checking all these variables is just so you don't have to exactly remember which one you set.
  (env.BUN_DEBUG_ALL && env.BUN_DEBUG_ALL !== '0')
  || (env.BUN_DEBUG_JS && env.BUN_DEBUG_JS !== '0')
  || (env.BUN_DEBUG_${filepath
    .replace(/^.*?:/, "")
    .split(/[-_./]/g)
    .join("_")
    .toUpperCase()})
  || (env.DEBUG_${filepath
    .replace(/^.*?:/, "")
    .split(/[-_./]/g)
    .join("_")
    .toUpperCase()})
))(Bun.env);
let $debug_log = $debug_log_enabled ? (...args) => {
  // warn goes to stderr without colorizing
  console.warn(Bun.enableANSIColors ? '\\x1b[90m[${publicName}]\\x1b[0m' : '[${publicName}]', ...args);
} : () => {};
`;
}

export function createAssertClientJS(publicName: string) {
  return `
let $assert = function(check, sourceString, ...message) {
  if (!check) {
    console.error('[${publicName}] ASSERTION FAILED: ' + sourceString);
    if(message.length)console.warn (' ${" ".repeat(publicName.length)}', ...message);
    const e = new Error(sourceString);
    e.name = 'AssertionError';
    throw e;
  }
}
`;
}