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

@lwc/engine-core

Package Overview
Dependencies
Maintainers
0
Versions
365
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@lwc/engine-core

Core LWC engine APIs.


Version published
Weekly downloads
5K
increased by6.02%
Maintainers
0
Weekly downloads
 
Created
Source

@lwc/engine-core

This package contains the core logic shared by different runtime environments. Examples of this include the rendering engine and the reactivity mechanism. Since this package only provides internal APIs for building custom runtimes, it should never be consumed directly in an application.

Usage of internal APIs are prevented by the compiler and are therefore not documented here.

Supported APIs

This package supports the following APIs.

@api

This decorator is used to mark the public fields and the public methods of an LWC component.

import { LightningElement, api } from 'lwc';

class LightningHello extends LightningElement {
    @api
    hello = 'default hello';
}

@track

This decorator should be used on private fields to track object mutations.

import { LightningElement, api, track } from 'lwc';

class LightningHello extends LightningElement {
    @api
    get name() {
        return name.raw;
    }
    set name(value) {
        name.normalized = normalize(value);
    }

    @track
    name = {
        raw: 'Web components ',
        normalized: 'Web Components',
    };
}

@wire

This decorator should be used to wire fields and methods to a wire adapter.

import { LightningElement, wire } from 'lwc';
import { getRecord } from 'recordDataService';

export default class Test extends LightningElement {
    @wire(getRecord, { id: 1 })
    recordData;
}

createContextProvider()

This function creates a context provider, given a wire adapter constructor.

LightningElement

This class should be extended to create an LWC constructor.

import { LightningElement } from 'lwc';

class LightningHello extends LightningElement {
    // component implementation
}

Experimental APIs

Experimental APIs are subject to change, may be removed at any time, and should be used at your own risk!

getComponentDef()

This experimental API provides access to internal component metadata.

isComponentConstructor()

This experimental API enables the identification of LWC constructors.

readonly()

This experimental API enables the creation of a reactive readonly membrane around any object value.

setHooks()

This experimental API allows setting overridable hooks with an application specific implementation.

List of overridable hooks:

  1. sanitizeHtmlContent, see sanitizeHtmlContent.

sanitizeAttribute()

This experimental API enables the sanitization of HTML attribute values by external services.

sanitizeHtmlContent()

This experimental API enables the sanitization of HTML content by external services. The lwc:inner-html binding relies on this hook. This hook must be overridden (see setHooks ) as the default implementation is to throw an error.

unwrap()

This experimental API enables the removal of an object's observable membrane proxy wrapper.

setTrustedSignalSet()

This experimental API enables the addition of a signal as a trusted signal. If the ENABLE_EXPERIMENTAL_SIGNALS feature is enabled, any signal value change will trigger a re-render.

If setTrustedSignalSet is called more than once, it will throw an error. If it is never called, then no trusted signal validation will be performed. The same setTrustedSignalSet API must be called on both @lwc/engine-dom and @lwc/signals.

Keywords

FAQs

Package last updated on 23 Oct 2024

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