diff --git a/package-lock.json b/package-lock.json index b137f59..6e3790f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "license": "MIT", "dependencies": { "@happy-dom/global-registrator": "^4.1.0", + "@pushrocks/smartpromise": "^3.1.7", "lit": "^2.2.5" }, "devDependencies": { @@ -665,7 +666,6 @@ "version": "3.1.7", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-3.1.7.tgz", "integrity": "sha512-2gLQCeviEJwZ+cHHtK2Ks98brZatGC6dPXKIs1tVgJsiNgRFjnp90fESuJ1Pmoe7RrS+7J3mO4NtsFHAJJ/y5w==", - "dev": true, "license": "MIT" }, "node_modules/@pushrocks/smartpuppeteer": { @@ -6580,8 +6580,7 @@ "@pushrocks/smartpromise": { "version": "3.1.7", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-3.1.7.tgz", - "integrity": "sha512-2gLQCeviEJwZ+cHHtK2Ks98brZatGC6dPXKIs1tVgJsiNgRFjnp90fESuJ1Pmoe7RrS+7J3mO4NtsFHAJJ/y5w==", - "dev": true + "integrity": "sha512-2gLQCeviEJwZ+cHHtK2Ks98brZatGC6dPXKIs1tVgJsiNgRFjnp90fESuJ1Pmoe7RrS+7J3mO4NtsFHAJJ/y5w==" }, "@pushrocks/smartpuppeteer": { "version": "2.0.0", diff --git a/package.json b/package.json index 15a8330..8ad811f 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ }, "dependencies": { "@happy-dom/global-registrator": "^4.1.0", + "@pushrocks/smartpromise": "^3.1.7", "lit": "^2.2.5" }, "browserslist": [ diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 9eea2bd..a77f8f1 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@pushrocks/smartntml', - version: '1.0.4', + version: '1.0.5', description: 'lit-html for the backend' } diff --git a/ts/index.ts b/ts/index.ts index 6dd7093..959b759 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -10,6 +10,16 @@ export class Smartntml { return smartntml; } + private static smartntmlSingletonDeferred: plugins.smartpromise.Deferred; + public static async createAndInitSingleton() { + if (this.smartntmlSingletonDeferred) { + return this.smartntmlSingletonDeferred.promise; + } + const smartntmlInstance = await this.createAndInit(); + this.smartntmlSingletonDeferred.resolve(smartntmlInstance); + return this.smartntmlSingletonDeferred.promise; + } + // INSTANCE render: typeof litTypes.render; html: typeof litTypes.html; diff --git a/ts/smartntml.plugins.ts b/ts/smartntml.plugins.ts index a2fb3a1..16a80a4 100644 --- a/ts/smartntml.plugins.ts +++ b/ts/smartntml.plugins.ts @@ -1,2 +1,10 @@ +// happy-dom setup import { GlobalRegistrator } from '@happy-dom/global-registrator'; GlobalRegistrator.register(); + +// @pushrocks scope +import * as smartpromise from '@pushrocks/smartpromise'; + +export { + smartpromise +}