Skip to content

Commit

Permalink
Rename ejected to core (#191).
Browse files Browse the repository at this point in the history
  • Loading branch information
jimafisk committed Jan 8, 2023
1 parent c405688 commit b21b299
Show file tree
Hide file tree
Showing 47 changed files with 69 additions and 64 deletions.
4 changes: 2 additions & 2 deletions cmd/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ func Build() error {
}

// Directly copy .js that don't need compiling to the build dir.
err = build.EjectCopy(buildPath, defaults.EjectedFS)
err = build.EjectCopy(buildPath, defaults.CoreFS)
if err != nil {
log.Fatal("\nError in EjectCopy build step", err)
}
Expand All @@ -142,7 +142,7 @@ func Build() error {
}

// Prep the client SPA.
err = build.Client(buildPath, defaults.EjectedFS)
err = build.Client(buildPath, defaults.CoreFS)
if err != nil {
log.Fatal("\nError in Client build step", err)
}
Expand Down
10 changes: 5 additions & 5 deletions cmd/build/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,14 @@ import (
var SSRctx *v8go.Context

// Client builds the SPA.
func Client(buildPath string, defaultsEjectedFS embed.FS) error {
func Client(buildPath string, coreFS embed.FS) error {

defer Benchmark(time.Now(), "Compiling client SPA with Svelte")

Log("\nCompiling client SPA with svelte")

stylePath := buildPath + "/spa/bundle.css"
allLayoutsPath := buildPath + "/spa/ejected/layouts.js"
allLayoutsPath := buildPath + "/spa/generated/layouts.js"
// Initialize string for layouts.js component list.
var allLayoutsStr string

Expand Down Expand Up @@ -103,7 +103,7 @@ func Client(buildPath string, defaultsEjectedFS embed.FS) error {
}

// Compile Svelte components from ejectable core
fs.WalkDir(defaultsEjectedFS, "ejected", func(path string, d fs.DirEntry, err error) error {
fs.WalkDir(coreFS, "core", func(path string, d fs.DirEntry, err error) error {
if err != nil {
return err
}
Expand All @@ -130,7 +130,7 @@ func Client(buildPath string, defaultsEjectedFS embed.FS) error {
componentStr = string(component)
} else if os.IsNotExist(err) {
// The file has not been ejected, use the embedded defaults.
nonEjectedFS, err := fs.Sub(defaultsEjectedFS, ".")
nonEjectedFS, err := fs.Sub(coreFS, ".")
if err != nil {
log.Fatal("Unable to get non ejected defaults: %w", err)
}
Expand Down Expand Up @@ -194,7 +194,7 @@ func Client(buildPath string, defaultsEjectedFS embed.FS) error {
// Write layouts.js to filesystem.
err = ioutil.WriteFile(allLayoutsPath, []byte(allLayoutsStr), os.ModePerm)
if err != nil {
return fmt.Errorf("Unable to write layouts.js file: %w\n", err)
return fmt.Errorf("\nUnable to write layouts.js file: %w\n", err)
}

Log("Number of components compiled: " + strconv.Itoa(compiledComponentCounter))
Expand Down
24 changes: 10 additions & 14 deletions cmd/build/data_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ func DataSource(buildPath string, siteConfig readers.SiteConfig) error {
Log("\nGathering data source from 'content/' folder")

// Set some defaults
contentJSPath := buildPath + "/spa/ejected/content.js"
envPath := buildPath + "/spa/ejected/env.js"
contentJSPath := buildPath + "/spa/generated/content.js"
envPath := buildPath + "/spa/generated/env.js"
env := env{
local: strconv.FormatBool(Local),
baseurl: siteConfig.BaseURL,
Expand All @@ -99,10 +99,6 @@ func DataSource(buildPath string, siteConfig readers.SiteConfig) error {
"', branch: '" + env.cms.branch +
"' } };"

// no dirs needed for mem
if err := os.MkdirAll(buildPath+"/spa/ejected", os.ModePerm); err != nil {
return err
}
// Start the new content.js file.
err := ioutil.WriteFile(contentJSPath, []byte(`const allContent = [`), 0755)
if err != nil {
Expand Down Expand Up @@ -164,27 +160,27 @@ func DataSource(buildPath string, siteConfig readers.SiteConfig) error {
allContentStr = strings.TrimSuffix(allContentStr, ",") + "]"
// End the string that will be used in allDefaults object.
allDefaultsStr = strings.TrimSuffix(allDefaultsStr, ",") + "];\n\nexport default allDefaults;"
err = writeContentJS(buildPath+"/spa/ejected/defaults.js", allDefaultsStr)
err = writeContentJS(buildPath+"/spa/generated/defaults.js", allDefaultsStr)
if err != nil {
fmt.Println("Could not write defaults.js file")
return fmt.Errorf("\nCould not write defaults.js file")
}
// End the string that will be used in allSchemas object.
allSchemasStr = strings.TrimSuffix(allSchemasStr, ",") + "\n};\n\nexport default allSchemas;"
err = writeContentJS(buildPath+"/spa/ejected/schemas.js", allSchemasStr)
err = writeContentJS(buildPath+"/spa/generated/schemas.js", allSchemasStr)
if err != nil {
fmt.Println("Could not write schemas.js file")
return fmt.Errorf("\nCould not write schemas.js file")
}
// End the string that will be used in allComponentDefaults object.
allComponentDefaultsStr = strings.TrimSuffix(allComponentDefaultsStr, ",") + "\n};\n\nexport default allComponentDefaults;"
err = writeContentJS(buildPath+"/spa/ejected/component_defaults.js", allComponentDefaultsStr)
err = writeContentJS(buildPath+"/spa/generated/component_defaults.js", allComponentDefaultsStr)
if err != nil {
fmt.Println("Could not write component_defaults.js file")
return fmt.Errorf("\nCould not write component_defaults.js file")
}
// End the string that will be used in allComponentSchemas object.
allComponentSchemasStr = strings.TrimSuffix(allComponentSchemasStr, ",") + "\n};\n\nexport default allComponentSchemas;"
err = writeContentJS(buildPath+"/spa/ejected/component_schemas.js", allComponentSchemasStr)
err = writeContentJS(buildPath+"/spa/generated/component_schemas.js", allComponentSchemasStr)
if err != nil {
fmt.Println("Could not write component_schemas.js file")
return fmt.Errorf("\nCould not write component_schemas.js file")
}

for _, currentContent := range allContent {
Expand Down
36 changes: 20 additions & 16 deletions cmd/build/eject_copy.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,61 +11,65 @@ import (
)

// EjectCopy does a direct copy of any ejectable js files needed in spa build dir.
func EjectCopy(buildPath string, defaultsEjectedFS embed.FS) error {
func EjectCopy(buildPath string, coreFS embed.FS) error {

defer Benchmark(time.Now(), "Copying ejectable core files for build")

Log("\nCopying ejectable core files to their destination:")

copiedSourceCounter := 0

ejected, err := fs.Sub(defaultsEjectedFS, ".")
coreDefaults, err := fs.Sub(coreFS, ".")
if err != nil {
return fmt.Errorf("Unable to get ejected defaults: %w\n", err)
}

destPath := buildPath + "/spa/"
ejectedFilesErr := fs.WalkDir(ejected, ".", func(ejectPath string, d fs.DirEntry, err error) error {
ejectedFilesErr := fs.WalkDir(coreDefaults, ".", func(path string, d fs.DirEntry, err error) error {
if err != nil {
return fmt.Errorf("can't stat %s: %w", ejectPath, err)
return fmt.Errorf("can't stat %s: %w", path, err)
}

// If the file is already in .js format just copy it straight over to build dir.
if filepath.Ext(ejectPath) == ".js" {
if err := os.MkdirAll(destPath+"ejected", os.ModePerm); err != nil {
if filepath.Ext(path) == ".js" {
if err := os.MkdirAll(destPath+"core", os.ModePerm); err != nil {
return err
}
var ejectedContent []byte
_, err := os.Stat(ejectPath)
var destContent []byte
// Set error if path doesn't exist in project filesystem
_, err := os.Stat(path)
// Check if theme is being used
if ThemeFs != nil {
_, err = ThemeFs.Stat(ejectPath)
// Set error if path doesn't exist in virtual theme filesystem
_, err = ThemeFs.Stat(path)
}
// Check if file has been ejected to project or virtual theme filesystem.
if err == nil {
// The file has been ejected.
// No stat errors, the file has been ejected.
// Get the file from the project or virtual theme.
ejectedContent, err = getVirtualFileIfThemeBuild(ejectPath)
destContent, err = getVirtualFileIfThemeBuild(path)
if err != nil {
return fmt.Errorf("can't read .js file: %s %w\n", ejectPath, err)
return fmt.Errorf("can't read .js file: %s %w\n", path, err)
}
} else if os.IsNotExist(err) {
// The file has not been ejected.
// Get the file from embedded defaults.
ejectedFile, err := ejected.Open(ejectPath)
coreFile, err := coreDefaults.Open(path)
if err != nil {
return fmt.Errorf("Could not open source .js file for copying: %w\n", err)
}
ejectedContent, err = ioutil.ReadAll(ejectedFile)
destContent, err = ioutil.ReadAll(coreFile)
if err != nil {
return fmt.Errorf("Can't read ejected .js file: %w\n", err)
}
}
destFile := destPath + ejectPath
destFile := destPath + path
// Create any sub directories need for filepath.
if err := os.MkdirAll(filepath.Dir(destFile), os.ModePerm); err != nil {
return fmt.Errorf("can't make folders for '%s': %w\n", destFile, err)
}
if err := ioutil.WriteFile(destFile, ejectedContent, os.ModePerm); err != nil {
// Write file to public build directory
if err := ioutil.WriteFile(destFile, destContent, os.ModePerm); err != nil {
return fmt.Errorf("Unable to write file: %w\n", err)
}

Expand Down
2 changes: 1 addition & 1 deletion cmd/build/gopack.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func Gopack(buildPath string) error {
alreadyConvertedFiles = []string{}

// Start at the entry point for the app
err := runPack(buildPath, buildPath+"/spa/ejected/main.js")
err := runPack(buildPath, buildPath+"/spa/core/main.js")
if err != nil {
return err
}
Expand Down
9 changes: 7 additions & 2 deletions cmd/build/media_copy.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,9 +153,14 @@ func createMediaIndex(buildPath string, index []string) error {
result = []byte("[]")
}
result = append(append([]byte("let allMedia = "), result...), []byte(";\nexport default allMedia;")...)
err = ioutil.WriteFile(buildPath+"/spa/ejected/cms/media.js", result, os.ModePerm)
mediaPath := buildPath + "/spa/generated/media.js"
// Create any sub directories need for filepath.
if err := os.MkdirAll(filepath.Dir(mediaPath), os.ModePerm); err != nil {
return fmt.Errorf("can't make folders for '%s': %w\n", mediaPath, err)
}
err = ioutil.WriteFile(mediaPath, result, os.ModePerm)
if err != nil {
return fmt.Errorf("Unable to write to media index file: %w\n", err)
return fmt.Errorf("\nUnable to write to media index file: %w\n", err)
}
return nil
}
6 changes: 3 additions & 3 deletions cmd/eject.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,19 +34,19 @@ continue to work properly and you will have to manually apply any
updates that are made to the core files (these are normally applied
automatically).`,
Run: func(cmd *cobra.Command, args []string) {
ejected, err := fs.Sub(defaults.EjectedFS, ".")
coreDefaults, err := fs.Sub(defaults.CoreFS, ".")
if err != nil {
fmt.Printf("Unable to get ejected defaults: %s", err)
}
ejectableFiles := map[string][]byte{}
fs.WalkDir(ejected, ".", func(path string, d fs.DirEntry, err error) error {
fs.WalkDir(coreDefaults, ".", func(path string, d fs.DirEntry, err error) error {
if err != nil {
return err
}
if d.IsDir() {
return nil
}
contentFile, _ := ejected.Open(path)
contentFile, _ := coreDefaults.Open(path)
contentBytes, _ := ioutil.ReadAll(contentFile)
ejectableFiles[path] = contentBytes
return nil
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script>
import defaults from '../defaults.js';
import defaults from '../../generated/defaults.js';
import ButtonWrapper from './button_wrapper.svelte';
import validateFilename from './validate_filename.js';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import FileUpload from "./file_upload.svelte";
import VisualEditor from "./visual_editor.svelte";
import AddContent from "./add_content.svelte";
import allMedia from './media.js';
import { env } from '../env.js';
import allMedia from '../../generated/media.js';
import { env } from '../../generated/env.js';
let mediaPrefix = env.baseurl ? '' : '/';
let media = allMedia.map(media => mediaPrefix + media);
Expand Down
2 changes: 1 addition & 1 deletion defaults/ejected/cms/auth.js → defaults/core/cms/auth.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { readable } from 'svelte/store';
import { createSessionStore } from './session.js';
import { createDataStore } from './storage.js';
import { env } from '../env.js';
import { env } from '../../generated/env.js';

export const repoUrl = env.cms.repo ? new URL(env.cms.repo) : new URL("https://gitlab.com");
const local = env.local;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<script>
import { publish } from './publish.js';
import { postLocal } from './post_local.js';
import { env } from '../env.js';
import { env } from '../../generated/env.js';
import { findFileReferences } from './file_references.js';
export let commitList, shadowContent, buttonText, action, encoding, afterSubmit;
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script>
import allContent from '../../content.svelte';
import allContent from '../../../generated/content.js';
export let schema, parentKeys, field;
let input, results, loading, option;
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<script>
import DynamicFormInput from "../dynamic_form_input.svelte";
import allComponentDefaults from "../../component_defaults.js";
import allComponentSchemas from '../../component_schemas.js';
import allComponentDefaults from "../../../generated/component_defaults.js";
import allComponentSchemas from '../../../generated/component_schemas.js';
export let field, label, showMediaModal, changingMedia, localMediaList, parentKeys, schema;
const objKeysMatch = (a, b) => {
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import allContent from '../content.js';
import allContent from '../../generated/content.js';

const checkType = (value, file) => {
if (typeof value === 'string') {
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { env } from '../env.js';
import { env } from '../../generated/env.js';

export async function postLocal(commitList, shadowContent, action, encoding) {
let url = '/postlocal';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { user, repoUrl } from './auth.js';
import { env } from '../env.js';
import { env } from '../../generated/env.js';

const apiBaseUrl = `${repoUrl.origin}/api/v4`;

Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import allContent from '../content.js';
import allContent from '../../generated/content.js';

const validateFilename = (filename, type) => {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import DynamicFormInput from './dynamic_form_input.svelte';
import ButtonWrapper from './button_wrapper.svelte';
import Button from './button.svelte';
import schemas from '../schemas.js';
import schemas from '../../generated/schemas.js';
$: schema = schemas[content.type];
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@

<script>
import Navaid from 'navaid';
import allContent from './content.js';
import * as allLayouts from './layouts.js';
import { env } from './env.js';
import allContent from '../generated/content.js';
import * as allLayouts from '../generated/layouts.js';
import { env } from '../generated/env.js';
import adminMenu from './cms/admin_menu.svelte';
import { user } from './cms/auth.js';
import allDefaults from './defaults.js';
import allDefaults from '../generated/defaults.js';
let path = location.pathname;
let params = new URLSearchParams(location.search);
Expand Down
4 changes: 2 additions & 2 deletions defaults/embed.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package defaults

import "embed"

//go:embed all:ejected/*
var EjectedFS embed.FS
//go:embed all:core/*
var CoreFS embed.FS

//go:embed all:node_modules/*
var NodeModulesFS embed.FS
Expand Down
2 changes: 1 addition & 1 deletion defaults/starters/bare/layouts/global/head.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

<title>{ title }</title>

<script type="module" src="/spa/ejected/main.js"></script>
<script type="module" src="/spa/core/main.js"></script>

<link rel="icon" type="image/svg+xml" href="/assets/logo.svg">
<link rel='stylesheet' href='/spa/bundle.css'>
Expand Down
2 changes: 1 addition & 1 deletion defaults/starters/learner/layouts/global/head.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<title>{ title }</title>

<base href="{env.baseurl}">
<script type="module" src="spa/ejected/main.js"></script>
<script type="module" src="spa/core/main.js"></script>

<link href="https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300;0,700;1,300&display=swap" rel="stylesheet">
<link rel="icon" type="image/svg+xml" href="logo.svg">
Expand Down

0 comments on commit b21b299

Please sign in to comment.