Skip to content

Commit

Permalink
✨ Add support for ascii-color
Browse files Browse the repository at this point in the history
  • Loading branch information
mokeyish authored Aug 16, 2024
1 parent 0866985 commit 13457ea
Show file tree
Hide file tree
Showing 6 changed files with 127 additions and 93 deletions.
11 changes: 6 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,23 @@
"lint-fix": "eslint --fix"
},
"dependencies": {
"ansicolor": "^2.0.3",
"crypto-js": "^4.1.1",
"pyodide": "^0.20.0"
},
"devDependencies": {
"@eslint/js": "^9.7.0",
"@types/crypto-js": "^4.1.1",
"@types/node": "^22.0.0",
"typescript-eslint": "^7.16.1",
"builtin-modules": "3.3.0",
"vite-plugin-solid": "^2.10.2",
"@eslint/js": "^9.7.0",
"eslint": "^9.7.0",
"solid-js": "^1.8.19",
"obsidian": "latest",
"sass": "^1.54.8",
"solid-js": "^1.8.19",
"tslib": "^2.5.0",
"typescript": "5.5.4",
"vite": "^5.4.0"
"typescript-eslint": "^8.0.1",
"vite": "^5.4.0",
"vite-plugin-solid": "^2.10.2"
}
}
144 changes: 75 additions & 69 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 23 additions & 1 deletion src/backend/languages/js.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@ import type { CodeOutput } from '..';
import { ProxySandbox } from '../../lib/sandbox';



export default async function (code: string, output: CodeOutput): Promise<void> {

return new Promise((resolve, reject) => {
const sandbox = new ProxySandbox('t');
let run = (async function (window: typeof sandbox.proxy) {
const { console } = window;
Object.assign(console, output);
Object.assign(console, wrapConsole(output));
sandbox.active();
try {
await eval(code);
Expand All @@ -23,3 +24,24 @@ export default async function (code: string, output: CodeOutput): Promise<void>
(run(sandbox.proxy)).then(resolve).catch(reject);
});
}

const wrapConsole = ({ update }: CodeOutput) => {
const prettyWrite = (name: string, data: string[]): void => {
const output = `<div class="log-${name}">${data.join(',')}</div>`;
update(n => [...n, output as unknown as string]);
};

const log = (...data: string[]) => prettyWrite('info', data);
const info = (...data: string[]) => prettyWrite('info', data);
const debug = (...data: string[]) => prettyWrite('debug', data);
const warn = (...data: string[]) => prettyWrite('warn', data);
const error = (...data: string[]) => prettyWrite('error', data);

return {
log,
info,
debug,
warn,
error,
}
}
13 changes: 1 addition & 12 deletions src/backend/store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,6 @@ export function createCodeOutput<T = Message>() {
update(() => value);
};

const prettyWrite = (name: string, data: T[]): void => {
const output = `<div class="log-${name}">${data.join(',')}</div>`;
update(n => [...n, output as unknown as T]);
};

const log = (...data: T[]) => prettyWrite('info', data);
const info = (...data: T[]) => prettyWrite('info', data);
const debug = (...data: T[]) => prettyWrite('debug', data);
const warn = (...data: T[]) => prettyWrite('warn', data);
const error = (...data: T[]) => prettyWrite('error', data);

const write = (...data: T[]) => {
const msg = data.join(',');
update(n => [...n, msg as unknown as T]);
Expand All @@ -48,9 +37,9 @@ export function createCodeOutput<T = Message>() {

return {
subscribe,
log, info, debug, warn, error,
write,
clear,
update,
set,
};
}
Loading

0 comments on commit 13457ea

Please sign in to comment.