Skip to content

Commit 4f31aab

Browse files
committed
Initial commit
0 parents  commit 4f31aab

20 files changed

+1319
-0
lines changed

.d.ts/main.d.ts

Whitespace-only changes.

.d.ts/readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This folder contains definition files for this project.

.gitattributes

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
js/* linguist-vendored
2+
ts/tests/coverage/* linguist-vendored
3+
gulpfile.js linguist-vendored
4+
jest.config.js linguist-vendored
5+
package.json linguist-vendored
6+
package-lock.json linguist-vendored

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.idea/
2+
node_modules/

.npmignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
.idea
2+
.d.ts/tests
3+
js/tests
4+
ts/tests
5+
ts/tsconfig.json
6+
ts/tslint.json
7+
.gitattributes
8+
.gitignore
9+
.npmignore
10+
gulpfile.js
11+
jest.config.js

gulpfile.js

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
/*
2+
* Created by Trevor Sears <[email protected]>.
3+
* 8:48 PM -- June 16th, 2019.
4+
* Project: <name>
5+
*/
6+
7+
const gulp = require("gulp");
8+
const typescript = require("gulp-typescript");
9+
const sourcemaps = require("gulp-sourcemaps");
10+
const uglify = require("gulp-uglify-es").default;
11+
const del = require("del");
12+
13+
const paths = {
14+
15+
typescript: {
16+
17+
dir: "ts/",
18+
allFiles: "ts/**/*.ts",
19+
tsconfig: "ts/tsconfig.json"
20+
21+
},
22+
23+
javascript: {
24+
25+
dir: "js/",
26+
allFiles: "js/**/*.js",
27+
entryPoint: "js/main.js",
28+
entryPointFileName: "main.js"
29+
30+
},
31+
32+
typedefs: {
33+
34+
dir: ".d.ts/",
35+
allFiles: ".d.ts/**/*.d.ts"
36+
37+
}
38+
39+
};
40+
41+
let typescriptProject = typescript.createProject(paths.typescript.tsconfig);
42+
43+
// The default Gulp task.
44+
gulp.task("default", defaultTask);
45+
46+
// Cleans (deletes) all generated/compiled files.
47+
gulp.task("clean", clean);
48+
49+
// Builds the entire project.
50+
gulp.task("build", build);
51+
52+
// Cleans and builds the entire project.
53+
gulp.task("rebuild", rebuild);
54+
55+
// Watch for changes to relevant files and compile-on-change.
56+
gulp.task("watch", watch);
57+
58+
function defaultTask(done) {
59+
60+
return rebuild(done);
61+
62+
}
63+
64+
function clean(done) {
65+
66+
return del([
67+
paths.javascript.dir,
68+
paths.typedefs.dir
69+
]);
70+
71+
}
72+
73+
function build(done) {
74+
75+
return buildJavaScriptPipeline(done);
76+
77+
}
78+
79+
function rebuild(done) {
80+
81+
gulp.series(clean, build)(done);
82+
83+
}
84+
85+
function buildJavaScriptPipeline(done) {
86+
87+
return gulp.series(
88+
compileTypeScript,
89+
uglifyJavaScript
90+
)(done);
91+
92+
}
93+
94+
function compileTypeScript(done) {
95+
96+
let proj =
97+
typescriptProject.src()
98+
.pipe(sourcemaps.init())
99+
.pipe(typescriptProject());
100+
101+
let compileJS = (done) => {
102+
103+
return proj.js
104+
.pipe(sourcemaps.write("."))
105+
.pipe(gulp.dest(paths.javascript.dir));
106+
107+
};
108+
109+
let compileDTS = (done) => {
110+
111+
return proj.dts
112+
.pipe(gulp.dest(paths.typedefs.dir));
113+
114+
};
115+
116+
return gulp.parallel(compileJS, compileDTS)(done);
117+
118+
}
119+
120+
function uglifyJavaScript(done) {
121+
122+
return gulp.src(paths.javascript.allFiles)
123+
.pipe(sourcemaps.init({ loadMaps: true }))
124+
.pipe(uglify())
125+
.pipe(sourcemaps.write("."))
126+
.pipe(gulp.dest(paths.javascript.dir));
127+
128+
}
129+
130+
function watch(done) {
131+
132+
gulp.watch([paths.typescript.allFiles], buildJavaScriptPipeline);
133+
134+
}

init.sh

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
#!/usr/bin/env bash
2+
3+
# Print start message.
4+
echo "Running js-module-template initialization script..."
5+
6+
# Prompt for relevant package information to find-and-replace template placeholder strings.
7+
read -p " Package name: " packageName
8+
read -p " Package description: " packageDesc
9+
read -p " GitHub org: " gitHubOrg
10+
read -p " NPM org: " npmOrg
11+
read -p " readme title: " readmeTitle
12+
13+
# Print a spacer line.
14+
echo ""
15+
16+
# If the GitHub organization name was left blank, assume the package belongs to T99.
17+
if [[ -z $gitHubOrg ]]; then
18+
19+
gitHubOrg="T99"
20+
21+
fi
22+
23+
# Derive the full package name from the NPM organization and base package name.
24+
if [[ -z $npmOrg ]]; then
25+
26+
fullPackageName="${packageName}"
27+
28+
else
29+
30+
fullPackageName=$(echo -n "@${npmOrg}/${packageName}")
31+
32+
fi
33+
34+
# If there was no readme title provided, use the package name.
35+
if [[ -z $readmeTitle ]]; then
36+
37+
readmeTitle="${packageName}"
38+
39+
fi
40+
41+
# Delete the template repository's readme file and move the templatized one to the proper location.
42+
echo -n " Deleting placeholder readme and moving templatized readme into place... "
43+
rm readme.md
44+
mv readme.md.template readme.md
45+
echo "DONE"
46+
47+
# Modify template files to use correct package information.
48+
echo -n " Modifying template files to use correct package information... "
49+
50+
files=("ts/main.ts" "gulpfile.js" "license.md" "package.json" "readme.md")
51+
52+
for file in "${files[*]}"; do
53+
54+
sed -i "s_<name>_${fullPackageName}_g" ${file} > /dev/null 2>&1
55+
sed -i "s/<desc>/$packageDesc/g" ${file} > /dev/null 2>&1
56+
sed -i "s/<title>/$readmeTitle/g" ${file} > /dev/null 2>&1
57+
sed -i "s/<base_name>/$packageName/g" ${file} > /dev/null 2>&1
58+
sed -i "s/<github_org>/$gitHubOrg/g" ${file} > /dev/null 2>&1
59+
60+
done
61+
62+
echo "DONE"
63+
64+
# Delete the readmes that were used to track otherwise-empty dirs.
65+
echo -n " Removing placeholder readme files... "
66+
rm ./.d.ts/readme.md ./js/readme.md ./ts/readme.md ./ts/tests/readme.md > /dev/null 2>&1
67+
echo "DONE"
68+
69+
# Install the missing packages from our package.json file.
70+
echo -n " Installing packages from package.json... "
71+
npm install > /dev/null 2>&1
72+
echo "DONE"
73+
74+
# Print an 'exiting' statement.
75+
echo ""
76+
echo " Exiting..."
77+
echo ""
78+
79+
# Make the script remove itself.
80+
rm -- "$0"
81+
82+
# Exit from the script.
83+
exit 0

0 commit comments

Comments
 (0)