Skip to content

Commit

Permalink
update begin adapter to new app-utils format
Browse files Browse the repository at this point in the history
  • Loading branch information
antony committed Dec 7, 2020
1 parent 0e45255 commit c1ef547
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 101 deletions.
46 changes: 46 additions & 0 deletions packages/adapter-begin/files/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
'use strict';

const url = require('url');
const app = require('@architect/shared/app.js');

exports.handler = async (event) => {

const {
rawPath: path,
httpMethod,
headers,
queryStringParameters
// body, // TODO pass this to renderer
// isBase64Encoded // TODO is this useful?
} = event;

const query = new url.URLSearchParams();
for (const k in queryStringParameters) {
const value = queryStringParameters[k];
value.split(', ').forEach((v) => {
query.append(k, v);
});
}

const rendered = await app.render({
host: null, // TODO
method: httpMethod,
headers,
path,
query
});

if (rendered) {
return {
isBase64Encoded: false,
statusCode: rendered.status,
headers: rendered.headers,
body: rendered.body
};
}

return {
statusCode: 404,
body: 'Not found'
};
};
File renamed without changes.
64 changes: 22 additions & 42 deletions packages/adapter-begin/index.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
'use strict';

const { writeFileSync, readFileSync, existsSync } = require('fs');
const { resolve, join, relative } = require('path');
const { readFileSync, existsSync, copyFileSync } = require('fs');
const { resolve, join } = require('path');
const parse = require('@architect/parser');
const child_process = require('child_process');
const { prerender, generate_manifest_module } = require('@sveltejs/app-utils/renderer');
const { copy } = require('@sveltejs/app-utils/files');

function parse_arc(arcPath) {
if (!existsSync(arcPath)) {
Expand All @@ -26,54 +24,36 @@ function parse_arc(arcPath) {
}
}

module.exports = async function builder({ dir, manifest, log }) {
log.minor('Parsing app.arc file');
module.exports = async function adatper(builder) {
builder.log.minor('Parsing app.arc file');
const { static: static_mount_point } = parse_arc('app.arc');

const lambda_directory = resolve(join('src', 'http', 'get-index'));
const static_directory = resolve(static_mount_point);
const server_directory = resolve(join('src', 'shared'));

log.minor('Writing client application...' + static_directory);
const static_assets = copy('static', static_directory);
const client_assets = copy(resolve(dir, 'client'), join(static_directory));
builder.log.minor('Writing client application...' + static_directory);
builder.copy_static_files(static_directory);
builder.copy_client_files(static_directory);

log.minor('Prerendering static pages...');
await prerender({
dir,
out: static_directory,
manifest,
log
});
builder.log.minor('Building lambda...' + lambda_directory);
const local_lambda_dir = resolve(__dirname, 'files');
const lambda_files = [ 'index.js', 'package.json' ]
lambda_files.forEach(f => {
copyFileSync(join(local_lambda_dir, f), join(lambda_directory, f));
});

log.minor('Building lambda...' + lambda_directory);
copy(resolve(__dirname, 'src'), lambda_directory);
builder.log.minor('Installing lambda dependencies...' + lambda_directory);
child_process.execSync('npm install', {
stdio: [0, 1, 2],
cwd: lambda_directory
});

builder.log.minor('Writing server application...');
builder.copy_server_files(server_directory);

builder.log.minor('Prerendering static pages...');
await builder.prerender({
dest: static_directory
});

log.minor('Writing manifest...' + server_directory);
copy(join(resolve(dir), 'client.json'), join(server_directory, 'client.json'));
const written_manifest = generate_manifest_module(manifest);
const htmlPath = resolve('src', 'app.html');
const appHtml = readFileSync(htmlPath, 'utf-8');
writeFileSync(join(server_directory, 'manifest.js'), written_manifest);
writeFileSync(
join(server_directory, 'template.js'),
`module.exports = ${JSON.stringify(appHtml)};`
);

log.minor('Preparing static assets...' + static_directory);
const relative_static_assets = [...static_assets, ...client_assets].map(
(filename) => `/${relative(static_directory, filename)}`
);
const all_static_assets = JSON.stringify(relative_static_assets);
writeFileSync(
join(server_directory, 'static_assets.js'),
`module.exports = ${all_static_assets}`
);

log.minor('Writing server application...');
copy(resolve(dir, 'server'), server_directory);
};
58 changes: 0 additions & 58 deletions packages/adapter-begin/src/index.js

This file was deleted.

3 changes: 2 additions & 1 deletion pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit c1ef547

Please sign in to comment.