Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'bower-config' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
export async function makeProperTestDir(dirname: string) {
const startingDir = path.join(baseDir, dirname);
const tempDir = path.join(baseDir, 'temp');
if (await exists(tempDir)) {
await new Promise((resolve, reject) => {
rimraf(tempDir, (err) => err ? reject(err) : resolve());
});
}
fs.mkdirSync(tempDir);
// copy dir
const pathToTestDir = await copyDir(startingDir, tempDir);
const bowerDir = bowerConfig.read(pathToTestDir).directory;
fs.mkdirSync(path.join(pathToTestDir, 'node_modules'));
fs.mkdirSync(
path.join(pathToTestDir, 'node_modules', 'web-component-tester'));
// set up symlinks into component dirs for browser.js, data/, and wct's
// dependencies (like mocha, sinon, etc)
const componentsDirs = new Set([bowerDir]);
for (const baseFile of fs.readdirSync(startingDir)) {
if (new RegExp(`${bowerDir}(-|$)`).test(baseFile)) {
componentsDirs.add(baseFile);
}
}
for (const baseComponentsDir of componentsDirs) {
const componentsDir = path.join(pathToTestDir, baseComponentsDir);
process.nextTick(function () {
// Verify name
// TODO: Verify with the new spec regexp?
if (!name) {
return logger.emit('error', createError('Please type a name', 'EINVNAME'));
}
// The public registry only allows git:// endpoints
// As such, we attempt to convert URLs as necessary
if (config.registry.register === Config.DEFAULT_REGISTRY) {
url = convertUrl(url, logger);
if (!mout.string.startsWith(url, 'git://')) {
return logger.emit('error', createError('The registry only accepts URLs starting with git://', 'EINVFORMAT'));
}
}
// Attempt to resolve the package referenced by the URL to ensure
// everything is ok before registering
repository = new PackageRepository(config, logger);
repository.fetch({ name: name, source: url, target: '*' })
.spread(function (canonicalDir, pkgMeta) {
if (pkgMeta.private) {
throw createError('The package you are trying to register is marked as private', 'EPRIV');
}
process.nextTick(function () {
// Verify name
// TODO: Verify with the new spec regexp?
if (!name) {
return logger.emit('error', createError('Please type a name', 'EINVNAME'));
}
// The public registry only allows git:// endpoints
// As such, we attempt to convert URLs as necessary
if (config.registry.register === Config.DEFAULT_REGISTRY) {
url = convertUrl(url, logger);
if (!mout.string.startsWith(url, 'git://')) {
return logger.emit('error', createError('The registry only accepts URLs starting with git://', 'EINVFORMAT'));
}
}
tracker.track('register');
// Attempt to resolve the package referenced by the URL to ensure
// everything is ok before registering
repository = new PackageRepository(config, logger);
repository.fetch({ name: name, source: url, target: '*' })
.spread(function (canonicalDir, pkgMeta) {
if (pkgMeta.private) {
throw createError('The package you are trying to register is marked as private', 'EPRIV');
var tty = require('tty');
var mout = require('mout');
var config = require('bower-config').read();
var cli = require('./util/cli');
// Delete the json attribute because it is no longer supported
// and conflicts with --json
delete config.json;
// If interactive is auto (null), guess its value
if (config.interactive == null) {
config.interactive = (
process.bin === 'bower' &&
tty.isatty(1) &&
!process.env.CI
);
}
// If `analytics` hasn't been explicitly set, we disable
var tty = require('tty');
var mout = require('mout');
var config = require('bower-config').read();
var cli = require('./util/cli');
// Delete the json attribute because it is no longer supported
// and conflicts with --json
delete config.json;
// If interactive is auto (null), guess its value
if (config.interactive == null) {
config.interactive = process.bin === 'bower' && tty.isatty(1);
}
// Merge common CLI options into the config
mout.object.mixIn(config, cli.readOptions({
force: { type: Boolean, shorthand: 'f' },
offline: { type: Boolean, shorthand: 'o' },
verbose: { type: Boolean, shorthand: 'V' },
// Time how long tasks take. Can help when optimizing build times
require('time-grunt')(grunt);
// Ensure copyright banners
require('./copyright')(grunt);
var saveLicense = require('uglify-save-license');
// Define the configuration for all the tasks
grunt.initConfig({
// Project settings
yeoman: {
// configurable paths
app: require('./bower.json').appPath || 'app',
bower: require('bower-config').read('').directory || 'app/bower_components',
dist: 'dist',
target: 'target',
test: 'test'
},
stage: {
name: process.env.STAGE || 'development'
},
dmpProject: {
backendDir: process.env.DMP_HOME || '../../data-management-platform',
name: 'd:swarm',
versions: {
web: {
revision: 'HEAD',
date: 'latest'
function readCachedConfig(cwd) {
if (cachedConfigs[cwd]) {
return cachedConfigs[cwd];
}
var config = cachedConfigs[cwd] = bowerConfig.read(cwd);
var configstore = new Configstore('bower-github').all;
object.mixIn(config, configstore);
// Delete the json attribute because it is no longer supported
// and conflicts with --json
delete config.json;
// If interactive is auto (null), guess its value
if (config.interactive == null) {
config.interactive = (
process.bin === 'bower' &&
tty.isatty(1) &&
!process.env.CI
);
}
function bowerTrees () {
var bowerDir = require('bower-config').read().directory // note: this relies on cwd
if (bowerDir == null) throw new Error('Bower did not return a directory')
var entries = fs.readdirSync(bowerDir)
var directories = entries.filter(function (f) {
return fs.statSync(path.join(bowerDir, f)).isDirectory()
})
var files = entries.filter(function (f) {
var stat = fs.statSync(path.join(bowerDir, f))
return stat.isFile() || stat.isSymbolicLink()
})
var trees = []
for (var i = 0; i < directories.length; i++) {
trees = trees.concat(Tree._fromDirectory(path.join(bowerDir, directories[i])))
}
// Pick up files as well; this is for compatibility with EAK's vendor/loader.js
for (i = 0; i < files.length; i++) {
trees.push(new Tree(bowerDir).map('/' + files[i], '/' + files[i]))
function readCachedConfig(cwd, overwrites) {
current = bowerConfig.create(cwd).load(overwrites);
var config = current.toObject();
var configstore = new Configstore('bower-github').all;
object.mixIn(config, configstore);
// If interactive is auto (null), guess its value
if (config.interactive == null) {
config.interactive =
process.bin === 'bower' && tty.isatty(1) && !process.env.CI;
}
// Merge common CLI options into the config
if (process.bin === 'bower') {
var cli = require('./util/cli');
options.packageDir = options.packageDir || findup(packageJsonName);
if (!options.packageDir) {
return missingPackageJson();
}
options.packageDir = path.resolve(
options.packageDir.replace(packageJsonRegex, ''),
);
packageJson = `${options.packageDir}/${packageJsonName}`;
if (!fs.existsSync(packageJson)) {
return missingPackageJson();
}
packageJson = require(packageJson);
if (options.packageManager === 'bower') {
const bowerConfig = require('bower-config')
.create(options.packageDir)
.load();
depsDirName = bowerConfig._config.directory;
}
// Bower uses a different name (with a dot) for package data of dependencies.
const depsJsonName =
options.packageManager === 'npm' ? 'package.json' : '.bower.json';
if (options.packageManager === 'bower') {
// Allow a local bower.
pkgManagerPath = findup('node_modules/bower/bin/bower');
}
const depsDir = `${options.packageDir}/${depsDirName}`;