Roughing out the demo app

This commit is contained in:
Nate Taylor
2019-10-23 07:41:03 -05:00
parent 5bc58a2d40
commit 94be06d3c4
2841 changed files with 274065 additions and 2 deletions

19
node_modules/json-server/lib/cli/utils/is.js generated vendored Normal file
View File

@@ -0,0 +1,19 @@
"use strict";
module.exports = {
FILE,
JS,
URL
};
function FILE(s) {
return !URL(s) && /\.json$/.test(s);
}
function JS(s) {
return !URL(s) && /\.js$/.test(s);
}
function URL(s) {
return /^(http|https):/.test(s);
}

74
node_modules/json-server/lib/cli/utils/load.js generated vendored Normal file
View File

@@ -0,0 +1,74 @@
"use strict";
const fs = require('fs');
const path = require('path');
const request = require('request');
const low = require('lowdb');
const FileAsync = require('lowdb/adapters/FileAsync');
const Memory = require('lowdb/adapters/Memory');
const is = require('./is');
const chalk = require('chalk');
const example = {
posts: [{
id: 1,
title: 'json-server',
author: 'typicode'
}],
comments: [{
id: 1,
body: 'some comment',
postId: 1
}],
profile: {
name: 'typicode'
}
};
module.exports = function (source) {
return new Promise((resolve, reject) => {
if (is.FILE(source)) {
if (!fs.existsSync(source)) {
console.log(chalk.yellow(` Oops, ${source} doesn't seem to exist`));
console.log(chalk.yellow(` Creating ${source} with some default data`));
console.log();
fs.writeFileSync(source, JSON.stringify(example, null, 2));
}
resolve(low(new FileAsync(source)));
} else if (is.URL(source)) {
// Load remote data
const opts = {
url: source,
json: true
};
request(opts, (err, response) => {
if (err) return reject(err);
resolve(low(new Memory()).setState(response.body));
});
} else if (is.JS(source)) {
// Clear cache
const filename = path.resolve(source);
delete require.cache[filename];
const dataFn = require(filename);
if (typeof dataFn !== 'function') {
throw new Error('The database is a JavaScript file but the export is not a function.');
} // Run dataFn to generate data
const data = dataFn();
resolve(low(new Memory()).setState(data));
} else {
throw new Error(`Unsupported source ${source}`);
}
});
};