
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
engine-v12 for vuejs 2.x projects, provide these class or factory for the frontend architect
factory
add 2 optional fields for vuejs component options
controlled
services
object
auto render the controlled component if provided
interface ViewControllerOptionControlled {
// vue sfc object or some component exports
controlled: VueComponentOptions;
getProps: () => any;
}
array
auto create services from the option: services, and drop them onto the vuejs component instance
type ViewControllerOptionServices =
| ViewService[]
| { id?: string; service: ViewService; args?: any[]; initArgs: any[] };
there are some special directive for initArgs
engine-v12 would replace it with the vue component instance
engine-v12 would replace it with the service declared
import { ViewController } from 'engine-v12';
import { ViewRequestService, SomeViewService } from './services';
import { SomeControlledComponent } from './components';
export default ViewController({
// name is required
name: 'some-component',
// option services is optional
services: [
{
service: ViewRequestService,
initArgs: ['@vm'],
},
SomeViewService,
{
id: 'someViewService2',
service: SomeViewService,
args: [
// ... some args you provide for the SomeViewService constructor
],
initArgs: [
'@vm',
// viewRequestService is ViewRequestService instance
'@vm-service.viewRequestService',
],
},
],
// option controlled is optional
controlled: {
component: SomeControlledComponent,
getProps() {
// the returned object would passed to SomeControlledComponent as props
return {
message: 'hello world',
};
},
},
mounted() {
console.log(this.viewRequestService);
console.log(this.someViewService);
console.log(this.someViewService2);
},
});
class
use ViewService as base class for extend purpose, ViewService make sure your class instances would set onto the vue component instance
example
import { ViewService } from 'engine-v12';
export class ViewRequestService extends ViewService {
#vm;
init(vm) {
// and you would treat the #vm as data provider
this.#vm = vm;
}
}
singleton class
commonly used for request api, and make data access more clear
const daos = new DataAccessObject({
// required
api: someUserRequest,
// optional
requestAdapter(requestDto) {
// we can do sth for adapt
return requestDto;
},
// optional
responseAdapter(responseDto) {
// we can do sth for adapt
return responseDto;
},
});
class
commonly used for providing config
const someConfigProvider = new ConfigProvider({
obj: {
color: '#fff',
},
});
const color = someConfigProvider.get('obj.color');
factory
commonly used for providing view context
const viewCtxProvider = ViewContextProvider(['someProp']);
// set it for the vue component options
// () => { someProp: this['someProp'] }
viewCtxProvider.provide;
// set it for the vue component options
// ['someProp']
viewCtxProvider.inject;
FAQs
a business achitect resolution for vue application development
We found that engine-v12 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 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
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.