@create-figma-plugin/build
Version:
Build a Figma/FigJam plugin/widget
35 lines • 1.52 kB
JavaScript
import { exec } from 'node:child_process';
import fs from 'node:fs/promises';
import { dirname, join } from 'node:path';
import { fileURLToPath } from 'node:url';
import { constants, writeFileAsync } from '@create-figma-plugin/common';
import { findUp } from 'find-up';
import { globby } from 'globby';
const __dirname = dirname(fileURLToPath(import.meta.url));
export async function buildCssModulesTypingsAsync(esmModule) {
const tcm = await findUp(join('node_modules', 'typed-css-modules', 'lib', 'cli.js'), { cwd: __dirname });
if (typeof tcm === 'undefined') {
throw new Error('Cannot find `tcm`');
}
await new Promise(function (resolve, reject) {
exec(`node "${tcm}" ${esmModule === true ? '--allowArbitraryExtensions ' : ''} ${constants.build.srcDirectoryName}`, function (error) {
if (error !== null) {
reject(error);
return;
}
resolve();
});
});
if (esmModule === true) {
await patchExportSyntaxAsync();
}
}
async function patchExportSyntaxAsync() {
const typingsFilePaths = await globby(join(constants.build.srcDirectoryName, '**', '*.d.css.ts'));
for (const typingsFilePath of typingsFilePaths) {
const contents = await fs.readFile(typingsFilePath, 'utf8');
const result = contents.replace('export = styles;', 'export default styles;');
await writeFileAsync(typingsFilePath, result);
}
}
//# sourceMappingURL=build-css-modules-typings-async.js.map