Socket
Book a DemoInstallSign in
Socket

@itgenio/edik-compiler

Package Overview
Dependencies
Maintainers
4
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@itgenio/edik-compiler

Web-based compiler for Edik resources

0.0.18
latest
npmnpm
Version published
Weekly downloads
2
-33.33%
Maintainers
4
Weekly downloads
 
Created
Source

@itgenio/edik-compiler

Браузерный компилятор, собирающий CJS модули для работы с install

Для сборки JS используется esbuild-wasm.

Для сборки CSS используется less.

Файлы кода

На выходе получается файл с названием [name].[hash].js, например:

type CompilerFile = { name: string; content: string };

const someFiles: CompilerFile[] = [
  {
    name: 'index.js',
    content: `
    import { logger } from './utils/logger.js';
    console.log(logger());
  `,
  },

  {
    name: 'utils/logger.js',
    content: `
    export const logger = () => 'logs';
  `,
  },
];

const moduleFile: CompilerFile = {
  name: 'index.KLIO2BFQ.js',
  content: `edikInstall({'node_modules':{'index.KLIO2BFQ.js'(require,exports,module) {
  const logger = () => 'logs';
  console.log(logger());
}}},{extensions:['.js','.css','.less','.ts','.json']})`,
};

Файлы стилей

На выходе получается файл с названием style.css

Файлы, папки и спец. папки

В сборке участвуют следующие типы ресурсов:

  • код;
  • стили.

Эти ресурсы могут быть расположены на любом уровне вложенности.

Существуют специальные папки, которые меняют правила сборки:

  • editor - файлы внутри доступны только для сборки редактор

Как создается сборка

  • Выбрать тип сборки;
  • Составить список ресурсов и пакетов, необходимых для типа сборки;
  • Конвертируем имена в относительные пути, например:
| packages/some-component/index.js  -> './packages/some-component/index.js'
| folder
|   utils.js                        -> './folder/utils.js'
| main.js                           -> './main.js'
  • Генерируем файл entrypoint.js(невидимый), в котором импортируем все файлы. Порядок не имеет значения, так как далее будет строиться дерево зависимостей и код скомпилируется в нужном порядке.
import './packages/some-component/index.js';
import './folder/utils.js';
import './main.js';
  • Список файлов с содержимым и entrypoint.js передаются в ESBuild чтобы собрались файлы исполнения (executable files). Эти файлы далее будут запущены на выполнение с помощью Executor-ов.
  • Типы импортов:
  • относительный: файлы в ресурсах
  • наши пакеты: берем из ресурсов. если пакет не установлен - кидаем ошибку
  • npm пакеты:
  • url до файла?

FAQs

Package last updated on 21 Dec 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.