cwait/.cweb-config/create-calls.mjs
2025-04-02 17:07:30 +03:00

39 lines
1.1 KiB
JavaScript

import fsSync from 'fs';
import yaml from 'js-yaml';
import path from 'path';
const workdirPath = process.cwd();
// Define a custom tag for including external YAML files
const extendedSchema = yaml.DEFAULT_SCHEMA.extend([
new yaml.Type('!include', {
kind: 'scalar',
resolve: function (data) {
return typeof data === 'string';
},
construct: function (filePath) {
try {
const content = fsSync.readFileSync(filePath, 'utf8');
return yaml.load(content, { schema: yaml.DEFAULT_SCHEMA });
} catch (error) {
console.log('\n');
console.log('Did you forget to build your contract modules?');
console.log('Run \x1b[36myarn build\x1b[0m before deploying.');
console.log('\n');
console.error(error);
process.exit(-1);
}
},
}),
]);
const callsTemplateJSON = yaml.load(
fsSync.readFileSync(path.join(workdirPath, '/.cweb-config/calls-template.yaml'), 'utf8'),
{ schema: extendedSchema }
);
fsSync.writeFileSync(path.join(workdirPath, '/.cweb-config/calls.yaml'), yaml.dump(callsTemplateJSON), {
encoding: 'utf8',
});