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.');
    }
  }
}
Example #2
0
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.');
  }
}
Example #4
0
/**
 * 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();
};
Example #5
0
// 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));
}
Example #6
0
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"));
  });
};
Example #7
0
			cq.forEach(function(q) {
				ch.send(
					q.name.color('&208') + ' ' 
					+ q.type.color('&K')  + '\r\n' 
					+ q.desc
				);
			});
Example #8
0
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();
            });
        });
    }
}
Example #9
0
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);
    }
}
Example #10
0
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);
    }
}
Example #11
0
    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'));
        }
    });
Example #12
0
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;
    }
});
Example #13
0
 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);
 };
Example #14
0
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;
    }
});
Example #15
0
		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++;
		}
Example #16
0
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';
  }
});
Example #20
0
 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);
		}
	},
Example #22
0
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();
};
Example #23
0
    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,
  };
}
Example #25
0
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);
  }
};
Example #26
0
	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;
	}
Example #27
0
  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);
  });
Example #28
0
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);
}
Example #29
0
    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;
}