mirror of
https://github.com/JonasunderscoreJones/jonas_jones-api.git
synced 2025-10-23 17:19:18 +02:00
some progress
This commit is contained in:
parent
aea93a5527
commit
e3c15bd288
1388 changed files with 306946 additions and 68323 deletions
18
node_modules/mongoose/scripts/build-browser.js
generated
vendored
Normal file
18
node_modules/mongoose/scripts/build-browser.js
generated
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
'use strict';
|
||||
|
||||
const config = require('../webpack.config.js');
|
||||
const webpack = require('webpack');
|
||||
|
||||
const compiler = webpack(config);
|
||||
|
||||
console.log('Starting browser build...');
|
||||
compiler.run((err, stats) => {
|
||||
if (err) {
|
||||
console.err(stats.toString());
|
||||
console.err('Browser build unsuccessful.');
|
||||
process.exit(1);
|
||||
}
|
||||
console.log(stats.toString());
|
||||
console.log('Browser build successful.');
|
||||
process.exit(0);
|
||||
});
|
||||
7
node_modules/mongoose/scripts/create-tarball.js
generated
vendored
Normal file
7
node_modules/mongoose/scripts/create-tarball.js
generated
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
'use strict';
|
||||
|
||||
const { execSync } = require('child_process');
|
||||
const { name, version } = require('../package.json');
|
||||
|
||||
execSync('npm pack');
|
||||
execSync(`mv ${name}-${version}.tgz ${name}.tgz`);
|
||||
163
node_modules/mongoose/scripts/generateSearch.js
generated
vendored
Normal file
163
node_modules/mongoose/scripts/generateSearch.js
generated
vendored
Normal file
|
|
@ -0,0 +1,163 @@
|
|||
'use strict';
|
||||
|
||||
let config;
|
||||
try {
|
||||
config = require('../.config.js');
|
||||
} finally {
|
||||
if (!config || !config.uri) {
|
||||
console.error('No Config or config.URI given, please create a .config.js file with those values in the root of the repository');
|
||||
process.exit(-1);
|
||||
}
|
||||
}
|
||||
const cheerio = require('cheerio');
|
||||
const filemap = require('../docs/source');
|
||||
const fs = require('fs');
|
||||
const pug = require('pug');
|
||||
const mongoose = require('../');
|
||||
let { version } = require('../package.json');
|
||||
|
||||
const { marked: markdown } = require('marked');
|
||||
const highlight = require('highlight.js');
|
||||
markdown.setOptions({
|
||||
highlight: function(code) {
|
||||
return highlight.highlight(code, { language: 'JavaScript' }).value;
|
||||
}
|
||||
});
|
||||
|
||||
// 5.13.5 -> 5.x, 6.8.2 -> 6.x, etc.
|
||||
version = version.slice(0, version.indexOf('.')) + '.x';
|
||||
|
||||
const contentSchema = new mongoose.Schema({
|
||||
title: { type: String, required: true },
|
||||
body: { type: String, required: true },
|
||||
url: { type: String, required: true },
|
||||
version: { type: String, required: true, default: version }
|
||||
});
|
||||
contentSchema.index({ title: 'text', body: 'text' });
|
||||
const Content = mongoose.model('Content', contentSchema, 'Content');
|
||||
|
||||
const contents = [];
|
||||
|
||||
const api = require('../docs/source/api');
|
||||
|
||||
// API docs are special, because they are not added to the file-map individually currently and use different properties
|
||||
for (const _class of api.docs) {
|
||||
for (const prop of _class.props) {
|
||||
const content = new Content({
|
||||
title: `API: ${prop.name}`,
|
||||
body: prop.description,
|
||||
url: `api/${_class.fileName}.html#${prop.anchorId}`
|
||||
});
|
||||
const err = content.validateSync();
|
||||
if (err != null) {
|
||||
console.error(content);
|
||||
throw err;
|
||||
}
|
||||
contents.push(content);
|
||||
}
|
||||
}
|
||||
|
||||
for (const [filename, file] of Object.entries(filemap)) {
|
||||
if (file.markdown) {
|
||||
let text = fs.readFileSync(filename, 'utf8');
|
||||
text = markdown.parse(text);
|
||||
|
||||
const content = new Content({
|
||||
title: file.title,
|
||||
body: text,
|
||||
url: filename.replace('.md', '.html').replace(/^docs/, '')
|
||||
});
|
||||
|
||||
content.validateSync();
|
||||
|
||||
const $ = cheerio.load(text);
|
||||
|
||||
contents.push(content);
|
||||
|
||||
// Break up individual h3's into separate content for more fine grained search
|
||||
$('h3').each((index, el) => {
|
||||
el = $(el);
|
||||
const title = el.text();
|
||||
const html = el.nextUntil('h3').html();
|
||||
const content = new Content({
|
||||
title: `${file.title}: ${title}`,
|
||||
body: html,
|
||||
url: `${filename.replace('.md', '.html').replace(/^docs/, '')}#${el.prop('id')}`
|
||||
});
|
||||
|
||||
content.validateSync();
|
||||
contents.push(content);
|
||||
});
|
||||
} else if (file.guide) {
|
||||
let text = fs.readFileSync(filename, 'utf8');
|
||||
text = text.substr(text.indexOf('block content') + 'block content\n'.length);
|
||||
text = pug.render(`div\n${text}`, { filters: { markdown }, filename });
|
||||
|
||||
const content = new Content({
|
||||
title: file.title,
|
||||
body: text,
|
||||
url: filename.replace('.pug', '.html').replace(/^docs/, '')
|
||||
});
|
||||
|
||||
content.validateSync();
|
||||
|
||||
const $ = cheerio.load(text);
|
||||
|
||||
contents.push(content);
|
||||
|
||||
// Break up individual h3's into separate content for more fine grained search
|
||||
$('h3').each((index, el) => {
|
||||
el = $(el);
|
||||
const title = el.text();
|
||||
const html = el.nextUntil('h3').html();
|
||||
const content = new Content({
|
||||
title: `${file.title}: ${title}`,
|
||||
body: html,
|
||||
url: `${filename.replace('.pug', '.html').replace(/^docs/, '')}#${el.prop('id')}`
|
||||
});
|
||||
|
||||
content.validateSync();
|
||||
contents.push(content);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
run().catch(async error => {
|
||||
console.error(error.stack);
|
||||
|
||||
// ensure the script exists in case of error
|
||||
await mongoose.disconnect();
|
||||
});
|
||||
|
||||
async function run() {
|
||||
await mongoose.connect(config.uri, { dbName: 'mongoose', serverSelectionTimeoutMS: 5000 });
|
||||
|
||||
// wait for the index to be created
|
||||
await Content.init();
|
||||
|
||||
await Content.deleteMany({ version });
|
||||
for (const content of contents) {
|
||||
if (version === '7.x') {
|
||||
let url = content.url.startsWith('/') ? content.url : `/${content.url}`;
|
||||
if (!url.startsWith('/docs')) {
|
||||
url = '/docs' + url;
|
||||
}
|
||||
content.url = url;
|
||||
} else {
|
||||
const url = content.url.startsWith('/') ? content.url : `/${content.url}`;
|
||||
content.url = `/docs/${version}/docs${url}`;
|
||||
}
|
||||
await content.save();
|
||||
}
|
||||
|
||||
const results = await Content.
|
||||
find({ $text: { $search: 'validate' }, version }, { score: { $meta: 'textScore' } }).
|
||||
sort({ score: { $meta: 'textScore' } }).
|
||||
limit(10);
|
||||
|
||||
console.log(results.map(res => res.url));
|
||||
|
||||
console.log(`Added ${contents.length} Content`);
|
||||
|
||||
process.exit(0);
|
||||
}
|
||||
115
node_modules/mongoose/scripts/loadSponsorData.js
generated
vendored
Normal file
115
node_modules/mongoose/scripts/loadSponsorData.js
generated
vendored
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
'use strict';
|
||||
|
||||
let config;
|
||||
try {
|
||||
config = require('../.config.js');
|
||||
} finally {
|
||||
if (!config || !config.uri) {
|
||||
console.error('No Config or config.URI given, please create a .config.js file with those values in the root of the repository');
|
||||
process.exit(-1);
|
||||
}
|
||||
}
|
||||
const axios = require('axios');
|
||||
const fs = require('fs');
|
||||
const mongoose = require('../');
|
||||
|
||||
run().catch(err => {
|
||||
console.error(err);
|
||||
process.exit(-1);
|
||||
});
|
||||
|
||||
// only "." because fs resolves relative to the CWD instead of relative to __dirname
|
||||
const docsDir = './docs';
|
||||
|
||||
async function run() {
|
||||
await mongoose.connect(config.uri);
|
||||
|
||||
const Subscriber = mongoose.model('Subscriber', mongoose.Schema({
|
||||
companyName: String,
|
||||
description: String,
|
||||
url: String,
|
||||
logo: String
|
||||
}), 'Subscriber');
|
||||
|
||||
const Job = mongoose.model('Job', mongoose.Schema({
|
||||
logo: String,
|
||||
company: String,
|
||||
title: String,
|
||||
location: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
description: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
url: {
|
||||
type: String,
|
||||
required: true
|
||||
}
|
||||
}), 'Job');
|
||||
|
||||
const OpenCollectiveSponsor = mongoose.model('OpenCollectiveSponsor', mongoose.Schema({
|
||||
openCollectiveId: {
|
||||
type: Number,
|
||||
required: true
|
||||
},
|
||||
website: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
image: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
alt: {
|
||||
type: String
|
||||
}
|
||||
}), 'OpenCollectiveSponsor');
|
||||
|
||||
try {
|
||||
fs.mkdirSync(`${docsDir}/data`);
|
||||
} catch (err) {}
|
||||
|
||||
const subscribers = await Subscriber.
|
||||
find({ companyName: { $exists: true }, description: { $exists: true }, logo: { $exists: true } }).
|
||||
sort({ createdAt: 1 }).
|
||||
select({ companyName: 1, description: 1, url: 1, logo: 1 });
|
||||
fs.writeFileSync(`${docsDir}/data/sponsors.json`, JSON.stringify(subscribers, null, ' '));
|
||||
|
||||
const jobs = await Job.find().select({ logo: 1, company: 1, title: 1, location: 1, description: 1, url: 1 });
|
||||
fs.writeFileSync(`${docsDir}/data/jobs.json`, JSON.stringify(jobs, null, ' '));
|
||||
|
||||
const opencollectiveSponsors = await axios.get('https://opencollective.com/mongoose/members.json').
|
||||
then(res => res.data).
|
||||
then(sponsors => {
|
||||
return sponsors.filter(result => result.tier == 'sponsor' && result.isActive);
|
||||
}).
|
||||
catch(() => null);
|
||||
|
||||
for (const sponsor of opencollectiveSponsors) {
|
||||
const override = await OpenCollectiveSponsor.findOne({ openCollectiveId: sponsor['MemberId'] });
|
||||
if (override == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
sponsor.website = override.website;
|
||||
sponsor.image = override.image;
|
||||
if (override.alt != null) {
|
||||
sponsor.alt = override.alt;
|
||||
}
|
||||
}
|
||||
|
||||
const additionalSponsors = await OpenCollectiveSponsor.find({}).
|
||||
then(docs => docs.filter(doc => doc.openCollectiveId == null));
|
||||
for (const sponsor of additionalSponsors) {
|
||||
opencollectiveSponsors.push(sponsor);
|
||||
}
|
||||
|
||||
if (opencollectiveSponsors != null) {
|
||||
fs.writeFileSync(`${docsDir}/data/opencollective.json`, JSON.stringify(opencollectiveSponsors, null, ' '));
|
||||
}
|
||||
|
||||
console.log('Done');
|
||||
process.exit(0);
|
||||
}
|
||||
15
node_modules/mongoose/scripts/tsc-diagnostics-check.js
generated
vendored
Normal file
15
node_modules/mongoose/scripts/tsc-diagnostics-check.js
generated
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
'use strict';
|
||||
|
||||
const fs = require('fs');
|
||||
|
||||
const stdin = fs.readFileSync(0).toString('utf8');
|
||||
const maxInstantiations = isNaN(process.argv[2]) ? 110000 : parseInt(process.argv[2], 10);
|
||||
|
||||
console.log(stdin);
|
||||
|
||||
const numInstantiations = parseInt(stdin.match(/Instantiations:\s+(\d+)/)[1], 10);
|
||||
if (numInstantiations > maxInstantiations) {
|
||||
throw new Error(`Instantiations ${numInstantiations} > max ${maxInstantiations}`);
|
||||
}
|
||||
|
||||
process.exit(0);
|
||||
Loading…
Add table
Add a link
Reference in a new issue