Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@domql/dependency-injector

Package Overview
Dependencies
Maintainers
3
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@domql/dependency-injector

Handle global scope in domql components

  • 1.1.4
  • latest
  • npm
  • Socket score

Version published
Maintainers
3
Created
Source

Injector

Globusa exports one function, parse(), that takes a string of javascript code and returns an object that looks like this:

{
  imports: [],               // mitosis-style import objects
  declarations: [],          // strings
  exports: [],               // strings
  domqlComponents: [],       // [ { name: null/string, code: string }, ... ]
  linesExcludingImports: [], //
  identifiers: [],           // strings
}

At its core, dependency-injector handles the global scope in a javascript file that exports domql components so that the component can easily be converted to other frameworks using to-mitosis.

Basically, with the help of Globusa, Kalduna can convert something like this:

import { Text } from '@symbo.ls/atoms'
import { someFunction } from './Atoms/Flex'

const localFn = (a,b) => a + b

export const Title = {
  extend: Text,
  style: { fontSize: '55px' },
  on: { click: (ev, el) => { console.log(someFunction(ev), localFn(1, 2)) } }
}

Into this: (notice the imports and the localFn declaration)

import { Text } from '@symbo.ls/atoms' // Kalduna will include this
import { someFunction } from './Atoms/Flex' // Included by dependency-injector

const localFn = (a,b) => a + b // Copied by dependency-injector

export default function Title(props) {
  const el = {
    props: ...
    parent: ...
    ...
  }

  function Text_onClick(ev, el) {
    console.log(someFunction(ev), localFn(1, 2))
  }

  return (
    <Text
      style={`${css({ fontSize: '55px' })}`)
      onClick={(ev) => Text_onClick(ev, el)}
      ...props />
  )
}

Tests

The testing scheme is based off of Kalduna's testing scheme.

We use node's built-in assertion module instead of a separate library.

How to run tests

To run the entire test suite, do yarn test from the root of this repository.

To run only specific tests, simply pass a file name or pattern to the script:

yarn test dedup-mitosis-imports.test.js
# or
yarn test dedup*.test.js

How it works

  • tests/esbuild-tests.js compiles all the .test.js files from tests/ and puts them in tests/dist/.
  • Each compiled test suite file in tests/dist/ is run with node as a separate process so that if a crash happens in one suite, it doesn't affect the other ones.
  • If no errors show up during testing then all tests have passeed.

FAQs

Package last updated on 01 Dec 2023

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

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc