light-generator
Advanced tools
Comparing version 1.3.3 to 1.4.0
@@ -27,3 +27,5 @@ import { CopyRule, CopyWalker } from './interface'; | ||
npmClient?: string; | ||
registryUrl?: string; | ||
}): NpmPatternGenerator; | ||
static cleanCache(): Promise<void>; | ||
} |
@@ -8,2 +8,5 @@ "use strict"; | ||
const rule_1 = require("./rule"); | ||
const util_1 = require("./util/"); | ||
const fs_1 = require("./util/fs"); | ||
const fs_extra_1 = require("fs-extra"); | ||
class LightGenerator { | ||
@@ -42,7 +45,14 @@ constructor(options = { disableDefaultRule: false }) { | ||
copyWalker: this.copyWalker, | ||
npmClient: options.npmClient || 'npm' | ||
npmClient: options.npmClient || 'npm', | ||
registryUrl: options.registryUrl, | ||
}); | ||
} | ||
static async cleanCache() { | ||
const tmpDir = util_1.getTmpDir(); | ||
if (fs_1.dirExistsSync(tmpDir)) { | ||
await fs_extra_1.remove(tmpDir); | ||
} | ||
} | ||
} | ||
exports.LightGenerator = LightGenerator; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDREQUE2RDtBQUU3RCx5RUFBc0U7QUFDdEUseUVBQXNFO0FBQ3RFLDZFQUEwRTtBQUMxRSxpQ0FBaUQ7QUFFakQsTUFBYSxjQUFjO0lBS3pCLFlBQVksVUFHUixFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRTtRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUkscUNBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFO1lBQ3BDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxrQkFBVyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQVUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBNkU7UUFDM0YsT0FBTyxJQUFJLDZDQUFxQixDQUFDO1lBQy9CLFdBQVcsRUFBRSxPQUFPLENBQUMsWUFBWTtZQUNqQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7WUFDOUIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO1lBQ2xDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQTJFO1FBQ3pGLE9BQU8sSUFBSSx5Q0FBbUIsQ0FBQztZQUM3QixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDaEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1lBQzlCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtZQUNsQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQXdFO1FBQ3ZGLE9BQU8sSUFBSSx5Q0FBbUIsQ0FBQztZQUM3QixXQUFXLEVBQUUsT0FBTyxDQUFDLFVBQVU7WUFDL0IsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1lBQzlCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxLQUFLO1NBQ3RDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FFRjtBQWhERCx3Q0FnREMifQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDREQUE2RDtBQUU3RCx5RUFBc0U7QUFDdEUseUVBQXNFO0FBQ3RFLDZFQUEwRTtBQUMxRSxpQ0FBaUQ7QUFDakQsa0NBQW9DO0FBQ3BDLGtDQUEwQztBQUMxQyx1Q0FBa0M7QUFFbEMsTUFBYSxjQUFjO0lBSXpCLFlBQ0UsVUFHSSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRTtRQUVqQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUkscUNBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFO1lBQ3BDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxrQkFBVyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQVUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxlQUFlLENBQUMsT0FJZjtRQUNDLE9BQU8sSUFBSSw2Q0FBcUIsQ0FBQztZQUMvQixXQUFXLEVBQUUsT0FBTyxDQUFDLFlBQVk7WUFDakMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1lBQzlCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtZQUNsQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUlmO1FBQ0MsT0FBTyxJQUFJLHlDQUFtQixDQUFDO1lBQzdCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztZQUNoQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7WUFDOUIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO1lBQ2xDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FLaEI7UUFDQyxPQUFPLElBQUkseUNBQW1CLENBQUM7WUFDN0IsV0FBVyxFQUFFLE9BQU8sQ0FBQyxVQUFVO1lBQy9CLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtZQUM5QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLElBQUksS0FBSztZQUNyQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVTtRQUNyQixNQUFNLE1BQU0sR0FBRyxnQkFBUyxFQUFFLENBQUM7UUFDM0IsSUFBSSxrQkFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLE1BQU0saUJBQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0QjtJQUNILENBQUM7Q0FDRjtBQXJFRCx3Q0FxRUMifQ== |
import { CommonGenerator } from './CommonGenerator'; | ||
import { NpmGeneratorOptions } from '../interface'; | ||
export declare function renamePackageName(pkgName: any): any; | ||
export declare class NpmPatternGenerator extends CommonGenerator { | ||
@@ -8,2 +7,3 @@ npmClient: string; | ||
pkgRootName: string; | ||
registryUrl: string; | ||
constructor(options: NpmGeneratorOptions); | ||
@@ -10,0 +10,0 @@ private getPackage; |
@@ -13,10 +13,6 @@ "use strict"; | ||
const path_1 = require("path"); | ||
const os_1 = require("os"); | ||
const fse = __importStar(require("fs-extra")); | ||
const fs_1 = require("../util/fs"); | ||
const tar = __importStar(require("tar")); | ||
function renamePackageName(pkgName) { | ||
return pkgName.replace(/^@(\w+)\//, '$1-'); | ||
} | ||
exports.renamePackageName = renamePackageName; | ||
const util_1 = require("../util/"); | ||
class NpmPatternGenerator extends CommonGenerator_1.CommonGenerator { | ||
@@ -26,14 +22,14 @@ constructor(options) { | ||
this.npmClient = options.npmClient; | ||
this.tmpPath = path_1.join(os_1.tmpdir(), 'gen_' + | ||
Date.now() | ||
.toString() | ||
.slice(0, 5)); | ||
this.registryUrl = options.registryUrl | ||
? '--registry=' + options.registryUrl | ||
: ''; | ||
this.tmpPath = util_1.getTmpDir(); | ||
fse.ensureDirSync(this.tmpPath); | ||
} | ||
async getPackage() { | ||
const data = child_process_1.execSync(`${this.npmClient} view ${this.templateUri} dist-tags --json`, { | ||
const data = child_process_1.execSync(`${this.npmClient} view ${this.templateUri} dist-tags --json ${this.registryUrl}`, { | ||
cwd: process.env.HOME, | ||
}).toString(); | ||
const remoteVersion = JSON.parse(data)['latest']; | ||
this.pkgRootName = `${renamePackageName(this.templateUri)}-${remoteVersion}`; | ||
this.pkgRootName = `${util_1.renamePackageName(this.templateUri)}-${remoteVersion}`; | ||
const currentPkgRoot = this.getTemplatePath(); | ||
@@ -45,3 +41,3 @@ if (!fs_1.dirExistsSync(currentPkgRoot)) { | ||
} | ||
const cmd = `${this.npmClient} pack ${this.templateUri}@${remoteVersion} | mkdir ${this.pkgRootName}`; | ||
const cmd = `${this.npmClient} pack ${this.templateUri}@${remoteVersion} ${this.registryUrl}| mkdir ${this.pkgRootName}`; | ||
child_process_1.execSync(cmd, { | ||
@@ -69,2 +65,2 @@ cwd: this.tmpPath, | ||
exports.NpmPatternGenerator = NpmPatternGenerator; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTnBtUGF0dGVybkdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5lcmF0b3IvTnBtUGF0dGVybkdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSx1REFBb0Q7QUFFcEQsaURBQXlDO0FBQ3pDLCtCQUE0QjtBQUM1QiwyQkFBNEI7QUFDNUIsOENBQWdDO0FBQ2hDLG1DQUEyQztBQUMzQyx5Q0FBMkI7QUFFM0IsU0FBZ0IsaUJBQWlCLENBQUMsT0FBTztJQUN2QyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFGRCw4Q0FFQztBQUVELE1BQWEsbUJBQW9CLFNBQVEsaUNBQWU7SUFLdEQsWUFBWSxPQUE0QjtRQUN0QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFJLENBQ2pCLFdBQU0sRUFBRSxFQUNSLE1BQU07WUFDSixJQUFJLENBQUMsR0FBRyxFQUFFO2lCQUNQLFFBQVEsRUFBRTtpQkFDVixLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUNqQixDQUFDO1FBQ0YsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLEtBQUssQ0FBQyxVQUFVO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLHdCQUFRLENBQ25CLEdBQUcsSUFBSSxDQUFDLFNBQVMsU0FBUyxJQUFJLENBQUMsV0FBVyxtQkFBbUIsRUFDN0Q7WUFDRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJO1NBQ3RCLENBQ0YsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNiLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLGlCQUFpQixDQUNyQyxJQUFJLENBQUMsV0FBVyxDQUNqQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsa0JBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNsQyxpQ0FBaUM7WUFDakMsSUFBSSxrQkFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDbkMsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNwQztZQUNELE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsU0FBUyxJQUFJLENBQUMsV0FBVyxJQUFJLGFBQWEsWUFBWSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEcsd0JBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNqQixLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQzthQUNsQyxDQUFDLENBQUM7WUFFSCxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ1YsSUFBSSxFQUFFLFdBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsTUFBTSxDQUFDO2dCQUNuRCxDQUFDLEVBQUUsV0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUN4QyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsa0JBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLGNBQWMseUJBQXlCLENBQUMsQ0FBQzthQUM3RDtTQUNGO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUI7UUFDckIsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEIsT0FBTyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sV0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0Y7QUE1REQsa0RBNERDIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTnBtUGF0dGVybkdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5lcmF0b3IvTnBtUGF0dGVybkdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSx1REFBb0Q7QUFFcEQsaURBQXlDO0FBQ3pDLCtCQUE0QjtBQUM1Qiw4Q0FBZ0M7QUFDaEMsbUNBQTJDO0FBQzNDLHlDQUEyQjtBQUMzQixtQ0FBd0Q7QUFFeEQsTUFBYSxtQkFBb0IsU0FBUSxpQ0FBZTtJQU10RCxZQUFZLE9BQTRCO1FBQ3RDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXO1lBQ3BDLENBQUMsQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLFdBQVc7WUFDckMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQVMsRUFBRSxDQUFDO1FBQzNCLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxLQUFLLENBQUMsVUFBVTtRQUN0QixNQUFNLElBQUksR0FBRyx3QkFBUSxDQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLFNBQVMsSUFBSSxDQUFDLFdBQVcscUJBQXFCLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFDakY7WUFDRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJO1NBQ3RCLENBQ0YsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNiLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLHdCQUFpQixDQUNyQyxJQUFJLENBQUMsV0FBVyxDQUNqQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsa0JBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNsQyxpQ0FBaUM7WUFDakMsSUFBSSxrQkFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDbkMsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNwQztZQUNELE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsU0FBUyxJQUFJLENBQUMsV0FBVyxJQUFJLGFBQWEsSUFBSSxJQUFJLENBQUMsV0FBVyxXQUFXLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN6SCx3QkFBUSxDQUFDLEdBQUcsRUFBRTtnQkFDWixHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ2pCLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDO2FBQ2xDLENBQUMsQ0FBQztZQUVILE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDVixJQUFJLEVBQUUsV0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxNQUFNLENBQUM7Z0JBQ25ELENBQUMsRUFBRSxXQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDO2FBQ3hDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxrQkFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsY0FBYyx5QkFBeUIsQ0FBQyxDQUFDO2FBQzdEO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQjtRQUNyQixNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QixPQUFPLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxXQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRjtBQTFERCxrREEwREMifQ== |
@@ -13,3 +13,4 @@ export declare type CopyRule = (currentFile: string, copyRuleOptions: CopyRuleOptions) => void; | ||
export interface NpmGeneratorOptions extends CommonGeneratorOptions { | ||
npmClient: string; | ||
npmClient?: string; | ||
registryUrl?: string; | ||
} | ||
@@ -16,0 +17,0 @@ export interface TemplatePackageConfig { |
1.4.0 / 2019-10-30 | ||
================== | ||
* chore: add clean cache method | ||
* chore: update remote registry | ||
* chore: add test | ||
* feat: support npm custom registry | ||
1.3.3 / 2019-10-29 | ||
@@ -3,0 +11,0 @@ ================== |
{ | ||
"name": "light-generator", | ||
"version": "1.3.3", | ||
"version": "1.4.0", | ||
"description": "light generator for generate a boilerplate", | ||
@@ -5,0 +5,0 @@ "main": "dist/index", |
@@ -39,3 +39,3 @@ # light generator | ||
- copyRule { CopyRule[] } 可选,可以通过这个配置,传递自定义拷贝规则 | ||
### API | ||
@@ -95,3 +95,13 @@ | ||
#### clean cache | ||
由于本模块会下载 npm 包到本地特定的临时目录,可以通过暴露的方法清理该目录。 | ||
注意,此方法为静态方法。 | ||
```ts | ||
await LightGenerator.cleanCache(); | ||
``` | ||
## Add custom copy rule | ||
@@ -181,3 +191,3 @@ | ||
- replaceFile { string []} 需要替换的文件列表,默认为 `README.md`,相对于 root,请一定填写规则修改前的文件名,支持 [minimatch](https://github.com/isaacs/minimatch) 格式的通配符 | ||
- rule { string []} 只对本模板生效自定义 copy 规则,内容为可以 require 的地址,内容格式为 `module.exports = async () => {}` | ||
- rule { string []} 只对本模板生效自定义 copy 规则,内容为可以 require 的地址,内容格式为 `module.exports = async () => {}` | ||
- afterAll { string } 所有拷贝都完成之后会执行代码地址,内容为可以 require 的地址,参数为 options | ||
@@ -191,4 +201,5 @@ - options | ||
## 其他 | ||
此模块部分核心代码从 serverless 模块中抽取。 |
@@ -7,12 +7,16 @@ import { DirectoryCopyWalker } from './util/copyDirContents'; | ||
import { ignoreRule, replaceRule } from './rule'; | ||
import { getTmpDir } from './util/'; | ||
import { dirExistsSync } from './util/fs'; | ||
import { remove } from 'fs-extra'; | ||
export class LightGenerator { | ||
options; | ||
copyWalker: CopyWalker; | ||
constructor(options: { | ||
disableDefaultRule: boolean; | ||
copyRule?: CopyRule[]; | ||
} = { disableDefaultRule: false }) { | ||
constructor( | ||
options: { | ||
disableDefaultRule: boolean; | ||
copyRule?: CopyRule[]; | ||
} = { disableDefaultRule: false } | ||
) { | ||
this.options = options; | ||
@@ -30,3 +34,7 @@ this.copyWalker = new DirectoryCopyWalker(this.options); | ||
defineLocalPath(options: { templateName?: string; templatePath: string; targetPath: string; }) { | ||
defineLocalPath(options: { | ||
templateName?: string; | ||
templatePath: string; | ||
targetPath: string; | ||
}) { | ||
return new LocalPatternGenerator({ | ||
@@ -40,3 +48,7 @@ templateUri: options.templatePath, | ||
defineRemoteUrl(options: { templateUrl: string; targetPath: string; templateName: string; }) { | ||
defineRemoteUrl(options: { | ||
templateUrl: string; | ||
targetPath: string; | ||
templateName: string; | ||
}) { | ||
return new UrlPatternGenerator({ | ||
@@ -50,3 +62,8 @@ templateUri: options.templateUrl, | ||
defineNpmPackage(options: { npmPackage: string; targetPath: string; npmClient?: string; }) { | ||
defineNpmPackage(options: { | ||
npmPackage: string; | ||
targetPath: string; | ||
npmClient?: string; | ||
registryUrl?: string; | ||
}) { | ||
return new NpmPatternGenerator({ | ||
@@ -56,6 +73,13 @@ templateUri: options.npmPackage, | ||
copyWalker: this.copyWalker, | ||
npmClient: options.npmClient || 'npm' | ||
npmClient: options.npmClient || 'npm', | ||
registryUrl: options.registryUrl, | ||
}); | ||
} | ||
static async cleanCache() { | ||
const tmpDir = getTmpDir(); | ||
if (dirExistsSync(tmpDir)) { | ||
await remove(tmpDir); | ||
} | ||
} | ||
} |
@@ -5,11 +5,7 @@ import { CommonGenerator } from './CommonGenerator'; | ||
import { join } from 'path'; | ||
import { tmpdir } from 'os'; | ||
import * as fse from 'fs-extra'; | ||
import { dirExistsSync } from '../util/fs'; | ||
import * as tar from 'tar'; | ||
import { getTmpDir, renamePackageName } from '../util/'; | ||
export function renamePackageName(pkgName) { | ||
return pkgName.replace(/^@(\w+)\//, '$1-'); | ||
} | ||
export class NpmPatternGenerator extends CommonGenerator { | ||
@@ -19,2 +15,3 @@ npmClient: string; | ||
pkgRootName: string; | ||
registryUrl: string; | ||
@@ -24,9 +21,6 @@ constructor(options: NpmGeneratorOptions) { | ||
this.npmClient = options.npmClient; | ||
this.tmpPath = join( | ||
tmpdir(), | ||
'gen_' + | ||
Date.now() | ||
.toString() | ||
.slice(0, 5) | ||
); | ||
this.registryUrl = options.registryUrl | ||
? '--registry=' + options.registryUrl | ||
: ''; | ||
this.tmpPath = getTmpDir(); | ||
fse.ensureDirSync(this.tmpPath); | ||
@@ -37,3 +31,3 @@ } | ||
const data = execSync( | ||
`${this.npmClient} view ${this.templateUri} dist-tags --json`, | ||
`${this.npmClient} view ${this.templateUri} dist-tags --json ${this.registryUrl}`, | ||
{ | ||
@@ -53,3 +47,3 @@ cwd: process.env.HOME, | ||
} | ||
const cmd = `${this.npmClient} pack ${this.templateUri}@${remoteVersion} | mkdir ${this.pkgRootName}`; | ||
const cmd = `${this.npmClient} pack ${this.templateUri}@${remoteVersion} ${this.registryUrl}| mkdir ${this.pkgRootName}`; | ||
execSync(cmd, { | ||
@@ -56,0 +50,0 @@ cwd: this.tmpPath, |
@@ -1,2 +0,5 @@ | ||
export type CopyRule = (currentFile: string, copyRuleOptions: CopyRuleOptions) => void; | ||
export type CopyRule = ( | ||
currentFile: string, | ||
copyRuleOptions: CopyRuleOptions | ||
) => void; | ||
@@ -16,3 +19,4 @@ export interface CopyWalker { | ||
export interface NpmGeneratorOptions extends CommonGeneratorOptions { | ||
npmClient: string; | ||
npmClient?: string; | ||
registryUrl?: string; | ||
} | ||
@@ -19,0 +23,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
100271
49
1739
202
14