Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@patternfly/create-element

Package Overview
Dependencies
Maintainers
15
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@patternfly/create-element - npm Package Compare versions

Comparing version 1.0.0 to 1.0.1

2

generator/element.d.ts
import type { GenerateElementOptions } from '../main';
export declare class PackageJSONError extends Error {
}
/**

@@ -3,0 +5,0 @@ * Generate an Element

89

generator/element.js
import Case from 'case';
import Chalk from 'chalk';
import prompts from 'prompts';
import { execa } from 'execa';
import { fileURLToPath } from 'url';
import { dirname, join, relative } from 'path';
import { $ } from 'execa';
import { fileURLToPath } from 'node:url';
import { dirname, join, relative } from 'node:path';
import * as path from 'node:path';
import { exists, mkdirp, processTemplate, readFile, writeFile } from './files.js';
import { memoize } from './fp.js';
const { green, greenBright } = Chalk;
const { blue, green, greenBright, red, yellow } = Chalk;
const __dirname = dirname(fileURLToPath(import.meta.url));
const $$ = $({ stderr: 'inherit' });
/**

@@ -115,36 +117,22 @@ * Available filenames.

if (!options.silent) {
console.log(`✏️ Wrote ${green(relative(options.directory, PATH))}`);
console.log(` ✏️ ${green(relative(options.directory, PATH))}`);
}
}
async function writeElementFiles(options) {
if (!await shouldWriteToDir(options)) {
return;
async function getElementPackageJsonPath(options) {
const abspath = getComponentAbsPath(options);
const { root } = path.parse(abspath);
let packageJsonPath;
let currentdir = abspath;
while (currentdir !== root && !packageJsonPath) {
const possible = join(currentdir, 'package.json');
if (await exists(possible)) {
packageJsonPath = possible;
}
else {
currentdir = dirname(currentdir);
}
}
if (!options.silent) {
console.log(`\nCreating ${green(options.tagName)} in ${getComponentPathFromDirectoryOption(options)}\n`);
}
// $ mkdir -p /Users/alj/jazz-elements/elements/pf-jazz-hands
await mkdirp(getComponentAbsPath(options));
for (const key of Object.keys(FileKey).sort()) {
await writeComponentFile(key, options);
}
if (!options.silent) {
console.log(`\n${greenBright('Done!')}`);
}
return packageJsonPath;
}
async function analyzeElement(options) {
if (!options.silent) {
console.log(`\nAnalyzing ${greenBright(options.tagName)}`);
}
const { stderr, stdout } = await execa('npm', ['run', 'analyze',], {
all: true,
cwd: options.directory,
});
if (stderr) {
console.log(stderr);
throw new Error(`Could not analyze ${options.tagName}`);
}
else if (!options.silent) {
console.log(stdout);
}
export class PackageJSONError extends Error {
}

@@ -155,15 +143,36 @@ /**

export async function generateElement(options) {
// ctrl-c
const log = (...args) => void (!options?.silent && console.log(...args));
const start = performance.now();
if (!options || !options.tagName) {
// ctrl-c
return;
}
// Quit if trying to scaffold an element in an uninitialized non-monorepo
if (!await exists(join(options.directory, 'package.json'))) {
return console.log('‼️ No package.json found.', '� Scaffold a repository first');
else if (!await exists(join(options.directory, 'package.json'))) {
// Quit if trying to scaffold an element in an uninitialized non-monorepo
throw new PackageJSONError('‼️ No package.json found. � Scaffold a repository first');
}
else if (!await shouldWriteToDir(options)) {
return log(red `Skipping`, 'file write!');
}
else {
await writeElementFiles(options);
analyzeElement; // skip this for now, come back to fix later
const packageJsonPath = await getElementPackageJsonPath(options) ?? './**/package.json ./package.json';
if (!await exists(packageJsonPath)) {
throw new PackageJSONError(`Could not find package at ${packageJsonPath}`);
}
log(`\nCreating ${green(options.tagName)} in ${getComponentPathFromDirectoryOption(options)}\n`);
log(blue `Writing`, 'files...');
// $ mkdir -p /Users/alj/jazz-elements/elements/pf-jazz-hands
await mkdirp(getComponentAbsPath(options));
for (const key of Object.keys(FileKey).sort()) {
await writeComponentFile(key, options);
}
log(blue `Linting`, `${relative(options.directory, packageJsonPath)} for package exports...`);
await $$ `npx eslint ${packageJsonPath} --fix`;
log(blue `Analyzing`, 'elements...');
await $$ `npm run analyze`;
const end = performance.now();
const seconds = (end - start) / 1000;
log(`\n${greenBright `Done`} in ${yellow(seconds.toFixed(2))} seconds`);
}
}
//# sourceMappingURL=element.js.map

@@ -1,2 +0,2 @@

import { generateElement } from './generator/element.js';
import { generateElement, PackageJSONError } from './generator/element.js';
import Chalk from 'chalk';

@@ -9,28 +9,32 @@ import Yargs from 'yargs';

const b = Chalk.cyanBright;
/** generated at https://dom111.github.io/image-to-ansi/ */
function banner() {
console.log(`${Chalk.cyan(`
${b('`qQQQQQQg.')}
'${b('N@@@@@@@;')}
7${b('g@@@@@@@S')}
^QD${b('Q@@@@@@@|')}
+QQQ${b('K@@@@@@@@i')}
'jQQQQD${b('d@@@@@@@@X,')}
,mQQQQQQQb${b('k@@@@@@@@@b+')}
.;7qQQQQQQQQQD~;${b('8@@@@@@@@@8}^\'')}
=77JyU%NQQQQQQQQQNi\` ${b('`cQ@@@@@@@@@@@BKauz|')}
${b('%@@@@@@QQ#')}gDR&QDL. ${b('`iN@@@@@@@@@@@@@@Q')}
${b('%@@@@@@@@@@@QK')}= ${b('+RQ@@@@@@@@@@@Q')}
${b('%@@@@@@@@@@@@@@B7.')} \`?bQBRd%${b('NQQ@@@@@@Q')}
${b('=7uaq#@@@@@@@@@@@Qz`')} \`|WQQQQQQQQQN%UyJ77?
${b('.!Ig@@@@@@@@@B!')},qQQQQQQQQQbz;.
${b('~A@@@@@@@@@X')}qQQQQQQQk^
${b(';D@@@@@@@@K')}DQQQQK;
${b('*@@@@@@@@b')}NQQ*
${b('=@@@@@@@Q')}dQ<
${b('j@@@@@@@Wx')}
${b('_@@@@@@@Q,')}
${b('`bQQQQQQ%``')}
console.log(`\x1b[49m \x1b[38;5;87;49m▄\x1b[38;5;87;48;5;87m▄\x1b[38;5;87;49m▄\x1b[49m \x1b[m
\x1b[49m \x1b[38;5;81;49m▄\x1b[38;5;81;48;5;87m▄▄\x1b[49m \x1b[38;5;81;48;5;87m▄\x1b[38;5;87;48;5;87m▄\x1b[38;5;81;49m▄\x1b[49m \x1b[m
\x1b[49m \x1b[38;5;81;49m▄\x1b[38;5;81;48;5;81m▄\x1b[49;38;5;81m▀\x1b[38;5;81;48;5;81m▄▄\x1b[49m \x1b[38;5;81;48;5;81m▄▄\x1b[49;38;5;81m▀\x1b[38;5;81;48;5;81m▄\x1b[38;5;81;49m▄\x1b[49m \x1b[m
\x1b[49m \x1b[38;5;81;49m▄\x1b[38;5;81;48;5;81m▄\x1b[49;38;5;81m▀\x1b[49m \x1b[38;5;81;48;5;81m▄\x1b[49m \x1b[38;5;81;48;5;81m▄\x1b[49m \x1b[38;5;81;48;5;81m▄\x1b[49m \x1b[38;5;81;48;5;81m▄\x1b[49m \x1b[49;38;5;81m▀\x1b[38;5;81;48;5;81m▄\x1b[38;5;81;49m▄\x1b[49m \x1b[m
\x1b[49m \x1b[38;5;81;49m▄\x1b[49;38;5;81m▀\x1b[38;5;81;48;5;81m▄\x1b[49;38;5;81m▀\x1b[49m \x1b[38;5;81;49m▄\x1b[49m \x1b[38;5;81;48;5;81m▄\x1b[49m \x1b[38;5;81;48;5;81m▄\x1b[49m \x1b[49;38;5;81m▀\x1b[38;5;81;49m▄\x1b[49m \x1b[49;38;5;81m▀\x1b[38;5;81;48;5;81m▄\x1b[49;38;5;81m▀\x1b[38;5;81;49m▄\x1b[49m \x1b[m
\x1b[49m \x1b[38;5;81;49m▄\x1b[49;38;5;81m▀\x1b[38;5;81;49m▄\x1b[49;38;5;81m▀\x1b[49m \x1b[38;5;81;49m▄\x1b[49;38;5;81m▀\x1b[49m \x1b[49;38;5;81m▀\x1b[49m \x1b[49;38;5;81m▀\x1b[49m \x1b[49;38;5;81m▀\x1b[38;5;81;49m▄\x1b[49m \x1b[49;38;5;81m▀\x1b[38;5;81;49m▄\x1b[49;38;5;81m▀\x1b[38;5;81;49m▄\x1b[49m \x1b[m
\x1b[49m \x1b[38;5;81;49m▄\x1b[49;38;5;81m▀\x1b[38;5;81;49m▄\x1b[49;38;5;81m▀\x1b[49m \x1b[38;5;81;49m▄\x1b[49;38;5;81m▀\x1b[49m \x1b[38;5;81;49m▄\x1b[49m \x1b[38;5;81;49m▄\x1b[49m \x1b[49;38;5;81m▀\x1b[38;5;81;49m▄\x1b[49m \x1b[49;38;5;81m▀\x1b[38;5;81;49m▄\x1b[49;38;5;81m▀\x1b[38;5;81;49m▄\x1b[49m \x1b[m
\x1b[49m \x1b[38;5;80;49m▄\x1b[38;5;81;48;5;81m▄\x1b[49;38;5;81m▀\x1b[49m \x1b[38;5;81;49m▄\x1b[49;38;5;81m▀\x1b[49m \x1b[49;38;5;81m▀\x1b[49m \x1b[38;5;81;48;5;81m▄\x1b[49m \x1b[38;5;81;48;5;81m▄\x1b[49m \x1b[49;38;5;81m▀\x1b[49m \x1b[49;38;5;81m▀\x1b[38;5;81;49m▄\x1b[49m \x1b[49;38;5;81m▀\x1b[38;5;81;48;5;81m▄\x1b[38;5;81;49m▄\x1b[49m \x1b[m
\x1b[49m \x1b[38;5;81;49m▄\x1b[38;5;81;48;5;80m▄\x1b[49;38;5;81m▀\x1b[49m \x1b[38;5;80;49m▄\x1b[49;38;5;81m▀\x1b[49m \x1b[38;5;81;48;5;81m▄\x1b[49m \x1b[38;5;80;48;5;81m▄\x1b[49m \x1b[38;5;80;48;5;81m▄\x1b[49m \x1b[38;5;80;48;5;81m▄\x1b[49m \x1b[49;38;5;80m▀\x1b[38;5;80;49m▄\x1b[49m \x1b[49;38;5;81m▀\x1b[38;5;81;48;5;80m▄\x1b[38;5;80;49m▄\x1b[49m \x1b[m
\x1b[49m \x1b[38;5;80;49m▄\x1b[38;5;80;48;5;80m▄\x1b[49;38;5;81m▀\x1b[49m \x1b[38;5;74;49m▄\x1b[38;5;74;48;5;81m▄\x1b[49m \x1b[38;5;80;48;5;80m▄\x1b[49m \x1b[38;5;80;48;5;80m▄\x1b[49m \x1b[38;5;80;48;5;80m▄\x1b[49m \x1b[38;5;80;48;5;80m▄\x1b[49m \x1b[38;5;80;48;5;80m▄\x1b[38;5;75;49m▄\x1b[49m \x1b[49;38;5;80m▀\x1b[38;5;80;48;5;81m▄\x1b[38;5;80;49m▄\x1b[49m \x1b[m
\x1b[49m \x1b[38;5;74;49m▄\x1b[38;5;74;48;5;80m▄\x1b[49;38;5;80m▀\x1b[49m \x1b[38;5;74;49m▄\x1b[49;38;5;74m▀\x1b[49m \x1b[38;5;74;48;5;74m▄\x1b[49m \x1b[38;5;74;48;5;74m▄\x1b[49m \x1b[38;5;74;48;5;74m▄\x1b[49m \x1b[38;5;74;48;5;74m▄\x1b[49m \x1b[49;38;5;74m▀\x1b[38;5;74;49m▄\x1b[49m \x1b[49;38;5;74m▀\x1b[38;5;74;48;5;80m▄\x1b[38;5;74;49m▄\x1b[49m \x1b[m
\x1b[49m \x1b[38;5;74;49m▄\x1b[49;38;5;74m▀▀\x1b[49m \x1b[49;38;5;74m▀\x1b[38;5;74;49m▄\x1b[49m \x1b[38;5;74;49m▄\x1b[49m \x1b[38;5;74;48;5;74m▄\x1b[49m \x1b[38;5;74;48;5;74m▄\x1b[49m \x1b[38;5;74;49m▄\x1b[49m \x1b[38;5;74;49m▄\x1b[49;38;5;75m▀\x1b[49m \x1b[49;38;5;74m▀▀\x1b[38;5;74;49m▄\x1b[49m \x1b[m
\x1b[49m \x1b[38;5;74;49m▄\x1b[49;38;5;74m▀▀\x1b[49m \x1b[49;38;5;74m▀\x1b[38;5;74;49m▄\x1b[49m \x1b[38;5;74;49m▄\x1b[49m \x1b[38;5;74;48;5;74m▄\x1b[49m \x1b[38;5;74;48;5;74m▄\x1b[49m \x1b[38;5;74;49m▄\x1b[49m \x1b[38;5;74;49m▄\x1b[49;38;5;74m▀\x1b[49m \x1b[49;38;5;81m▀\x1b[49;38;5;74m▀\x1b[38;5;74;49m▄\x1b[49m \x1b[m
\x1b[38;5;74;48;5;74m▄\x1b[49;38;5;74m▀\x1b[49m \x1b[49;38;5;74m▀\x1b[38;5;74;49m▄▄\x1b[49;38;5;74m▀\x1b[49m \x1b[38;5;74;48;5;74m▄\x1b[49m \x1b[38;5;74;48;5;74m▄\x1b[49m \x1b[49;38;5;74m▀\x1b[38;5;74;49m▄▄\x1b[49;38;5;74m▀\x1b[49m \x1b[38;5;74;48;5;74m▄\x1b[m
\x1b[49m \x1b[49;38;5;74m▀\x1b[38;5;74;49m▄\x1b[49m \x1b[38;5;74;49m▄\x1b[49;38;5;74m▀\x1b[38;5;74;49m▄\x1b[49m \x1b[38;5;74;48;5;74m▄\x1b[49m \x1b[38;5;74;48;5;74m▄\x1b[49m \x1b[38;5;74;49m▄\x1b[49;38;5;74m▀\x1b[38;5;74;49m▄\x1b[49m \x1b[38;5;74;49m▄\x1b[49;38;5;74m▀\x1b[49m \x1b[m
\x1b[49m \x1b[49;38;5;38m▀\x1b[38;5;38;49m▄\x1b[49m \x1b[38;5;38;49m▄\x1b[49;38;5;74m▀\x1b[49m \x1b[49;38;5;74m▀\x1b[38;5;38;49m▄\x1b[49m \x1b[49;38;5;74m▀\x1b[49m \x1b[49;38;5;74m▀\x1b[49m \x1b[38;5;38;49m▄\x1b[49;38;5;74m▀\x1b[49m \x1b[49;38;5;74m▀\x1b[38;5;38;49m▄\x1b[49m \x1b[38;5;38;49m▄\x1b[49;38;5;74m▀\x1b[49m \x1b[m
\x1b[49m \x1b[38;5;38;48;5;38m▄\x1b[49m \x1b[49;38;5;38m▀\x1b[38;5;38;49m▄\x1b[49m \x1b[38;5;38;48;5;38m▄\x1b[38;5;38;49m▄\x1b[49m \x1b[38;5;38;48;5;38m▄\x1b[49m \x1b[38;5;38;48;5;38m▄\x1b[49m \x1b[38;5;38;48;5;38m▄\x1b[49m \x1b[38;5;38;48;5;38m▄\x1b[49;38;5;38m▀\x1b[49m \x1b[38;5;38;48;5;38m▄\x1b[49m \x1b[m
\x1b[49m \x1b[49;38;5;38m▀\x1b[38;5;38;49m▄\x1b[49m \x1b[49;38;5;38m▀\x1b[38;5;38;49m▄\x1b[49m \x1b[49;38;5;38m▀\x1b[38;5;38;49m▄\x1b[49m \x1b[38;5;38;48;5;38m▄\x1b[49m \x1b[38;5;38;48;5;38m▄\x1b[49m \x1b[38;5;38;49m▄\x1b[49;38;5;38m▀\x1b[49m \x1b[38;5;38;49m▄\x1b[49;38;5;38m▀\x1b[49m \x1b[38;5;38;49m▄\x1b[49;38;5;38m▀\x1b[49m \x1b[m
\x1b[49m \x1b[38;5;32;48;5;38m▄\x1b[49m \x1b[49;38;5;38m▀\x1b[38;5;32;49m▄\x1b[49m \x1b[38;5;32;48;5;38m▄\x1b[49m \x1b[38;5;32;48;5;32m▄\x1b[49m \x1b[38;5;32;48;5;32m▄\x1b[49m \x1b[38;5;32;48;5;32m▄\x1b[49m \x1b[38;5;32;49m▄\x1b[49;38;5;38m▀\x1b[49m \x1b[38;5;32;48;5;32m▄\x1b[49m \x1b[m
\x1b[49m \x1b[49;38;5;32m▀\x1b[38;5;32;49m▄\x1b[49m \x1b[38;5;32;48;5;32m▄\x1b[49m \x1b[38;5;32;49m▄▄\x1b[38;5;32;48;5;32m▄▄\x1b[49m \x1b[38;5;32;48;5;32m▄▄\x1b[38;5;32;49m▄▄\x1b[49m \x1b[38;5;32;48;5;32m▄\x1b[49m \x1b[38;5;32;49m▄\x1b[49;38;5;32m▀\x1b[49m \x1b[m
\x1b[49m \x1b[49;38;5;32m▀\x1b[38;5;32;49m▄\x1b[49m \x1b[38;5;32;49m▄▄▄\x1b[49m \x1b[49;38;5;32m▀▀▀▀\x1b[38;5;32;49m▄\x1b[49m \x1b[38;5;32;48;5;32m▄\x1b[49m \x1b[38;5;32;49m▄\x1b[49m \x1b[38;5;32;49m▄\x1b[49;38;5;32m▀▀▀▀\x1b[49m \x1b[38;5;32;49m▄▄▄\x1b[49m \x1b[38;5;32;49m▄\x1b[49;38;5;32m▀\x1b[49m \x1b[m
\x1b[49m \x1b[49;38;5;32m▀\x1b[38;5;32;48;5;32m▄\x1b[49m \x1b[49;38;5;32m▀\x1b[38;5;32;49m▄\x1b[49m \x1b[38;5;32;49m▄\x1b[49;38;5;32m▀\x1b[49m \x1b[38;5;32;48;5;32m▄\x1b[49m \x1b[m
\x1b[49m \x1b[49;38;5;32m▀\x1b[38;5;32;49m▄\x1b[49m \x1b[49;38;5;32m▀\x1b[38;5;32;49m▄\x1b[49;38;5;32m▀\x1b[49m \x1b[38;5;32;49m▄\x1b[49;38;5;32m▀\x1b[49m \x1b[m
\x1b[49m \x1b[49;38;5;32m▀\x1b[38;5;31;49m▄\x1b[49m \x1b[38;5;31;49m▄\x1b[49;38;5;32m▀\x1b[49m \x1b[m
\x1b[49m \x1b[49;38;5;31m▀\x1b[49m \x1b[49;38;5;31m▀\x1b[49m \x1b[m
\x1b[49m \x1b[49;38;5;31m▀\x1b[38;5;31;49m▄\x1b[49;38;5;31m▀\x1b[49m \x1b[m
${Chalk.bold(Chalk.blue('PatternFly Elements'))}
`)}`);
${Chalk.bold(Chalk.blue('PatternFly Elements'))}`);
}

@@ -102,4 +106,13 @@ export async function promptForElementGeneratorOptions(options) {

.then(promptForElementGeneratorOptions)
.then(generateElement);
.then(generateElement)
.catch(e => {
if (e instanceof PackageJSONError) {
console.log(e.message);
process.exit(1);
}
else {
throw e;
}
});
}
//# sourceMappingURL=main.js.map
{
"name": "@patternfly/create-element",
"version": "1.0.0",
"version": "1.0.1",
"description": "Scaffold web components monorepos based on PatternFly Elements",

@@ -48,7 +48,7 @@ "author": "Benny Powers <bennyp@redhat.com>",

"chalk": "5.0.1",
"execa": "^6.1.0",
"execa": "^7.1.0",
"ncp": "2.0.0",
"prompts": "2.4.2",
"tslib": "2.5.0",
"yargs": "17.5.1"
"yargs": "17.7.1"
},

@@ -55,0 +55,0 @@ "directories": {

import { LitElement, html } from 'lit';
import { customElement } from 'lit/decorators.js';
import { customElement } from 'lit/decorators/custom-element.js';

@@ -4,0 +4,0 @@ import styles from '<%= cssRelativePath %>';

@@ -5,15 +5,14 @@ import { expect, html } from '@open-wc/testing';

const element = html`
<<%= tagName %>></<%= tagName %>>
`;
describe('<<%= tagName %>>', function() {
it('should upgrade', async function() {
const el = await createFixture <<%= className %>> (element);
const klass = customElements.get('<%= tagName %>');
expect(el)
.to.be.an.instanceOf(klass)
.and
.to.be.an.instanceOf(<%= className %>);
});
describe('simply instantiating', function() {
let element: <%= className %>;
it('should upgrade', async function() {
element = await createFixture<<%= className %>>(html`<<%= tagName %>></<%= tagName %>>`);
const klass = customElements.get('<%= tagName %>');
expect(element)
.to.be.an.instanceOf(klass)
.and
.to.be.an.instanceOf(<%= className %>);
});
})
});
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