-
Notifications
You must be signed in to change notification settings - Fork 41
/
Copy pathsync-versions.js
28 lines (24 loc) · 953 Bytes
/
sync-versions.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const fs = require('fs');
const version = require('./package.json').version;
const TOKEN_START = '// version:start';
const TOKEN_END = '// version:end';
const PATTERN = new RegExp(`${TOKEN_START}[\\s\\S]*${TOKEN_END}`, 'gim');
const INNER_PACKAGE_JSON_PATH = './projects/elements/package.json';
const TARGETS = [
'./projects/elements-demo/src/environments/environment.ts',
'./projects/elements-demo/src/environments/environment.prod.ts'
];
// inner package.json
const innerPackageJson = require(INNER_PACKAGE_JSON_PATH);
innerPackageJson.version = version;
fs.writeFileSync(
INNER_PACKAGE_JSON_PATH,
JSON.stringify(innerPackageJson, null, 2)
);
// environment files
TARGETS.forEach(target => {
const content = fs.readFileSync(target, 'utf8');
const replacement = `${TOKEN_START}\n version: '${version}',\n ${TOKEN_END}`;
const adjustedContent = content.replace(PATTERN, replacement);
fs.writeFileSync(target, adjustedContent);
});