ember-codemod-add-component-signatures
Version:
Codemod to add component signatures
28 lines (27 loc) • 1.13 kB
JavaScript
import { readFileSync } from 'node:fs';
import { join } from 'node:path';
import { processTemplate } from '@codemod-utils/blueprints';
import { pascalize } from '@codemod-utils/ember';
import { createFiles, } from '@codemod-utils/files';
import { blueprintsRoot } from '../utils/blueprints.js';
import { getClassPath } from '../utils/components.js';
const blueprintFile = readFileSync(join(blueprintsRoot, 'ember-cli/template-only-component.ts'), 'utf8');
export function createTemplateOnlyComponents(context, options) {
const { extensionMap } = context;
const fileMap = new Map();
for (const [componentName, extensions] of extensionMap) {
const hasClass = extensions.has('.gts') || extensions.has('.ts');
if (hasClass) {
continue;
}
const filePath = getClassPath(componentName, extensions, options);
const data = {
entity: {
pascalizedName: pascalize(componentName),
},
};
const file = processTemplate(blueprintFile, data);
fileMap.set(filePath, file);
}
createFiles(fileMap, options);
}