Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
isMutable ? 'let' : 'const', [jsc.variableDeclarator(key, value)]));
(node as NodeWithComments).comments = getCommentsFromNode(propNode);
exportRecords.push({name, node});
} else if (value.type === 'FunctionExpression') {
const func = value;
const node = jsc.exportNamedDeclaration(jsc.functionDeclaration(
key, // id
func.params,
func.body,
func.generator));
(node as NodeWithComments).comments = getCommentsFromNode(propNode);
exportRecords.push({name, node});
} else if (value.type === 'ArrowFunctionExpression') {
const isMutable =
mutableNames.has(fullName) || mutableNames.has(thisName);
const node = jsc.exportNamedDeclaration(jsc.variableDeclaration(
isMutable ? 'let' : 'const', [jsc.variableDeclarator(key, value)]));
(node as NodeWithComments).comments = getCommentsFromNode(propNode);
exportRecords.push({name, node});
} else if (value.type === 'Identifier') {
const node = jsc.exportNamedDeclaration(
null,
[jsc.exportSpecifier(jsc.identifier(name), jsc.identifier(name))]);
(node as NodeWithComments).comments = getCommentsFromNode(propNode);
exportRecords.push({name, node});
} else {
console.warn('Namespace property not handled:', name, value);
}
}
return exportRecords;
}
const node = jsc.exportNamedDeclaration(jsc.functionDeclaration(
key, // id
func.params,
func.body,
func.generator));
(node as NodeWithComments).comments = getCommentsFromNode(propNode);
exportRecords.push({name, node});
} else if (value.type === 'ArrowFunctionExpression') {
const isMutable =
mutableNames.has(fullName) || mutableNames.has(thisName);
const node = jsc.exportNamedDeclaration(jsc.variableDeclaration(
isMutable ? 'let' : 'const', [jsc.variableDeclarator(key, value)]));
(node as NodeWithComments).comments = getCommentsFromNode(propNode);
exportRecords.push({name, node});
} else if (value.type === 'Identifier') {
const node = jsc.exportNamedDeclaration(
null,
[jsc.exportSpecifier(jsc.identifier(name), jsc.identifier(name))]);
(node as NodeWithComments).comments = getCommentsFromNode(propNode);
exportRecords.push({name, node});
} else {
console.warn('Namespace property not handled:', name, value);
}
}
return exportRecords;
}
} else {
// Not a namespace, fallback to a named export
// We could probably do better for referenced declarations, ie
// move the export to the declaration
let exportedName =
fullyQualifiedNamePath[fullyQualifiedNamePath.length - 1];
// Special Polymer workaround: Rename `Polymer.Element` to have the
// es6ExportName `PolymerElement`.
if (fullyQualifiedName === 'Polymer.Element') {
exportedName = 'PolymerElement';
}
replacePreservingComments(
assignment,
jsc.exportNamedDeclaration(
null, // declaration
[jsc.exportSpecifier(identifier, jsc.identifier(exportedName))]));
this.exportMigrationRecords.push(
{es6ExportName: exportedName, oldNamespacedName: fullyQualifiedName});
}
}
} else {
// Not a namespace, fallback to a named export
// We could probably do better for referenced declarations, ie
// move the export to the declaration
let exportedName =
fullyQualifiedNamePath[fullyQualifiedNamePath.length - 1];
// Special Polymer workaround: Rename `Polymer.Element` to have the
// es6ExportName `PolymerElement`.
if (fullyQualifiedName === 'Polymer.Element') {
exportedName = 'PolymerElement';
}
replacePreservingComments(
assignment,
jsc.exportNamedDeclaration(
null, // declaration
[jsc.exportSpecifier(identifier, jsc.identifier(exportedName))]));
this.exportMigrationRecords.push(
{es6ExportName: exportedName, oldNamespacedName: fullyQualifiedName});
}
}
function appendActionCreatorFunction({ast, constantName, actionCreatorName}) {
const newFunction = j.functionDeclaration(j.identifier(actionCreatorName), [], j.blockStatement([
j.returnStatement(
j.objectExpression([
j.property('init', j.literal('type'), j.identifier(constantName)),
])
),
]))
const newExport = j.exportNamedDeclaration(newFunction, [], null)
const exports = ast
.find(j.ExportNamedDeclaration)
exports
.at(exports.length - 1)
.insertAfter(newExport)
}
export default function appendConstant({ast, name, value}) {
const newVariableDeclaration = j.variableDeclaration('const', [
j.variableDeclarator(j.identifier(name), j.literal(value)),
])
const newExport = j.exportNamedDeclaration(newVariableDeclaration, [], null)
const exports = ast
.find(j.ExportNamedDeclaration)
return exports
.at(exports.length - 1)
.insertAfter(newExport)
}