mirror of
https://github.com/LukeHagar/vercel.git
synced 2025-12-06 04:22:01 +00:00
* Add API for frameworks and examples * Adjust headers * Update frameworks list * Always use latest * Add types * Use now repo for downloading and listing * Use .existsSync * Remove unused packages * Use 307 for redirect * Add examples * Update tsconfig.json Co-Authored-By: Steven <steven@ceriously.com> * Make examples unique * Remove detectors from frameworks API * Use /api instead of Next.js * Install dependencies * Rename project * Change name * Empty * Change name * Update api/tsconfig.json Co-Authored-By: Steven <steven@ceriously.com> * Update examples Co-authored-by: Steven <steven@ceriously.com>
65 lines
1.5 KiB
JavaScript
65 lines
1.5 KiB
JavaScript
import { inject } from 'aurelia-dependency-injection';
|
|
import { Project, ProjectItem, CLIOptions, UI } from 'aurelia-cli';
|
|
|
|
var path = require('path');
|
|
|
|
@inject(Project, CLIOptions, UI)
|
|
export default class ElementGenerator {
|
|
constructor(project, options, ui) {
|
|
this.project = project;
|
|
this.options = options;
|
|
this.ui = ui;
|
|
}
|
|
|
|
async execute() {
|
|
const name = await this.ui.ensureAnswer(
|
|
this.options.args[0],
|
|
'What would you like to call the component?'
|
|
);
|
|
|
|
const subFolders = await this.ui.ensureAnswer(
|
|
this.options.args[1],
|
|
"What sub-folder would you like to add it to?\nIf it doesn't exist it will be created for you.\n\nDefault folder is the source folder (src).",
|
|
'.'
|
|
);
|
|
|
|
let fileName = this.project.makeFileName(name);
|
|
let className = this.project.makeClassName(name);
|
|
|
|
this.project.root.add(
|
|
ProjectItem.text(
|
|
path.join(subFolders, fileName + '.js'),
|
|
this.generateJSSource(className)
|
|
),
|
|
ProjectItem.text(
|
|
path.join(subFolders, fileName + '.html'),
|
|
this.generateHTMLSource(className)
|
|
)
|
|
);
|
|
|
|
await this.project.commitChanges();
|
|
await this.ui.log(
|
|
`Created ${name} in the '${path.join(
|
|
this.project.root.name,
|
|
subFolders
|
|
)}' folder`
|
|
);
|
|
}
|
|
|
|
generateJSSource(className) {
|
|
return `export class ${className} {
|
|
constructor() {
|
|
this.message = 'Hello world';
|
|
}
|
|
}
|
|
`;
|
|
}
|
|
|
|
generateHTMLSource(className) {
|
|
return `<template>
|
|
<h1>\${message}</h1>
|
|
</template>
|
|
`;
|
|
}
|
|
}
|