Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
@fxjs/handbag
Advanced tools
fibjs >= 0.26.0
npm install @fxjs/handbag
register one compiler for .pug
file
const fxHandbag = require('@fxjs/handbag')
const fpug = require('fib-pug')
function registerPugAsHtml (vbox) {
const compilerOptions = {
filters: {
typescript: require('jstransformer-typescript').render,
stylus: require('jstransformer-stylus').render,
}
}
fxHandbag.vboxUtils.setCompilerForVbox(vbox, {
suffix: '.pug',
compiler: (buf, info) => fxHandbag.vboxUtils.wrapAsString(
fpug.renderFile(info.filename, compilerOptions)
)
})
}
const vm = require('vm')
vbox = new vm.SandBox(moduleHash)
registerPugAsHtml(vbox)
// just require one pug as rendered html string
const renderedHtml = vbox.require('./test.pug', __dirname)
you can also do like this:
const compilerOptions = {
filters: {
typescript: require('jstransformer-typescript').render,
stylus: require('jstransformer-stylus').render,
}
}
const vbox = new vm.SandBox(moduleHash)
fxHandbag.registers.pug.registerPugAsHtml(vbox, { compilerOptions })
const renderedHtml = vbox.require('./test.pug', __dirname)
vboxUtils
is some basic operation for one vbox generated by new vm.SandBox(...)
setCompilerForVbox(vbox: Class_SandBox, options: SetCompilerForVBoxOptions)
set one compiler
function for vbox
, the compiler
is used for vbox.setModuleCompiler
.
interface SetVboxOptions {
suffix: string|string[],
compiler: Function,
compile_to_iife_script?: boolean
}
register functions support options below:
{
// compilerOptions passed to render of register.
compilerOptions: {...},
// timeout that module keep required file id, if it is 0, keep module always
burnout_timeout: {...}
}
plain.registerAsPlain(vbox, options)
['.txt']
register compiler to require file as its plain text
pug.registerPugAsRender(vbox, options)
['.pug', '.jade']
register compiler to require pug file as pug renderer
pug.registerPugAsHtml(vbox, options)
['.pug', '.jade']
register compiler to require pug file as rendered html
stylus.registerStylusAsCss(vbox, options)
['.styl', '.stylus']
register compiler to require stylus file as rendered html
typescript.registerTypescriptAsModule(vbox, options)
['.ts']
register compiler to require typescript file as one valid module
typescript.registerTypescriptAsPlainJavascript(vbox, options)
['.ts']
register compiler to require typescript file as plain javascript string.
rollup.registerTypescriptAsRollupedJavascript(vbox, options)
['.ts', '.tsx']
register compiler to require typescript file as rolluped plain javascript string
require
vue.registerVueAsRollupedJavascript(vbox, options)
['.vue']
{}
, options passwd to rollup-plugin-vueregister compiler to require typescript file as rolluped plain javascript string
require
image.registerImageAsBase64(vbox, options)
['.png', '.jpg', '.jpeg', '.gif', '.bmp']
register compiler to require image file as base64 string
registerOptions.rollup
There's register based on rollup, its registerOptions has those options:
{}
, config passed to
const bundle = rollup.rollup({...})
{}
, config passed to
bundle.write({...})
bundle.generate({...})
(buf, info) => 's'
. generate name for rollup's umd
/iife
moderegisterOptions.burnout_timeout
In some cases, we want vbox to remove required module by ID after burnout_timeout
.
For example, you are developing one website's user profile page, which rendered from path/user-profile.pug
, you serve it with http.Server
and mq.Routing
, and require the pug file as require('path/user-profile.pug', __dirname)
with special vbox generated by registers in @fxjs/handbag
or by your own manual registering. You change the pug file, then you wish the next calling to require('path/user-profile.pug', __dirname)
would return the latest file resource. So, you need remove the required content every other times(such as 300ms), which is burnout_timeout
.
All reigsters's option in @fxjs/handbag
supports burnout_timeout
option : )
Copyright (c) 2018-present, Richard
FAQs
require resources directly 👝
The npm package @fxjs/handbag receives a total of 2 weekly downloads. As such, @fxjs/handbag popularity was classified as not popular.
We found that @fxjs/handbag demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
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.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.