function checkJSDependencyAddedInMDCPackage() { const NOT_IMPORTED = ['animation']; const NOT_AUTOINIT = ['auto-init', 'base', 'selection-control']; const name = pkg.name.split('/')[1]; if (typeof(pkg.main) !== 'undefined' && NOT_IMPORTED.indexOf(name) === -1) { const nameCamel = camelCase(pkg.name.replace('@material/', '')); const src = fs.readFileSync(path.join(process.env.PWD, MASTER_JS_PATH), 'utf8'); const ast = recast.parse(src, { parser: { parse: (code) => babylon.parse(code, {sourceType: 'module'}), }, }); assert(checkComponentImportedAddedInMDCPackage(ast), 'FAILURE: Component ' + pkg.name + ' is not being imported in MDC-web. ' + 'Please add ' + nameCamel + ' to '+ MASTER_JS_PATH + ' import rule before commit.'); assert(checkComponentExportedAddedInMDCPackage(ast), 'FAILURE: Component ' + pkg.name + ' is not being exported in MDC-web. ' + 'Please add ' + nameCamel + ' to '+ MASTER_JS_PATH + ' export before commit.'); if (NOT_AUTOINIT.indexOf(name) === -1) { assert(checkAutoInitAddedInMDCPackage(ast) > 0, 'FAILURE: Component ' + pkg.name + ' seems not being auto inited in MDC-web. ' + 'Please add ' + nameCamel + ' to '+ MASTER_JS_PATH + ' autoInit statement before commit.'); } } }
function installAdapter(cb) { console.log('Install adapter...'); var startFile = 'node_modules/' + appName + '.js-controller/' + appName + '.js'; // make first install if (debug) { child_process.execSync('node ' + startFile + ' add ' + pkg.name.split('.').pop() + ' --enabled false', { cwd: rootDir + 'tmp', stdio: [0, 1, 2] }); checkIsAdapterInstalled(function (error) { if (error) console.error(error); console.log('Adapter installed.'); cb && cb(); }); } else { // add controller var _pid = child_process.fork(startFile, ['add', pkg.name.split('.').pop(), '--enabled', 'false'], { cwd: rootDir + 'tmp', stdio: [0, 1, 2] }); waitForEnd(_pid, function () { checkIsAdapterInstalled(function (error) { if (error) console.error(error); console.log('Adapter installed.'); cb && cb(); }); }); } }
function checkCSSDependencyAddedInWebpackConfig() { const name = pkg.name.split('/')[1]; if (CSS_WHITELIST.indexOf(name) === -1) { const cssconfig = WEBPACK_CONFIG.find((value) => { return value.name === 'css'; }); const nameMDC = pkg.name.replace('@material/', 'mdc.'); assert.notEqual(typeof cssconfig.entry[nameMDC], 'undefined', 'FAILURE: Component ' + pkg.name + ' css denpendency not added to webpack ' + 'configuration. Please add ' + name + ' to ' + WEBPACK_CONFIG_PATH + '\'s css ' + 'entry before commit.'); } }
/** * Desc: Run plugin. * @param currDir * @param args * @param opts */ function run(currDir, args, opts){ pluginCfg.valid(currDir, args, opts); var projDir = currDir; if(args.length > 0){ var str = args[0]; projDir = core4cc.isAbsolute(str) ? str : path.join(currDir, str); } core4cc.log(msgCode.GENERATING, {target : "jsRes"}); var projCocosPath = path.join(projDir, "cocos.json"); var defCocos = require("../../cfg/cocos.json"); var projCocos = fs.existsSync(projCocosPath) ? require(projCocosPath) : {}; var pkgPath = path.join(projDir, "package.json"); core4cc.assert(fs.existsSync(pkgPath), msgCode.PKG_NOT_EXISTS, {dir : currDir}); var pkgJson = require(pkgPath); var pluginName = path.basename(__filename, ".js"); var cfg = core4cc.mergeData(projCocos[pluginName] ,defCocos[pluginName]); var output = opts[consts.OPT_O] ? opts[consts.OPT_O][0] : cfg.output; var resGen = new ResGen(opts[consts.OPT_DC] || cfg.dirCfgs, output); resGen.fileTypes = cfg.fileTypes; resGen.startStr = "var js = js || {};\r\njs." + pkgJson.name.replace(/-/g, "_") + " = "; resGen.projDir = projDir; resGen.resPre = "[%" + pkgJson.name + "%]" resGen.gen(); };
// todo: add timeout (check if title not changed for some time)? function runForCapabilities(caps) { const signature = `[${hub.name.toUpperCase()} ${capabilities.signature(caps)}]: `; console.log(`${signature}running...`); let driver; return new Promise((resolve, reject) => { driver = buildDriver(caps, resolve, reject); openUiAndRun(driver, signature); waitForDone(driver, signature); Promise.all([ getStats(driver), getErrors(driver), getConsole(driver), ]).then(([ stats, errorsReport, consoleReport ]) => { const hasErrors = stats.failures !== '0'; console.log(`${signature}done: ${JSON.stringify(stats, false, 2)}`); console.log(`${signature}console: ${consoleReport || 'empty'}`); if (hasErrors) { console.log(`${signature}errors:\n\n${errorsReport}\n\n`); } trySendSessionStatus(driver, signature, hasErrors); const quit = DEV_MODE ? Promise.resolve() : driver.quit(); quit.then( () => !hasErrors ? resolve() : reject(new Error(`Tests failed`)), reject ); }, reject) }) // catch error and resolve with it to not stop Promise.all chain .catch(e => fail(driver, signature, e)); }
module.exports = function startBrowserSync(port, middleware, cb) { const bsConfig = { proxy: { target: `localhost:${port}`, middleware, }, port: parseInt(port, 10) + 1, ui: { port: parseInt(port, 10) + 2, }, // no need to watch '*.js' here, webpack will take care of it for us, // including full page reloads if HMR won't work files: [ 'build/*.css', ], }; if (process.env.ENABLE_TUNNEL) { bsConfig.tunnel = pkg.name.replace(/\W/g,''); } const bs = browserSync.create(); bs.init(bsConfig, (err, bs) => { if (err) return cb(err); logger.browserSyncStarted(); // return the BrowserSync URLs, in case someone cares cb(null, bs.getOption("urls")); }); };
cq.forEach(function(q) { ch.send( q.name.color('&208') + ' ' + q.type.color('&K') + '\r\n' + q.desc ); });
function installAdapter(customName, cb) { if (typeof customName === "function") { cb = customName; customName = null; } customName = customName || pkg.name.split(".").pop(); console.log("Install adapter..."); const startFile = "node_modules/" + appName + ".js-controller/" + appName + ".js"; // make first install if (debug) { child_process.execSync("node " + startFile + " add " + customName + " --enabled false", { cwd: rootDir + "tmp", stdio: [0, 1, 2] }); checkIsAdapterInstalled(function (error) { if (error) console.error(error); console.log("Adapter installed."); if (cb) cb(); }); } else { // add controller const _pid = child_process.fork(startFile, ["add", customName, "--enabled", "false"], { cwd: rootDir + "tmp", stdio: [0, 1, 2, "ipc"] }); waitForEnd(_pid, function () { checkIsAdapterInstalled(function (error) { if (error) console.error(error); console.log("Adapter installed."); if (cb) cb(); }); }); } }
function checkIsAdapterInstalled(cb, counter, customName) { customName = customName || pkg.name.split(".").pop(); counter = counter || 0; const dataDir = rootDir + "tmp/" + appName + "-data/"; console.log("checkIsAdapterInstalled..."); try { const f = fs.readFileSync(dataDir + "objects.json"); const objects = JSON.parse(f.toString()); if (objects["system.adapter." + customName + ".0"]) { console.log("checkIsAdapterInstalled: ready!"); setTimeout(function () { if (cb) cb(); }, 100); return; } else { console.warn("checkIsAdapterInstalled: still not ready"); } } catch (err) { // Don't care } if (counter > 20) { console.error("checkIsAdapterInstalled: Cannot install!"); if (cb) cb("Cannot install"); } else { console.log("checkIsAdapterInstalled: wait..."); setTimeout(function() { checkIsAdapterInstalled(cb, counter + 1); }, 1000); } }
function checkIsAdapterInstalled(cb, counter) { counter = counter || 0; var dataDir = rootDir + 'tmp/' + appName + '-data/'; console.log('checkIsAdapterInstalled...'); try { var f = fs.readFileSync(dataDir + 'objects.json'); var objects = JSON.parse(f.toString()); if (objects['system.adapter.' + pkg.name.split('.').pop() + '.0']) { console.log('checkIsAdapterInstalled: ready!'); setTimeout(function () { cb && cb(); }, 100); return; } else { console.warn('checkIsAdapterInstalled: still not ready'); } } catch (err) { } if (counter > 20) { console.error('checkIsAdapterInstalled: Cannot install!'); cb && cb('Cannot install'); } else { console.log('checkIsAdapterInstalled: wait...'); setTimeout(function() { checkIsAdapterInstalled(cb, counter + 1); }, 1000); } }
gulp.task('hfe-combo:prepub', ['ssi'], function () { var repoinfo = require(process.cwd() + '/repo-info.json'); var baseUri if (repoinfo.useHttps || repoinfo.useHttps === 'true') { baseUri = 'https://awp-assets.sankuai.com/;;'; } else { baseUri = 'http://awp-assets.sankuai.com/;;'; } if (useCombo) { gulp.src('build/**/*.html') .pipe(Plugin.precombo(repoinfo)) .pipe(Plugin.combo(baseUri, null)) .pipe(gulp.dest('build')); } else { gulp.src('build/**/*.html') .pipe(uc({ url: 'http://awp-assets.sankuai.com', group: repoinfo.group.toLowerCase(), version: repoinfo.version, projectName: repoinfo.name.toLowerCase() })) .pipe(gulp.dest('build')); } });
require("fs").readdirSync(__dirname).forEach(function (file) { if (file != "index.js" && file != "GeoOperation.js.example" && file != "pcoderSettings.js") { var operation = require(__dirname + "/" + file); var name = operation.name.toLowerCase(); //Lower name GP.names.push(name); GP.operations[name] = operation; } });
return function (task) { if (_.startsWith(task.name, '$')) { task.name = task.name.substr(1); } else if (_.isString(prefix)) { task.name = _.isString(task.name) ? prefix + '.' + task.name : prefix; } createTask(task); };
require("fs").readdirSync(__dirname).forEach(function (file) { if (file != "index.js" && file != "CustomOperation.js.example") { var operation = require(__dirname + "/" + file); var name = operation.name.toLowerCase(); //Lower name Custom.names.push(name); Custom.operations[name] = operation; } });
function (plugin) { plugin = plugin.split('.')[0]; var loaded = require(NodeMonitorObject.config.pluginDirectory + plugin); NodeMonitorObject.plugins[loaded.name] = loaded; logger.write(constants.levels.INFO, 'Loading plugin: ' + loaded.name.toString()); pluginCount++; }
Object.keys(artists).forEach(function(name) { var artist = artistTbl.ins({name: name}); artists[name].forEach(function(song) { var song = songTbl.ins({ title: song[1], rate: song[0], artist: artist }); songTagTbl.ins({song: song, tag_id : song.id * 2 }); songTagTbl.ins({song: song, tag_id : song.id * 3 }); songTagTbl.ins({song: song, tag_id : song.id * 5 }); }); });
function checkCSSDependencyAddedInMDCPackage() { const name = pkg.name.split('/')[1]; let nameMDC = pkg.name.replace('@material/', 'mdc-'); if (name === 'textfield') { nameMDC = 'mdc-text-field'; } if (CSS_WHITELIST.indexOf(name) === -1) { const src = fs.readFileSync(path.join(process.env.PWD, MASTER_CSS_PATH), 'utf8'); const cssRules = cssom.parse(src).cssRules; const cssRule = path.join(pkg.name, nameMDC); assert.notEqual(typeof cssRules.find((value) => { return value.href === cssRule; }), 'undefined', 'FAILURE: Component ' + pkg.name + ' is not being imported in MDC-web. ' + 'Please add ' + name + ' to ' + MASTER_CSS_PATH + ' import rule before commit.'); } }
function checkJSDependencyAddedInWebpackConfig() { const jsconfig = WEBPACK_CONFIG.find((value) => { return value.name === 'js-components'; }); const nameCamel = camelCase(pkg.name.replace('@material/', '')); assert.notEqual(typeof jsconfig.entry[nameCamel], 'undefined', 'FAILURE: Component ' + pkg.name + ' javascript dependency is not added to webpack ' + 'configuration. Please add ' + nameCamel + ' to ' + WEBPACK_CONFIG_PATH + '\'s js-components ' + 'entry before commit.'); }
packages.forEach(function(packagePath) { // Load the package.json data. var dataPath = path.join(packagePath, 'package.json'); try { var data = require(dataPath); } catch (e) { return; } // Don't include private packages. if (data.private === true) { return; } // Only include packages in the @jupyterlab namespace. if (data.name.indexOf('@jupyterlab') === -1) { return; } // In order to cut down on the number of graph nodes, // don't include "*-extension" packages. if (data.name.indexOf('-extension') !== -1 ) { return; } // Construct a URL to the package on GitHub. var Url = path.join(baseUrl, path.basename(packagePath)); // Remove the '@jupyterlab' part of the name. var name = '"'+data.name.split('/')[1] +'"'; text += name + '[URL="' + Url + '"];\n'; var deps = data.dependencies || []; for (var dep in deps) { // Don't include non-jupyterlab dependencies. if (dep.indexOf('@jupyterlab') === -1) { continue; } dep = '"'+dep.split('/')[1]+'"'; text += name + ' -> ' + dep + ';\n'; } });
plugins.forEach(function (plugin) { /* Ignore config files */ if (plugin.indexOf('_config') == -1) { plugin = plugin.split('.')[0]; var loaded = require(process.cwd() + '/' + plugin); Module.plugins[loaded.name] = loaded; /* Validate plugin type */ if (!Module.utilities.validateType(loaded.type)) Module.utilities.exit('Plugin type is not defined'); Module.logger.write(Module.constants.levels.INFO, 'Loading plugin: ' + loaded.name.toString() + ', of type: ' + loaded.type); pluginCount++; } });
setRouter: function(router, ctrl, method, prefix) { for (var action in ctrl[method]) { var ctrlUrl = prefix + '/' + (ctrl.name).trim() + '/'; var actionUrl = ctrlUrl + action.replace(/_/g, "/"); if (action == 'index') { actionUrl = ctrlUrl; } router[method](actionUrl, ctrl[method][action]); //console.log(method, actionUrl); } },
function gen(projDir, opts){ if(arguments.length == 1){ opts = projDir; projDir = process.cwd(); } var packageInfo = require(path.join(projDir, "package.json"));//读取cocos配置信息 var cfg4JsRes = cfg.genJsRes; var resGen = new ResGen(cfg4JsRes.dirCfgs, cfg4JsRes.output); resGen.fileTypes = cfg4JsRes.fileTypes; resGen.startStr = "js." + packageInfo.name.replace(/-/g, "_") + " = "; resGen.projDir = projDir; resGen.resPre = "[%" + packageInfo.name + "%]" resGen.gen(); };
var overrideWithEnvVars = function(obj, path) { if (!path) { path = [APP_NAME.toUpperCase()]; } _.each(obj, function(value, key) { var keyPath = path.concat(key.toUpperCase()); if (_.isObject(value) && !_.isArray(value)) { return overrideWithEnvVars(value, keyPath); } if (process.env[keyPath.join("_")]) { obj[key] = process.env[keyPath.join("_")]; } }); };
function getPackageInfo(packageName) { const info = require(`${packageName}/package.json`); const isPreset = /^textlint-rule-preset-/.test(info.name); return { name: info.name, key: info.name.replace(/^textlint-rule-/, ""), version: info.version, description: info.description, author: _.isObject(info.author) ? info.author.name : info.author, license: info.license, homepage: info.homepage, isPreset: isPreset, rules: isPreset ? buildRulesFromPackageNames(_.keys(info.dependencies)) : [], schema: /* Place holder for textlint-registry */ null, }; }
global.load = function(docRef, doc, name) { var file = "./" + global.builder.testDirectory + "/files/" + name + "." + global.builder.type, fn = require(file); if (!fn[name]) { throw new Error("Test method " + name + " not found.."); } try { return fn[name].call(global); } catch (e) { debug(e.stack); } };
async loadCommands(){ log('loading commands') let files = await fs.readdirSync(__dirname); let commands = {}; for(const file in files){ if(files[file] === 'index.js'){ continue; } log(files[file]); const command = require(__dirname + '/' + files[file]); commands[command.name.toLowerCase()] = command; } log(Object.keys(commands)); log('\tdoneloading comamnds!'); return commands; }
files.forEach(function (filePath) { var data = { contents: fs.readFileSync(filePath, encoding) }, pkg = require(path.join(cwd, 'package.json')), output; data.name = pkg.name.replace('@gilt-tech/', ''); data.global = pkg.global_var /* legacy */ || pkg.gilt.globalVar || data.name.split('.')[1]; log.info('', 'Rendering:' + filePath.grey); output = mustache.render(template, data); fs.writeFileSync(filePath, output, encoding); });
function loadVendor(app, appRoot, name) { const path = resolveFrom(appRoot, name + '/package.json'); const root = pathUtil.dirname(path); const pkg = require(path); const info = { name: pkg.name.replace(rNamespace, ''), // remove namespace version: pkg.version, path: root, assets: true, assetsRoot: '', reload: false, build: false }; debug('try load assets vendor: %o', info); app.moduleResolver.pushModule(info); }
scriptPaths.map(folder => { const check = resolve(folder, scriptFilename) let scripts try { const pkgManifest = require(runtime.pathUtils.resolve(folder, '..', 'package.json')) scripts = get(pkgManifest, 'skypager.providesScripts', []) if (scripts === false) { scripts = [] } // only pull scripts from certain @skypager packages if ( !scripts.length && !pkgManifest.name.match(/@skypager\/(helpers|features|devtools|portfolio-manager)/) ) { scripts = [] } if (portfolioName !== '@skypager') { const portfolioScriptsConfig = get(pkgManifest, [ portfolioName.replace('@', ''), 'providesScripts', [], ]) if (portfolioScriptsConfig && portfolioScriptsConfig.length) { scripts.push(...portfolioScriptsConfig) } } } catch (error) { console.error(error.message) } return exists(check).then( yes => yes && check && (!scripts.length || scripts.indexOf(scriptFilename.replace(/\.js$/, '')) > -1) && check ) })
function checkComponentExportedAddedInMDCPackage(ast) { let nameCamel = camelCase(pkg.name.replace('@material/', '')); if (nameCamel === 'textfield') { nameCamel = 'textField'; } let isExported = false; traverse(ast, { 'ExportNamedDeclaration'({node}) { if (node.specifiers) { if (node.specifiers.find((value) => { return value.exported.name === nameCamel; })) { isExported = true; } } }, }); return isExported; }