Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@codeshift/initializer

Package Overview
Dependencies
Maintainers
1
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@codeshift/initializer - npm Package Compare versions

Comparing version
0.1.3
to
0.1.4
+9
template/tsconfig.json
{
"include": ["src/**/*"],
"compilerOptions": {
"outDir": "dist",
"esModuleInterop": true,
"allowJs": true,
"types": ["jest", "node"]
}
}
+8
-0
# @codeshift/initializer
## 0.1.4
### Patch Changes
- e8cf76e: Releasing all packages to fix version mismatch
- Updated dependencies [e8cf76e]
- @codeshift/utils@0.1.3
## 0.1.3

@@ -4,0 +12,0 @@

+26
-25

@@ -47,7 +47,7 @@ 'use strict';

},
dependencies: {
'@codeshift/utils': "^".concat(package_json.version)
},
dependencies: {},
devDependencies: {
'@codeshift/utils': "^".concat(package_json.version),
'@codeshift/test-utils': '*',
'@types/node': '^16.11.0',
'@types/jest': '^26.0.15',

@@ -63,14 +63,15 @@ jest: '^26.6.0',

function getConfig(packageName, version) {
return "export default {\n maintainers: [],\n target: [],\n description: 'Codemods for ".concat(packageName, "',\n transforms: {\n '").concat(version, "': require('./").concat(version, "/transform'),\n },\n presets: {},\n};\n");
function getConfig(packageName, transform, preset) {
return "module.exports = {\n maintainers: [],\n target: [],\n description: 'Codemods for ".concat(packageName, "',\n transforms: {").concat(transform ? "'".concat(transform, "': require.resolve('./").concat(transform, "/transform'),") : '', "},\n presets: {").concat(preset ? "'".concat(preset, "': require.resolve('./").concat(preset, "/transform'),") : '', "},\n};\n");
}
function updateConfig(path, packageName, version) {
function updateConfig(path, packageName, transformName, type) {
var source = fs__default['default'].readFileSync(path, 'utf8');
var ast = recast__namespace.parse(source);
var b = recast__namespace.types.builders;
var key = type === 'version' ? 'transforms' : 'presets';
recast__namespace.visit(ast, {
visitProperty(path) {
// @ts-ignore
if (path.node.key.name !== 'transforms') return false; // @ts-ignore
if (path.node.key.name !== key) return false; // @ts-ignore

@@ -80,7 +81,7 @@ var properties = path.node.value.properties; // @ts-ignore

properties.forEach(property => {
if (semver__default['default'].eq(property.key.value, version)) {
throw new Error("Transform for ".concat(packageName, " version ").concat(version, " already exists"));
if (property.key.value === transformName) {
throw new Error("Transform for ".concat(packageName, " ").concat(transformName, " already exists"));
}
});
properties.push(b.property('init', b.stringLiteral(version), b.callExpression(b.identifier('require'), [b.stringLiteral("./".concat(version, "/transform"))])));
properties.push(b.property('init', b.stringLiteral(transformName), b.callExpression(b.memberExpression(b.identifier('require'), b.identifier('resolve')), [b.stringLiteral("./".concat(transformName, "/transform"))])));
return false;

@@ -96,22 +97,22 @@ }

function initDirectory(packageName, version) {
var targetPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : './';
var isReduced = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
function initDirectory(packageName, transform, type) {
var path = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : './';
var isReduced = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
if (!semver__default['default'].valid(version)) {
throw new Error("Provided version ".concat(version, " is not a valid semver version"));
if (type === 'version' && !semver__default['default'].valid(transform)) {
throw new Error("Provided version ".concat(transform, " is not a valid semver version"));
}
var basePath = "".concat(targetPath, "/").concat(packageName.replace('/', '__'));
var codemodPath = "".concat(basePath).concat(!isReduced ? '/src/' : '', "/").concat(version);
var configPath = "".concat(basePath).concat(!isReduced ? '/src' : '', "/codeshift.config.ts");
var basePath = "".concat(path, "/").concat(packageName.replace('/', '__'));
var transformPath = "".concat(basePath).concat(!isReduced ? '/src/' : '', "/").concat(transform);
var configPath = "".concat(basePath).concat(!isReduced ? '/src' : '', "/codeshift.config.js");
if (fs__default['default'].existsSync(codemodPath)) {
throw new Error("Codemod for version \"".concat(version, "\" already exists"));
if (fs__default['default'].existsSync(transformPath)) {
throw new Error("Codemod for ".concat(type, " \"").concat(transform, "\" already exists"));
}
fs__default['default'].copySync("".concat(__dirname, "/../template").concat(isReduced ? '/src' : ''), basePath);
fs__default['default'].renameSync("".concat(basePath).concat(!isReduced ? '/src/' : '', "/codemod"), codemodPath);
var testFile = fs__default['default'].readFileSync("".concat(codemodPath, "/transform.spec.ts"), 'utf8').replace('<% packageName %>', packageName).replace('<% version %>', version);
fs__default['default'].writeFileSync("".concat(codemodPath, "/transform.spec.ts"), testFile);
fs__default['default'].renameSync("".concat(basePath).concat(!isReduced ? '/src/' : '', "/codemod"), transformPath);
var testFile = fs__default['default'].readFileSync("".concat(transformPath, "/transform.spec.ts"), 'utf8').replace('<% packageName %>', packageName).replace('<% seperator %>', type === 'version' ? '@' : '#').replace('<% transform %>', transform || '');
fs__default['default'].writeFileSync("".concat(transformPath, "/transform.spec.ts"), testFile);

@@ -123,5 +124,5 @@ if (!isReduced) {

if (!fs__default['default'].existsSync(configPath)) {
fs__default['default'].writeFileSync(configPath, getConfig(packageName, version));
fs__default['default'].writeFileSync(configPath, getConfig(packageName, transform));
} else {
fs__default['default'].writeFileSync(configPath, updateConfig(configPath, packageName, version));
fs__default['default'].writeFileSync(configPath, updateConfig(configPath, packageName, transform || '', type));
}

@@ -128,0 +129,0 @@ }

@@ -47,7 +47,7 @@ 'use strict';

},
dependencies: {
'@codeshift/utils': "^".concat(package_json.version)
},
dependencies: {},
devDependencies: {
'@codeshift/utils': "^".concat(package_json.version),
'@codeshift/test-utils': '*',
'@types/node': '^16.11.0',
'@types/jest': '^26.0.15',

@@ -63,14 +63,15 @@ jest: '^26.6.0',

function getConfig(packageName, version) {
return "export default {\n maintainers: [],\n target: [],\n description: 'Codemods for ".concat(packageName, "',\n transforms: {\n '").concat(version, "': require('./").concat(version, "/transform'),\n },\n presets: {},\n};\n");
function getConfig(packageName, transform, preset) {
return "module.exports = {\n maintainers: [],\n target: [],\n description: 'Codemods for ".concat(packageName, "',\n transforms: {").concat(transform ? "'".concat(transform, "': require.resolve('./").concat(transform, "/transform'),") : '', "},\n presets: {").concat(preset ? "'".concat(preset, "': require.resolve('./").concat(preset, "/transform'),") : '', "},\n};\n");
}
function updateConfig(path, packageName, version) {
function updateConfig(path, packageName, transformName, type) {
var source = fs__default['default'].readFileSync(path, 'utf8');
var ast = recast__namespace.parse(source);
var b = recast__namespace.types.builders;
var key = type === 'version' ? 'transforms' : 'presets';
recast__namespace.visit(ast, {
visitProperty(path) {
// @ts-ignore
if (path.node.key.name !== 'transforms') return false; // @ts-ignore
if (path.node.key.name !== key) return false; // @ts-ignore

@@ -80,7 +81,7 @@ var properties = path.node.value.properties; // @ts-ignore

properties.forEach(property => {
if (semver__default['default'].eq(property.key.value, version)) {
throw new Error("Transform for ".concat(packageName, " version ").concat(version, " already exists"));
if (property.key.value === transformName) {
throw new Error("Transform for ".concat(packageName, " ").concat(transformName, " already exists"));
}
});
properties.push(b.property('init', b.stringLiteral(version), b.callExpression(b.identifier('require'), [b.stringLiteral("./".concat(version, "/transform"))])));
properties.push(b.property('init', b.stringLiteral(transformName), b.callExpression(b.memberExpression(b.identifier('require'), b.identifier('resolve')), [b.stringLiteral("./".concat(transformName, "/transform"))])));
return false;

@@ -96,22 +97,22 @@ }

function initDirectory(packageName, version) {
var targetPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : './';
var isReduced = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
function initDirectory(packageName, transform, type) {
var path = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : './';
var isReduced = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
if (!semver__default['default'].valid(version)) {
throw new Error("Provided version ".concat(version, " is not a valid semver version"));
if (type === 'version' && !semver__default['default'].valid(transform)) {
throw new Error("Provided version ".concat(transform, " is not a valid semver version"));
}
var basePath = "".concat(targetPath, "/").concat(packageName.replace('/', '__'));
var codemodPath = "".concat(basePath).concat(!isReduced ? '/src/' : '', "/").concat(version);
var configPath = "".concat(basePath).concat(!isReduced ? '/src' : '', "/codeshift.config.ts");
var basePath = "".concat(path, "/").concat(packageName.replace('/', '__'));
var transformPath = "".concat(basePath).concat(!isReduced ? '/src/' : '', "/").concat(transform);
var configPath = "".concat(basePath).concat(!isReduced ? '/src' : '', "/codeshift.config.js");
if (fs__default['default'].existsSync(codemodPath)) {
throw new Error("Codemod for version \"".concat(version, "\" already exists"));
if (fs__default['default'].existsSync(transformPath)) {
throw new Error("Codemod for ".concat(type, " \"").concat(transform, "\" already exists"));
}
fs__default['default'].copySync("".concat(__dirname, "/../template").concat(isReduced ? '/src' : ''), basePath);
fs__default['default'].renameSync("".concat(basePath).concat(!isReduced ? '/src/' : '', "/codemod"), codemodPath);
var testFile = fs__default['default'].readFileSync("".concat(codemodPath, "/transform.spec.ts"), 'utf8').replace('<% packageName %>', packageName).replace('<% version %>', version);
fs__default['default'].writeFileSync("".concat(codemodPath, "/transform.spec.ts"), testFile);
fs__default['default'].renameSync("".concat(basePath).concat(!isReduced ? '/src/' : '', "/codemod"), transformPath);
var testFile = fs__default['default'].readFileSync("".concat(transformPath, "/transform.spec.ts"), 'utf8').replace('<% packageName %>', packageName).replace('<% seperator %>', type === 'version' ? '@' : '#').replace('<% transform %>', transform || '');
fs__default['default'].writeFileSync("".concat(transformPath, "/transform.spec.ts"), testFile);

@@ -123,5 +124,5 @@ if (!isReduced) {

if (!fs__default['default'].existsSync(configPath)) {
fs__default['default'].writeFileSync(configPath, getConfig(packageName, version));
fs__default['default'].writeFileSync(configPath, getConfig(packageName, transform));
} else {
fs__default['default'].writeFileSync(configPath, updateConfig(configPath, packageName, version));
fs__default['default'].writeFileSync(configPath, updateConfig(configPath, packageName, transform || '', type));
}

@@ -128,0 +129,0 @@ }

export declare function getPackageJson(packageName: string, version?: string): string;
export declare function initDirectory(packageName: string, version: string, targetPath?: string, isReduced?: boolean): void;
export declare function initDirectory(packageName: string, transform: string, type: 'version' | 'preset', path?: string, isReduced?: boolean): void;
{
"name": "@codeshift/initializer",
"version": "0.1.3",
"version": "0.1.4",
"main": "dist/codeshift-initializer.cjs.js",

@@ -5,0 +5,0 @@ "types": "dist/codeshift-initializer.cjs.d.ts",

@@ -17,7 +17,7 @@ import fs from 'fs-extra';

},
dependencies: {
dependencies: {},
devDependencies: {
'@codeshift/utils': `^${utilVersion}`,
},
devDependencies: {
'@codeshift/test-utils': '*',
'@types/node': '^16.11.0',
'@types/jest': '^26.0.15',

@@ -36,11 +36,15 @@ jest: '^26.6.0',

function getConfig(packageName: string, version: string) {
return `export default {
function getConfig(packageName: string, transform?: string, preset?: string) {
return `module.exports = {
maintainers: [],
target: [],
description: 'Codemods for ${packageName}',
transforms: {
'${version}': require('./${version}/transform'),
},
presets: {},
transforms: {${
transform
? `'${transform}': require.resolve('./${transform}/transform'),`
: ''
}},
presets: {${
preset ? `'${preset}': require.resolve('./${preset}/transform'),` : ''
}},
};

@@ -50,6 +54,12 @@ `;

function updateConfig(path: string, packageName: string, version: string) {
function updateConfig(
path: string,
packageName: string,
transformName: string,
type: 'version' | 'preset',
) {
const source = fs.readFileSync(path, 'utf8');
const ast = recast.parse(source);
const b = recast.types.builders;
const key = type === 'version' ? 'transforms' : 'presets';

@@ -59,3 +69,3 @@ recast.visit(ast, {

// @ts-ignore
if (path.node.key.name !== 'transforms') return false;
if (path.node.key.name !== key) return false;
// @ts-ignore

@@ -65,5 +75,5 @@ const properties = path.node.value.properties;

properties.forEach(property => {
if (semver.eq(property.key.value, version)) {
if (property.key.value === transformName) {
throw new Error(
`Transform for ${packageName} version ${version} already exists`,
`Transform for ${packageName} ${transformName} already exists`,
);

@@ -76,6 +86,10 @@ }

'init',
b.stringLiteral(version),
b.callExpression(b.identifier('require'), [
b.stringLiteral(`./${version}/transform`),
]),
b.stringLiteral(transformName),
b.callExpression(
b.memberExpression(
b.identifier('require'),
b.identifier('resolve'),
),
[b.stringLiteral(`./${transformName}/transform`)],
),
),

@@ -93,31 +107,36 @@ );

packageName: string,
version: string,
targetPath: string = './',
transform: string,
type: 'version' | 'preset',
path: string = './',
isReduced: boolean = false,
) {
if (!semver.valid(version)) {
if (type === 'version' && !semver.valid(transform)) {
throw new Error(
`Provided version ${version} is not a valid semver version`,
`Provided version ${transform} is not a valid semver version`,
);
}
const basePath = `${targetPath}/${packageName.replace('/', '__')}`;
const codemodPath = `${basePath}${!isReduced ? '/src/' : ''}/${version}`;
const basePath = `${path}/${packageName.replace('/', '__')}`;
const transformPath = `${basePath}${!isReduced ? '/src/' : ''}/${transform}`;
const configPath = `${basePath}${
!isReduced ? '/src' : ''
}/codeshift.config.ts`;
}/codeshift.config.js`;
if (fs.existsSync(codemodPath)) {
throw new Error(`Codemod for version "${version}" already exists`);
if (fs.existsSync(transformPath)) {
throw new Error(`Codemod for ${type} "${transform}" already exists`);
}
fs.copySync(`${__dirname}/../template${isReduced ? '/src' : ''}`, basePath);
fs.renameSync(`${basePath}${!isReduced ? '/src/' : ''}/codemod`, codemodPath);
fs.renameSync(
`${basePath}${!isReduced ? '/src/' : ''}/codemod`,
transformPath,
);
const testFile = fs
.readFileSync(`${codemodPath}/transform.spec.ts`, 'utf8')
.readFileSync(`${transformPath}/transform.spec.ts`, 'utf8')
.replace('<% packageName %>', packageName)
.replace('<% version %>', version);
.replace('<% seperator %>', type === 'version' ? '@' : '#')
.replace('<% transform %>', transform || '');
fs.writeFileSync(`${codemodPath}/transform.spec.ts`, testFile);
fs.writeFileSync(`${transformPath}/transform.spec.ts`, testFile);

@@ -129,9 +148,9 @@ if (!isReduced) {

if (!fs.existsSync(configPath)) {
fs.writeFileSync(configPath, getConfig(packageName, version));
fs.writeFileSync(configPath, getConfig(packageName, transform));
} else {
fs.writeFileSync(
configPath,
updateConfig(configPath, packageName, version),
updateConfig(configPath, packageName, transform || '', type),
);
}
}