ses-cjs
Version:
CommonJS-compatible dynamic wrapper for SES (Secure ECMAScript) using version 0.13.1 for legacy Node and browser support.
46 lines (37 loc) • 1.11 kB
JavaScript
// ses-cjs.js
let promise, locked = false
module.exports = function getSES() {
if (!promise) {
promise = (async () => {
if (!globalThis.Compartment) {
const realAssert = globalThis.assert
await import('ses')
globalThis.sesAssert = globalThis.assert
globalThis.assert = realAssert
const originalLockdown = globalThis.lockdown
function silentLockdown() {
if (locked) return
const originalLog = console.log
console.log = () => {}
originalLockdown({
errorTaming: 'unsafe',
stackFiltering: 'verbose',
overrideTaming: 'severe',
})
locked = true
console.log = originalLog
}
globalThis.silentLockdown = silentLockdown
}
return {
lockdown: globalThis.lockdown,
silentLockdown: globalThis.silentLockdown,
Compartment: globalThis.Compartment,
assert: globalThis.assert,
sesAssert: globalThis.sesAssert,
harden: globalThis.harden,
}
})()
}
return promise
}