@dmgt/google-ad-manager-api
Version:
Typed Google Ad Manager API
68 lines • 2.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const lodash_1 = require("lodash");
const promises_1 = require("node:fs/promises");
const node_path_1 = tslib_1.__importDefault(require("node:path"));
commit().then((message) => message && console.info(JSON.stringify(message)));
async function commit() {
const commit = await commitInfo();
if (!commit) {
console.warn('no change to state');
return;
}
await updateState();
return commit;
}
async function commitInfo() {
const { added, removed } = await checkState();
let type = '';
const body = [];
const labels = [];
if (added.length) {
type = 'feat(state)';
body.push(`Added version${added.length > 1 ? 's' : ''} ${added.join(' ')}`);
labels.push('enhancement');
}
if (removed.length) {
type = 'feat(state)!';
body.push(`BREAKING CHANGE: Removed version${removed.length > 1 ? 's' : ''} ${removed}`);
labels.push('breaking change');
}
return type
? {
branch: 'gam/' +
(added.length
? added.join('-')
: removed.length
? `removed-${removed.join('-removed-')}`
: type),
commitType: type,
commitMessage: `${type}: update gam api${body.length ? `\n\n${body.join('\n\n')}` : ''}`,
labels: labels.join(','),
prTitle: `GAM API Updates`,
prBody: body.join('\n\n'),
}
: null;
}
async function checkState() {
const state = require('../state.json');
const versions = await getVersions();
return {
removed: (0, lodash_1.difference)(state.versions, versions),
added: (0, lodash_1.difference)(versions, state.versions),
};
}
async function updateState() {
await (0, promises_1.writeFile)('src/state.json', JSON.stringify({
...require('../state.json'),
versions: await getVersions(),
}));
}
async function getVersions() {
const versions = await (0, promises_1.readdir)('src/api');
return versions
.map((version) => node_path_1.default.basename(version, node_path_1.default.extname(version)))
.sort();
}
//# sourceMappingURL=state.js.map