Skip to content

Commit

Permalink
Add deno runtime
Browse files Browse the repository at this point in the history
  • Loading branch information
lahmatiy committed Apr 19, 2024
1 parent 1ec3898 commit d0e1151
Show file tree
Hide file tree
Showing 12 changed files with 109 additions and 7 deletions.
27 changes: 27 additions & 0 deletions app/img/deno.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 27 additions & 0 deletions app/img/runtime-deno.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 7 additions & 1 deletion app/pages/default.css
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@
letter-spacing: 1px;
padding-bottom: 2px;
}
.page-default .view-page-indicators .runtime:is(.nodejs, .chromium, .electron, .unknown) .value::before {
.page-default .view-page-indicators .runtime:is(.nodejs, .deno, .chromium, .electron, .unknown) .value::before {
content: "";
display: inline-block;
vertical-align: baseline;
Expand All @@ -144,6 +144,12 @@
.page-default .view-page-indicators .runtime:is(.nodejs) .value::before {
background-image: url("../img/runtime-nodejs.png");
}
.page-default .view-page-indicators .runtime:is(.deno) .value::before {
background-image: url("../img/runtime-deno.svg");
height: 1.3em;
margin-bottom: -.25em;
margin-right: 0.6ex;
}
.page-default .view-page-indicators .runtime:is(.chromium) .value::before {
background-image: url("../img/runtime-chromium.svg");
}
Expand Down
1 change: 1 addition & 0 deletions app/prepare/const.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ export const typeColor: Record<PackageType, string> = {
'wasm': '#9481ffa0',
'regexp': '#8db2f8a0',
'electron': '#9feaf9a0',
'deno': '#ffffffa0', // before node, because uses node modules as well
'node': '#78b362a0',
'internals': '#fcb69aa0',
'program': '#edfdd1a0',
Expand Down
10 changes: 6 additions & 4 deletions app/prepare/detect-runtime.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ type RunTimeCode = keyof typeof runtimes;

const runtimes = {
nodejs: 'Node.js',
deno: 'Deno',
chromium: 'Chromium',
electron: 'Electron',
unknown: 'Unknown'
Expand All @@ -13,10 +14,11 @@ export function detectRuntime(categories: CpuProCategory[], packages: CpuProPack
const categoriesSet = new Set(categories.map(category => category.name));
const code: RunTimeCode =
categoriesSet.has('electron') ? 'electron'
: categoriesSet.has('node') ? 'nodejs'
: categoriesSet.has('chrome-extension') || packages.find(pkg => /^https?:/.test(pkg.path))
? 'chromium'
: 'unknown';
: categoriesSet.has('deno') ? 'deno'
: categoriesSet.has('node') ? 'nodejs'
: categoriesSet.has('chrome-extension') || packages.find(pkg => /^https?:/.test(pkg.path))
? 'chromium'
: 'unknown';

return {
engine: 'V8',
Expand Down
16 changes: 16 additions & 0 deletions app/prepare/process-call-frames.ts
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,15 @@ function resolvePackage(
break;
}

case 'deno': {
ref = '(deno)';
type = 'deno';
name = '(deno modules)';
path = 'ext:';

break;
}

// case 'blink':
// case 'v8':
case 'webpack/runtime':
Expand Down Expand Up @@ -274,6 +283,13 @@ function resolveModule(
entry.path = url;
break;

case 'ext':
if (/^ext:(core|cli|runtime|deno)/.test(url)) {
entry.type = 'deno';
entry.path = url;
break;
}

default:
entry.type = `protocol-${protocol}`;
entry.name = url;
Expand Down
2 changes: 2 additions & 0 deletions app/prepare/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ export type ModuleType =
| 'internals'
| 'bundle'
| 'node'
| 'deno'
| 'electron'
| 'webpack/runtime'
| 'chrome-extension'
Expand All @@ -88,6 +89,7 @@ export type PackageType =
| 'internals'
| 'npm'
| 'node'
| 'deno'
| 'electron'
| 'webpack/runtime'
| 'chrome-extension';
Expand Down
7 changes: 7 additions & 0 deletions app/views/function-badge.css
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

.view-badge.function-type_script,
.view-badge.function-type_node,
.view-badge.function-type_deno,
.view-badge.function-type_npm,
.view-badge.function-type_chrome-extension,
.view-badge.function-type_wasm {
Expand All @@ -31,6 +32,7 @@
}
.view-badge.function-type_script::before,
.view-badge.function-type_node::before,
.view-badge.function-type_deno::before,
.view-badge.function-type_npm::before,
.view-badge.function-type_chrome-extension::before,
.view-badge.function-type_wasm::before {
Expand All @@ -51,6 +53,11 @@
.view-badge.function-type_node::before {
background-image: url('../img/nodejs.png');
}
.view-badge.function-type_deno::before {
opacity: 1;
filter: brightness(.85);
background-image: url('../img/deno.svg');
}
.view-badge.function-type_npm::before {
background-image: url('../img/npm.png');
}
Expand Down
2 changes: 1 addition & 1 deletion app/views/function-badge.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ discovery.view.define('function-badge', {
data: '(function or $).marker("function")',
whenData: true,
content: [
{ when: 'object.module.package.type in ["script", "npm", "chrome-extension", "wasm", "node", "internals", "regexp"]', content: {
{ when: 'object.module.package.type in ["script", "npm", "chrome-extension", "wasm", "node", "deno", "internals", "regexp"]', content: {
view: 'badge',
className: ({ object: { module: { package: { type } } } }) => `function function-type_${type}`,
content: 'text-match:{ text, match: #.filter }',
Expand Down
7 changes: 7 additions & 0 deletions app/views/module-badge.css
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

.view-badge.module-type_script,
.view-badge.module-type_node,
.view-badge.module-type_deno,
.view-badge.module-type_electron,
.view-badge.module-type_npm,
.view-badge.module-type_chrome-extension,
Expand All @@ -30,6 +31,7 @@
}
.view-badge.module-type_script::before,
.view-badge.module-type_node::before,
.view-badge.module-type_deno::before,
.view-badge.module-type_electron::before,
.view-badge.module-type_npm::before,
.view-badge.module-type_chrome-extension::before,
Expand All @@ -51,6 +53,11 @@
.view-badge.module-type_node::before {
background-image: url('../img/nodejs.png');
}
.view-badge.module-type_deno::before {
opacity: 1;
filter: brightness(.85);
background-image: url('../img/deno.svg');
}
.view-badge.module-type_electron::before {
background-image: url('../img/electron.ico');
filter: brightness(1.1);
Expand Down
2 changes: 1 addition & 1 deletion app/views/module-badge.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ discovery.view.define('module-badge', {
data: '(module or $).marker("module")',
whenData: true,
content: [
{ when: 'object.package.type in ["script", "npm", "chrome-extension", "wasm", "node", "electron"]', content: {
{ when: 'object.package.type in ["script", "npm", "chrome-extension", "wasm", "node", "deno", "electron"]', content: {
view: 'badge',
className: ({ object: { package: { type } } }) => `module module-type_${type}`,
content: 'text-match:{ text, match: #.filter }',
Expand Down
7 changes: 7 additions & 0 deletions app/views/package-badge.css
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,15 @@

.view-badge.package-type_script,
.view-badge.package-type_node,
.view-badge.package-type_deno,
.view-badge.package-type_npm,
.view-badge.package-type_chrome-extension,
.view-badge.package-type_wasm {
padding-left: var(--badge-padding-left);
}
.view-badge.package-type_script::before,
.view-badge.package-type_node::before,
.view-badge.package-type_deno::before,
.view-badge.package-type_npm::before,
.view-badge.package-type_chrome-extension::before,
.view-badge.package-type_wasm::before {
Expand All @@ -43,6 +45,11 @@
.view-badge.package-type_node::before {
background-image: url('../img/nodejs.png');
}
.view-badge.package-type_deno::before {
opacity: 1;
filter: brightness(.85);
background-image: url('../img/deno.svg');
}
.view-badge.package-type_npm::before {
background-image: url('../img/npm.png');
}
Expand Down

0 comments on commit d0e1151

Please sign in to comment.