Socket
Socket
Sign inDemoInstall

light-generator

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

light-generator - npm Package Compare versions

Comparing version 1.3.3 to 1.4.0

dist/util/index.d.ts

2

dist/generator.d.ts

@@ -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==

2

dist/generator/NpmPatternGenerator.d.ts
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 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc