Initial commit
This commit is contained in:
commit
ae31567cbf
|
|
@ -0,0 +1 @@
|
||||||
|
node_modules/
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
Name: Threshold pushing
|
||||||
|
Author: R.Saarsoo
|
||||||
|
Description:
|
||||||
|
Start with a good warm up (10 minutes Zone 1, then 5 minutes Zone 2,
|
||||||
|
5 minutes Zone 3 followed by 5 minutes easy spinning).
|
||||||
|
Then straight in at Threshold Pushing powers for 12 mins.
|
||||||
|
Have 10 mins easy soft pedalling and repeat - warm down 15 minutes.
|
||||||
|
This session is designed to increase your FTP from below.
|
||||||
|
Working predominately aerobic metabolism.
|
||||||
|
In time your body will become more comfortable at these powers
|
||||||
|
and your FTP will increase.
|
||||||
|
|
||||||
|
Warmup: 20:00 45%..75%
|
||||||
|
|
||||||
|
Rest: 5:00 52%
|
||||||
|
Interval: 12:00 100% 90rpm
|
||||||
|
Rest: 10:00 52%
|
||||||
|
Interval: 12:00 100% 90rpm
|
||||||
|
Rest: 10:00 52%
|
||||||
|
|
||||||
|
Cooldown: 10:00 65%..45%
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
<workout_file>
|
||||||
|
<author>R.Saarsoo</author>
|
||||||
|
<name>Threshold pushing</name>
|
||||||
|
<description>
|
||||||
|
Start with a good warm up (10 minutes Zone 1, then 5 minutes Zone 2,
|
||||||
|
5 minutes Zone 3 followed by 5 minutes easy spinning).
|
||||||
|
Then straight in at Threshold Pushing powers for 12 mins.
|
||||||
|
Have 10 mins easy soft pedalling and repeat - warm down 15 minutes.
|
||||||
|
This session is designed to increase your FTP from below.
|
||||||
|
Working predominately aerobic metabolism.
|
||||||
|
In time your body will become more comfortable at these powers
|
||||||
|
and your FTP will increase.
|
||||||
|
</description>
|
||||||
|
<sportType>bike</sportType>
|
||||||
|
<tags/>
|
||||||
|
<workout>
|
||||||
|
<Warmup Duration="1200" PowerLow="0.45" PowerHigh="0.75" />
|
||||||
|
|
||||||
|
<SteadyState Duration="300" Power="0.52" />
|
||||||
|
|
||||||
|
<SteadyState Duration="720" Power="1.00" Cadence="90" />
|
||||||
|
|
||||||
|
<SteadyState Duration="600" Power="0.52" />
|
||||||
|
|
||||||
|
<SteadyState Duration="720" Power="1.00" Cadence="90" />
|
||||||
|
|
||||||
|
<SteadyState Duration="600" Power="0.52" />
|
||||||
|
|
||||||
|
<Cooldown Duration="600" PowerLow="0.65" PowerHigh="0.45" />
|
||||||
|
</workout>
|
||||||
|
</workout_file>
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"name": "make-workout",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"license": "GPL-3.0-or-later",
|
||||||
|
"scripts": {
|
||||||
|
"lint:ts": "tsc --no-emit",
|
||||||
|
"test": "ts-node src/index.ts examples/threshold-pushing.txt"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/node": "^14.10.3",
|
||||||
|
"ts-node": "^9.0.0",
|
||||||
|
"typescript": "^4.0.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
import * as fs from "fs";
|
||||||
|
|
||||||
|
type Def = {
|
||||||
|
type: string;
|
||||||
|
text: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
const parseDefinition = (line: string): Def | undefined => {
|
||||||
|
const matches = line.match(/^(\w+):(.*)$/);
|
||||||
|
if (!matches) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
type: matches[1],
|
||||||
|
text: matches[2],
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const isDefined = <T>(x: T | undefined): x is T => Boolean(x);
|
||||||
|
|
||||||
|
const filename = process.argv[2];
|
||||||
|
|
||||||
|
console.log(`Parsing: ${filename}`);
|
||||||
|
|
||||||
|
const file = fs.readFileSync(filename, "utf8");
|
||||||
|
|
||||||
|
file.split(/\n/)
|
||||||
|
.map(parseDefinition)
|
||||||
|
.filter(isDefined)
|
||||||
|
.forEach((def) => console.log(def.type));
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"module": "commonjs",
|
||||||
|
"target": "es6",
|
||||||
|
"sourceMap": true,
|
||||||
|
"outDir": "dist",
|
||||||
|
"strict": true,
|
||||||
|
},
|
||||||
|
"include": [
|
||||||
|
"src/**/*"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,62 @@
|
||||||
|
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||||
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
|
"@types/node@^14.10.3":
|
||||||
|
version "14.10.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.10.3.tgz#5ae1f119c96643fc9b19b2d1a83bfa2ec3dbb7ea"
|
||||||
|
integrity sha512-zdN0hor7TLkjAdKTnYW+Y22oIhUUpil5ZD1V1OFq0CR0CLKw+NdR6dkziTfkWRLo6sKzisayoj/GNpNbe4LY9Q==
|
||||||
|
|
||||||
|
arg@^4.1.0:
|
||||||
|
version "4.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
|
||||||
|
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
|
||||||
|
|
||||||
|
buffer-from@^1.0.0:
|
||||||
|
version "1.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
|
||||||
|
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
|
||||||
|
|
||||||
|
diff@^4.0.1:
|
||||||
|
version "4.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
|
||||||
|
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
|
||||||
|
|
||||||
|
make-error@^1.1.1:
|
||||||
|
version "1.3.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
|
||||||
|
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
|
||||||
|
|
||||||
|
source-map-support@^0.5.17:
|
||||||
|
version "0.5.19"
|
||||||
|
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
|
||||||
|
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
|
||||||
|
dependencies:
|
||||||
|
buffer-from "^1.0.0"
|
||||||
|
source-map "^0.6.0"
|
||||||
|
|
||||||
|
source-map@^0.6.0:
|
||||||
|
version "0.6.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||||
|
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||||
|
|
||||||
|
ts-node@^9.0.0:
|
||||||
|
version "9.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.0.0.tgz#e7699d2a110cc8c0d3b831715e417688683460b3"
|
||||||
|
integrity sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==
|
||||||
|
dependencies:
|
||||||
|
arg "^4.1.0"
|
||||||
|
diff "^4.0.1"
|
||||||
|
make-error "^1.1.1"
|
||||||
|
source-map-support "^0.5.17"
|
||||||
|
yn "3.1.1"
|
||||||
|
|
||||||
|
typescript@^4.0.2:
|
||||||
|
version "4.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.2.tgz#7ea7c88777c723c681e33bf7988be5d008d05ac2"
|
||||||
|
integrity sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==
|
||||||
|
|
||||||
|
yn@3.1.1:
|
||||||
|
version "3.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
|
||||||
|
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
|
||||||
Loading…
Reference in New Issue